feat: port Markdown Slides template from Wowchemy/Bootstrap

This commit is contained in:
George Cushen committed 2026-01-06 20:12:26 +00:00
1 parent c792830419
commit bfdcb6603c
53 files changed
+6587 -209

No files matched your search

-1
View File
@@ -100,7 +100,6 @@
{{ range $query }}
{{ if isset .Params "author_notes" }}
{{ $page.Store.Set "has_alpine" true }}
<script>console.log('Author notes found in collection - Alpine.js enabled');</script>
{{ break }}
{{ end }}
{{ end }}
+348
View File
@@ -293,3 +293,351 @@
- id: portfolio_view_all
translation: সমস্ত প্রকল্প দেখুন
# Additional translations
- id: about_me
translation: পেশাগত সারসংক্ষেপ
- id: ai_insight
translation: এআই অন্তর্দৃষ্টি
- id: content_type
translation: বিষয়ের ধরন
- id: difficulty
translation: কঠিনতা
- id: prerequisites
translation: পূর্বশর্ত
- id: trending
translation: ট্রেন্ডিং
- id: article
translation: প্রবন্ধ
- id: articles
translation: প্রবন্ধসমূহ
- id: all
translation: সব
- id: helpful
translation: সহায়ক
# Buttons and links
- id: btn_site
translation: সাইট
- id: btn_canonical
translation: ক্যানোনিকাল
- id: btn_crosspost
translation: ক্রসপোস্ট
- id: btn_discussion
translation: আলোচনা
- id: btn_event
translation: ইভেন্ট
- id: btn_calendar
translation: ক্যালেন্ডার
- id: btn_registration
translation: নিবন্ধন
- id: btn_demo
translation: ডেমো
- id: btn_model
translation: মডেল
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_note
translation: নোট
- id: callout_abstract
translation: সারাংশ
- id: callout_summary
translation: সারসংক্ষেপ
- id: callout_info
translation: তথ্য
- id: callout_todo
translation: করনীয়
- id: callout_tip
translation: টিপস
- id: callout_question
translation: প্রশ্ন
- id: callout_quote
translation: উদ্ধৃতি
- id: callout_warning
translation: সতর্কতা
- id: callout_caution
translation: সতর্কতা
- id: callout_danger
translation: বিপদ
- id: callout_bug
translation: বাগ
- id: callout_example
translation: উদাহরণ
- id: callout_failure
translation: ব্যর্থতা
- id: callout_success
translation: সাফল্য
- id: callout_important
translation: গুরুত্বপূর্ণ
# Slides
- id: back_to_slides
translation: স্লাইডে ফিরে যান
- id: present_slides
translation: প্রেজেন্ট
- id: present_fullscreen
translation: প্রেজেন্ট (পূর্ণস্ক্রিন)
- id: export_pdf_print
translation: পিডিএফ রপ্তানি (প্রিন্ট)
- id: slides_print_hint
translation: প্রিন্ট মোডে খোলে - ব্রাউজার প্রিন্ট > PDF হিসেবে সেভ করুন
- id: slides_search_placeholder
translation: শিরোনাম দিয়ে ডেক খুঁজুন...
- id: slides_no_decks
translation: কোন স্লাইড ডেক পাওয়া যায়নি
- id: slides_no_matches
translation: কোন ডেক ফিল্টারের সাথে মেলে না
- id: clear_filters
translation: ফিল্টার মুছুন
- id: topics
translation: বিষয়
- id: details
translation: বিস্তারিত
- id: related_resources
translation: সম্পর্কিত রিসোর্স
- id: copy_link
translation: লিঙ্ক কপি করুন
- id: copy_citation
translation: উদ্ধৃতি কপি করুন
- id: how_to_cite
translation: কীভাবে উদ্ধৃতি দিবেন
- id: citation
translation: উদ্ধৃতি
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: cite.bib ডাউনলোড করুন
- id: lecture
translation: লেকচার
- id: enter_fullscreen
translation: পূর্ণস্ক্রিনে যান
- id: exit_fullscreen
translation: পূর্ণস্ক্রিন থেকে বের হন
- id: speaker_notes_hint
translation: বক্তার নোটের জন্য
- id: slides_not_found
translation: স্লাইড পাওয়া যায়নি
# Q&A
- id: qa
translation: প্রশ্নোত্তর
- id: question
translation: প্রশ্ন
- id: answer
translation: উত্তর
- id: accepted_answer
translation: গৃহীত উত্তর
- id: other_answers
translation: অন্যান্য উত্তর
- id: questions
translation: প্রশ্নসমূহ
- id: questions_count
translation: প্রশ্ন
- id: related_questions
translation: সম্পর্কিত প্রশ্ন
- id: search_questions
translation: প্রশ্ন অনুসন্ধান...
- id: no_questions_yet
translation: এখনও কোনো প্রশ্ন নেই
- id: faq
translation: FAQ
- id: faqs
translation: FAQs
- id: browse_by_category
translation: বিভাগ অনুযায়ী দেখুন
# General extras
- id: backlinks
translation: ব্যাকলিঙ্কস
- id: blog
translation: ব্লগ
- id: browse
translation: ব্রাউজ
- id: days
translation: দিন
- id: hours
translation: ঘণ্টা
- id: minutes
translation: মিনিট
- id: seconds
translation: সেকেন্ড
- id: experience
translation: অভিজ্ঞতা
- id: read_more
translation: আরও পড়ুন
- id: docs
translation: ডকুমেন্টেশন
- id: featured
translation: বৈশিষ্ট্যযুক্ত
- id: events
translation: ইভেন্ট
- id: poweredby_button
translation: 'নিজেরটি বানান →'
- id: block_contact_title
translation: যোগাযোগ করুন
- id: block_contact_visit_title
translation: আমাদের দেখুন
- id: block_contact_office_hours
translation: অফিস সময়
- id: block_contact_view_on_map
translation: মানচিত্রে দেখুন
- id: block_contact_connect_title
translation: সংযুক্ত হন
- id: block_contact_follow_us
translation: আমাদের অনুসরণ করুন
- id: block_contact_prospective_title
translation: সম্ভাব্য সদস্যরা
- id: block_contact_form_title
translation: আমাদের বার্তা পাঠান
- id: block_contact_form_name
translation: নাম
- id: block_contact_form_email
translation: ইমেইল
- id: block_contact_form_subject
translation: বিষয়
- id: block_contact_form_message
translation: বার্তা
- id: block_contact_form_submit
translation: বার্তা পাঠান
# Feedback widget
- id: feedback_widget_title
translation: মতামত
- id: feedback_widget_question
translation: এই পেজটি কি সহায়ক ছিল?
- id: feedback_widget_answer_positive
translation: 😍 হ্যাঁ
- id: feedback_widget_answer_negative
translation: 😡 না
+259
View File
@@ -387,3 +387,262 @@
- id: feedback_widget_answer_negative
translation: 😡 Nein
# AI Features
- id: ai_insight
translation: KI-Einblick
# Content Metadata
- id: content_type
translation: Inhaltstyp
- id: difficulty
translation: Schwierigkeitsgrad
- id: prerequisites
translation: Voraussetzungen
# Card metadata
- id: trending
translation: Im Trend
- id: article
translation: Artikel
- id: articles
translation: Artikel
- id: browse
translation: Durchsuchen
- id: all
translation: Alle
- id: helpful
translation: hilfreich
# Additional buttons
- id: btn_site
translation: Website
- id: btn_canonical
translation: Kanonisch
- id: btn_crosspost
translation: Crosspost
- id: btn_discussion
translation: Diskussion
- id: btn_event
translation: Event
- id: btn_calendar
translation: Kalender
- id: btn_registration
translation: Anmeldung
- id: btn_demo
translation: Demo
- id: btn_model
translation: Modell
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_abstract
translation: Abstract
- id: callout_summary
translation: Zusammenfassung
- id: callout_info
translation: Info
- id: callout_todo
translation: To-do
- id: callout_tip
translation: Tipp
- id: callout_question
translation: Frage
- id: callout_quote
translation: Zitat
- id: callout_warning
translation: Warnung
- id: callout_danger
translation: Gefahr
- id: callout_bug
translation: Bug
- id: callout_example
translation: Beispiel
- id: callout_failure
translation: Fehlschlag
- id: callout_success
translation: Erfolg
# Slides
- id: back_to_slides
translation: Zurück zu Slides
- id: present_slides
translation: Präsentieren
- id: present_fullscreen
translation: Präsentieren (Vollbild)
- id: export_pdf_print
translation: PDF exportieren (Druck)
- id: slides_print_hint
translation: Öffnet im Druckmodus – Browser Drucken > Als PDF speichern
- id: slides_search_placeholder
translation: Decks nach Titel suchen...
- id: slides_no_decks
translation: Keine Foliensätze gefunden
- id: slides_no_matches
translation: Keine Sätze entsprechen deinen Filtern
- id: clear_filters
translation: Filter zurücksetzen
- id: topics
translation: Themen
- id: details
translation: Details
- id: related_resources
translation: Verwandte Ressourcen
- id: copy_link
translation: Link kopieren
- id: copy_citation
translation: Zitat kopieren
- id: how_to_cite
translation: So zitieren
- id: citation
translation: Zitat
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: cite.bib herunterladen
- id: lecture
translation: Vorlesung
- id: enter_fullscreen
translation: Vollbildmodus starten
- id: exit_fullscreen
translation: Vollbildmodus beenden
- id: speaker_notes_hint
translation: für Sprechernotizen
- id: slides_not_found
translation: Folien nicht gefunden
# Q&A
- id: qa
translation: Q&A
- id: question
translation: Frage
- id: answer
translation: Antwort
- id: accepted_answer
translation: Akzeptierte Antwort
- id: other_answers
translation: Weitere Antworten
- id: questions
translation: Fragen
- id: questions_count
translation: Fragen
- id: related_questions
translation: Ähnliche Fragen
- id: search_questions
translation: Fragen durchsuchen...
- id: no_questions_yet
translation: Noch keine Fragen vorhanden
- id: faq
translation: FAQ
- id: faqs
translation: FAQs
- id: browse_by_category
translation: Nach Kategorie durchsuchen
# General extras
- id: about_me
translation: Berufliches Profil
- id: docs
translation: Dokumentation
- id: featured
translation: Empfohlen
+74
View File
@@ -421,6 +421,80 @@
- id: questions_count
translation: questions
# Slides
- id: back_to_slides
translation: Back to Slides
- id: featured
translation: Featured
- id: details
translation: Details
- id: present_slides
translation: Present
- id: present_fullscreen
translation: Present (fullscreen)
- id: export_pdf_print
translation: Export PDF (print)
- id: slides_print_hint
translation: Opens in print mode - use browser Print > Save as PDF
- id: slides_search_placeholder
translation: Search decks by title...
- id: slides_no_decks
translation: No slide decks found
- id: slides_no_matches
translation: No decks match your filters
- id: clear_filters
translation: Clear filters
- id: topics
translation: Topics
- id: related_resources
translation: Related Resources
- id: copy_link
translation: Copy Link
- id: copy_citation
translation: Copy citation
- id: how_to_cite
translation: How to cite
- id: citation
translation: Citation
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: Download cite.bib
- id: lecture
translation: Lecture
- id: enter_fullscreen
translation: Enter fullscreen
- id: exit_fullscreen
translation: Exit fullscreen
- id: speaker_notes_hint
translation: for speaker notes
- id: slides_not_found
translation: Slides not found
# Search
- id: search
+316
View File
@@ -356,3 +356,319 @@
- id: poweredby_button
translation: 'Crea el tuyo →'
# AI Features
- id: ai_insight
translation: Perspectiva de IA
# Content Metadata
- id: content_type
translation: Tipo de contenido
- id: difficulty
translation: Dificultad
- id: prerequisites
translation: Requisitos previos
# Card metadata
- id: trending
translation: Tendencia
- id: article
translation: artículo
- id: articles
translation: artículos
- id: browse
translation: Explorar
- id: all
translation: Todo
- id: helpful
translation: útil
# Additional buttons
- id: btn_site
translation: Sitio
- id: btn_canonical
translation: Canónico
- id: btn_crosspost
translation: Crosspost
- id: btn_discussion
translation: Discusión
- id: btn_event
translation: Evento
- id: btn_calendar
translation: Calendario
- id: btn_registration
translation: Registro
- id: btn_demo
translation: Demo
- id: btn_model
translation: Modelo
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_abstract
translation: Resumen
- id: callout_summary
translation: Resumen
- id: callout_info
translation: Info
- id: callout_todo
translation: Tareas
- id: callout_tip
translation: Consejo
- id: callout_question
translation: Pregunta
- id: callout_quote
translation: Cita
- id: callout_warning
translation: Advertencia
- id: callout_danger
translation: Peligro
- id: callout_bug
translation: Error
- id: callout_example
translation: Ejemplo
- id: callout_failure
translation: Fallo
- id: callout_success
translation: Éxito
# Slides
- id: back_to_slides
translation: Volver a diapositivas
- id: present_slides
translation: Presentar
- id: present_fullscreen
translation: Presentar (pantalla completa)
- id: export_pdf_print
translation: Exportar PDF (impresión)
- id: slides_print_hint
translation: Se abre en modo impresión - usa Imprimir > Guardar como PDF
- id: slides_search_placeholder
translation: Busca mazos por título...
- id: slides_no_decks
translation: No se encontraron diapositivas
- id: slides_no_matches
translation: Ningún mazo coincide con tus filtros
- id: clear_filters
translation: Borrar filtros
- id: topics
translation: Temas
- id: details
translation: Detalles
- id: related_resources
translation: Recursos relacionados
- id: copy_link
translation: Copiar enlace
- id: copy_citation
translation: Copiar cita
- id: how_to_cite
translation: Cómo citar
- id: citation
translation: Cita
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: Descargar cite.bib
- id: lecture
translation: Clase
- id: enter_fullscreen
translation: Entrar en pantalla completa
- id: exit_fullscreen
translation: Salir de pantalla completa
- id: speaker_notes_hint
translation: para notas del presentador
- id: slides_not_found
translation: Diapositivas no encontradas
# Q&A
- id: qa
translation: Preguntas y respuestas
- id: question
translation: Pregunta
- id: answer
translation: Respuesta
- id: accepted_answer
translation: Respuesta aceptada
- id: other_answers
translation: Otras respuestas
- id: questions
translation: Preguntas
- id: questions_count
translation: preguntas
- id: related_questions
translation: Preguntas relacionadas
- id: search_questions
translation: Buscar preguntas...
- id: no_questions_yet
translation: Aún no hay preguntas
- id: faq
translation: FAQ
- id: faqs
translation: FAQs
- id: browse_by_category
translation: Navegar por categoría
# General extras
- id: about_me
translation: Resumen profesional
- id: backlinks
translation: Enlaces de retorno
- id: days
translation: Días
- id: hours
translation: Horas
- id: minutes
translation: Minutos
- id: seconds
translation: Segundos
- id: developer
translation: Desarrollador
- id: docs
translation: Documentación
- id: experience
translation: Experiencia
- id: read_more
translation: Leer más
- id: featured
translation: Destacado
- id: block_contact_follow_me
translation: Encuéntrame en
- id: portfolio_link_code
translation: Código
- id: portfolio_link_live
translation: En vivo
- id: portfolio_link_demo
translation: Demo
- id: portfolio_link_default
translation: Enlace
- id: portfolio_view_all
translation: Ver todos los proyectos
- id: scroll_to_content
translation: Ir al contenido
- id: feedback_widget_title
translation: Comentarios
- id: feedback_widget_question
translation: ¿Esta página fue útil?
- id: feedback_widget_answer_positive
translation: 😍 Sí
- id: feedback_widget_answer_negative
translation: 😡 No
+638
View File
@@ -0,0 +1,638 @@
# Navigation
- id: toggle_navigation
translation: नेविगेशन टॉगल करें
- id: table_of_contents
translation: सामग्री तालिका
- id: on_this_page
translation: इस पेज पर
- id: back_to_top
translation: ऊपर वापस जाएँ
- id: home
translation: होम
- id: close
translation: बंद करें
- id: languages
translation: भाषाएँ
# General
- id: related
translation: संबंधित
- id: backlinks
translation: बैकलिंक्स
# Callouts - All Obsidian-compatible types
- id: callout_note
translation: नोट
- id: callout_abstract
translation: सार
- id: callout_summary
translation: सारांश
- id: callout_info
translation: जानकारी
- id: callout_todo
translation: करना है
- id: callout_tip
translation: सुझाव
- id: callout_success
translation: सफलता
- id: callout_question
translation: प्रश्न
- id: callout_warning
translation: चेतावनी
- id: callout_failure
translation: विफलता
- id: callout_danger
translation: खतरा
- id: callout_bug
translation: बग
- id: callout_example
translation: उदाहरण
- id: callout_quote
translation: उद्धरण
- id: callout_important
translation: महत्वपूर्ण
- id: callout_caution
translation: सावधानी
- id: minute_read
translation: मिनट पढ़ें
- id: previous
translation: पिछला
- id: next
translation: अगला
- id: figure
translation: 'चित्र %d:'
- id: edit_page
translation: इस पेज को संपादित करें
# Themes
- id: theme_selector
translation: प्रदर्शन प्राथमिकताएँ
- id: theme_light
translation: लाइट
- id: theme_dark
translation: डार्क
- id: theme_auto
translation: स्वचालित
# Buttons
- id: btn_preprint
translation: प्रीप्रिंट
- id: btn_pdf
translation: पीडीएफ
- id: btn_cite
translation: उद्धृत करें
- id: btn_slides
translation: स्लाइड्स
- id: btn_video
translation: वीडियो
- id: btn_code
translation: कोड
- id: btn_dataset
translation: डेटासेट
- id: btn_project
translation: प्रोजेक्ट
- id: btn_poster
translation: पोस्टर
- id: btn_source
translation: स्रोत दस्तावेज़
# New link types
- id: btn_doi
translation: DOI
- id: btn_site
translation: साइट
- id: btn_canonical
translation: कैनोनिकल
- id: btn_crosspost
translation: क्रॉसपोस्ट
- id: btn_discussion
translation: चर्चा
- id: btn_event
translation: इवेंट
- id: btn_calendar
translation: कैलेंडर
- id: btn_registration
translation: पंजीकरण
- id: btn_demo
translation: डेमो
- id: btn_model
translation: मॉडल
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
- id: btn_copy
translation: कॉपी करें
- id: btn_copied
translation: कॉपी किया गया
- id: btn_download
translation: डाउनलोड
# About widget
- id: interests
translation: रुचियाँ
- id: education
translation: शिक्षा
- id: about_me
translation: व्यावसायिक सारांश
- id: user_profile_latest
translation: नवीनतम
# Countdown widget
- id: days
translation: दिन
- id: hours
translation: घंटे
- id: minutes
translation: मिनट
- id: seconds
translation: सेकंड
# Accomplishments widget
- id: see_certificate
translation: प्रमाणपत्र देखें
# Experience widget
- id: experience
translation: अनुभव
- id: present
translation: वर्तमान
# Pages widget
- id: read_more
translation: और पढ़ें
- id: more_pages
translation: सभी देखें
- id: more_posts
translation: सभी पोस्ट देखें
- id: more_talks
translation: सभी इवेंट देखें
- id: more_publications
translation: सभी प्रकाशन देखें
# Contact widget
- id: contact_name
translation: नाम
- id: contact_email
translation: ईमेल
- id: contact_message
translation: संदेश
- id: contact_attachment
translation: फ़ाइल संलग्न करें
- id: contact_send
translation: भेजें
- id: book_appointment
translation: अपॉइंटमेंट बुक करें
# Contact info block
- id: block_contact_title
translation: संपर्क करें
- id: block_contact_visit_title
translation: हमसे मिलें
- id: block_contact_office_hours
translation: ऑफिस समय
- id: block_contact_view_on_map
translation: मैप पर देखें
- id: block_contact_connect_title
translation: कनेक्ट करें
- id: block_contact_follow_us
translation: हमें फॉलो करें
- id: block_contact_follow_me
translation: मुझे यहाँ पाएँ
- id: block_contact_prospective_title
translation: संभावित सदस्य
- id: block_contact_form_title
translation: हमें संदेश भेजें
- id: block_contact_form_name
translation: नाम
- id: block_contact_form_email
translation: ईमेल
- id: block_contact_form_subject
translation: विषय
- id: block_contact_form_message
translation: संदेश
- id: block_contact_form_submit
translation: संदेश भेजें
# Publication/Event details
- id: abstract
translation: सार
- id: publication
translation: प्रकाशन
- id: publication_type
translation: प्रकार
- id: date
translation: तारीख
- id: last_updated
translation: अंतिम अपडेट
- id: event
translation: इवेंट
- id: location
translation: स्थान
- id: pub_paper_conference
translation: सम्मेलन पेपर
- id: pub_article_journal
translation: जर्नल लेख
- id: pub_article
translation: प्रीप्रिंट
- id: pub_report
translation: रिपोर्ट
- id: pub_book
translation: पुस्तक
- id: pub_chapter
translation: पुस्तक अनुभाग
- id: pub_thesis
translation: थीसिस
- id: pub_patent
translation: पेटेंट
# Project details
- id: open_project_site
translation: प्रोजेक्ट साइट पर जाएँ
# Content types for default archive page titles and search results
- id: blog
translation: ब्लॉग
- id: publications
translation: प्रकाशन
- id: events
translation: इवेंट
- id: projects
translation: प्रोजेक्ट
- id: slides
translation: स्लाइड्स
- id: authors
translation: लेखक
- id: qa
translation: प्रश्नोत्तर
- id: questions
translation: प्रश्न
- id: faq
translation: अक्सर पूछे जाने वाले प्रश्न
- id: faqs
translation: FAQs
- id: docs
translation: प्रलेखन
- id: question
translation: प्रश्न
- id: answer
translation: उत्तर
- id: accepted_answer
translation: स्वीकृत उत्तर
- id: other_answers
translation: अन्य उत्तर
- id: related_questions
translation: संबंधित प्रश्न
- id: browse_by_category
translation: श्रेणी के अनुसार ब्राउज़ करें
- id: search_questions
translation: प्रश्न खोजें...
- id: no_questions_yet
translation: अभी तक कोई प्रश्न नहीं
- id: questions_count
translation: प्रश्न
# Slides
- id: back_to_slides
translation: स्लाइड्स पर वापस जाएँ
- id: featured
translation: विशेष
- id: details
translation: विवरण
- id: present_slides
translation: प्रस्तुति करें
- id: present_fullscreen
translation: प्रस्तुति (फुलस्क्रीन)
- id: export_pdf_print
translation: पीडीएफ निर्यात (प्रिंट)
- id: slides_print_hint
translation: प्रिंट मोड में खुलेगा - ब्राउज़र प्रिंट > PDF के रूप में सहेजें
- id: slides_search_placeholder
translation: शीर्षक से डेक खोजें...
- id: slides_no_decks
translation: कोई स्लाइड डेक नहीं मिला
- id: slides_no_matches
translation: कोई डेक आपके फ़िल्टर से मेल नहीं खाता
- id: clear_filters
translation: फ़िल्टर साफ़ करें
- id: topics
translation: विषय
- id: related_resources
translation: संबंधित संसाधन
- id: copy_link
translation: लिंक कॉपी करें
- id: copy_citation
translation: उद्धरण कॉपी करें
- id: how_to_cite
translation: कैसे उद्धृत करें
- id: citation
translation: उद्धरण
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: cite.bib डाउनलोड करें
- id: lecture
translation: व्याख्यान
- id: enter_fullscreen
translation: फुलस्क्रीन में जाएँ
- id: exit_fullscreen
translation: फुलस्क्रीन से बाहर निकलें
- id: speaker_notes_hint
translation: वक्ता नोट्स के लिए
- id: slides_not_found
translation: स्लाइड्स नहीं मिलीं
# Search
- id: search
translation: खोज
- id: search_placeholder
translation: खोजें...
- id: search_results
translation: परिणाम मिले
- id: search_no_results
translation: कोई परिणाम नहीं मिला
- id: search_common_queries
translation: सामान्य खोजें
# Error 404
- id: page_not_found
translation: पेज नहीं मिला
- id: 404_recommendations
translation: शायद आप इनमें से किसी को ढूँढ रहे थे?
# Cookie consent
- id: cookie_message
translation: यह वेबसाइट सर्वोत्तम अनुभव देने के लिए कुकीज़ का उपयोग करती है।
- id: cookie_dismiss
translation: समझ गया!
- id: cookie_learn
translation: और जानें
# Published with
- id: published_with
translation: '{hugoblox} के साथ बनाया गया — मुफ़्त {repo_link}ओपन सोर्स{/repo_link} वेबसाइट बिल्डर जो क्रिएटर्स को सशक्त करता है।'
- id: poweredby_button
translation: 'अपनी बनाएँ →'
# Dev Hero block
- id: scroll_to_content
translation: सामग्री पर स्क्रॉल करें
- id: developer
translation: डेवलपर
# Portfolio block
- id: portfolio_link_code
translation: कोड
- id: portfolio_link_live
translation: लाइव
- id: portfolio_link_demo
translation: डेमो
- id: portfolio_link_default
translation: लिंक
- id: portfolio_view_all
translation: सभी प्रोजेक्ट देखें
# Feedback widget
- id: feedback_widget_title
translation: प्रतिपुष्टि
- id: feedback_widget_question
translation: क्या यह पेज सहायक था?
- id: feedback_widget_answer_positive
translation: 😍 हाँ
- id: feedback_widget_answer_negative
translation: 😡 नहीं
# AI Features
- id: ai_insight
translation: एआई अंतर्दृष्टि
# Content Metadata
- id: content_type
translation: सामग्री प्रकार
- id: difficulty
translation: कठिनाई
- id: prerequisites
translation: पूर्वापेक्षाएँ
# Card metadata
- id: trending
translation: ट्रेंडिंग
- id: article
translation: लेख
- id: articles
translation: लेख
- id: browse
translation: ब्राउज़
- id: all
translation: सब
- id: helpful
translation: सहायक
+381
View File
@@ -263,3 +263,384 @@
- id: published_with
translation: Diterbitkan dengan {hugoblox} — Secara gratis, {repo_link}sumber terbuka{/repo_link} pembuat situs web yang memberdayakan para pembuat konten.
# AI Features
- id: ai_insight
translation: Wawasan AI
# Content Metadata
- id: content_type
translation: Jenis konten
- id: difficulty
translation: Tingkat kesulitan
- id: prerequisites
translation: Prasyarat
# Card metadata
- id: trending
translation: Sedang tren
- id: article
translation: artikel
- id: articles
translation: artikel
- id: browse
translation: Jelajahi
- id: all
translation: Semua
- id: helpful
translation: bermanfaat
# Additional buttons
- id: btn_site
translation: Situs
- id: btn_canonical
translation: Kanonikal
- id: btn_crosspost
translation: Crosspost
- id: btn_discussion
translation: Diskusi
- id: btn_event
translation: Acara
- id: btn_calendar
translation: Kalender
- id: btn_registration
translation: Registrasi
- id: btn_demo
translation: Demo
- id: btn_model
translation: Model
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_note
translation: Catatan
- id: callout_abstract
translation: Abstrak
- id: callout_summary
translation: Ringkasan
- id: callout_info
translation: Info
- id: callout_todo
translation: To-do
- id: callout_tip
translation: Tip
- id: callout_question
translation: Pertanyaan
- id: callout_quote
translation: Kutipan
- id: callout_warning
translation: Peringatan
- id: callout_caution
translation: Perhatian
- id: callout_danger
translation: Bahaya
- id: callout_bug
translation: Bug
- id: callout_example
translation: Contoh
- id: callout_failure
translation: Gagal
- id: callout_success
translation: Sukses
- id: callout_important
translation: Penting
# Slides
- id: back_to_slides
translation: Kembali ke slides
- id: present_slides
translation: Presentasi
- id: present_fullscreen
translation: Presentasi (layar penuh)
- id: export_pdf_print
translation: Ekspor PDF (cetak)
- id: slides_print_hint
translation: Membuka mode cetak - gunakan Cetak > Simpan sebagai PDF
- id: slides_search_placeholder
translation: Cari deck berdasarkan judul...
- id: slides_no_decks
translation: Tidak ada deck ditemukan
- id: slides_no_matches
translation: Tidak ada deck sesuai filter
- id: clear_filters
translation: Hapus filter
- id: topics
translation: Topik
- id: details
translation: Detail
- id: related_resources
translation: Sumber terkait
- id: copy_link
translation: Salin tautan
- id: copy_citation
translation: Salin sitasi
- id: how_to_cite
translation: Cara mengutip
- id: citation
translation: Sitasi
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: Unduh cite.bib
- id: lecture
translation: Kuliah
- id: enter_fullscreen
translation: Masuk layar penuh
- id: exit_fullscreen
translation: Keluar layar penuh
- id: speaker_notes_hint
translation: untuk catatan pembicara
- id: slides_not_found
translation: Slide tidak ditemukan
- id: related
translation: Terkait
# Q&A
- id: qa
translation: Tanya Jawab
- id: question
translation: Pertanyaan
- id: answer
translation: Jawaban
- id: accepted_answer
translation: Jawaban diterima
- id: other_answers
translation: Jawaban lainnya
- id: questions
translation: Pertanyaan
- id: questions_count
translation: pertanyaan
- id: related_questions
translation: Pertanyaan terkait
- id: search_questions
translation: Cari pertanyaan...
- id: no_questions_yet
translation: Belum ada pertanyaan
- id: faq
translation: FAQ
- id: faqs
translation: FAQ
- id: browse_by_category
translation: Telusuri per kategori
# General extras
- id: about_me
translation: Ringkasan profesional
- id: backlinks
translation: Tautan balik
- id: days
translation: Hari
- id: hours
translation: Jam
- id: minutes
translation: Menit
- id: seconds
translation: Detik
- id: experience
translation: Pengalaman
- id: read_more
translation: Baca selengkapnya
- id: docs
translation: Dokumentasi
- id: featured
translation: Unggulan
# Feedback widget
- id: feedback_widget_title
translation: Masukan
- id: feedback_widget_question
translation: Apakah halaman ini membantu?
- id: feedback_widget_answer_positive
translation: 😍 Ya
- id: feedback_widget_answer_negative
translation: 😡 Tidak
- id: block_contact_title
translation: Hubungi Kami
- id: block_contact_visit_title
translation: Kunjungi Kami
- id: block_contact_office_hours
translation: Jam kerja
- id: block_contact_view_on_map
translation: Lihat di Peta
- id: block_contact_connect_title
translation: Terhubung
- id: block_contact_follow_us
translation: Ikuti kami
- id: block_contact_follow_me
translation: Temukan saya di
- id: block_contact_prospective_title
translation: Calon anggota
- id: block_contact_form_title
translation: Kirim Pesan
- id: block_contact_form_name
translation: Nama
- id: block_contact_form_email
translation: Email
- id: block_contact_form_subject
translation: Subjek
- id: block_contact_form_message
translation: Pesan
- id: block_contact_form_submit
translation: Kirim pesan
- id: blog
translation: Blog
- id: events
translation: Acara
- id: poweredby_button
translation: 'Bangun punyamu →'
- id: developer
translation: Pengembang
- id: scroll_to_content
translation: Gulir ke konten
- id: portfolio_link_code
translation: Kode
- id: portfolio_link_live
translation: Langsung
- id: portfolio_link_demo
translation: Demo
- id: portfolio_link_default
translation: Tautan
- id: portfolio_view_all
translation: Lihat semua proyek
- id: featured
translation: Unggulan
+301
View File
@@ -337,3 +337,304 @@
- id: portfolio_view_all
translation: Bekijk alle projecten
# AI Features
- id: ai_insight
translation: AI-inzicht
# Content Metadata
- id: content_type
translation: Contenttype
- id: difficulty
translation: Moeilijkheidsgraad
- id: prerequisites
translation: Vereisten
# Card metadata
- id: trending
translation: Populair
- id: article
translation: artikel
- id: articles
translation: artikelen
- id: browse
translation: Bladeren
- id: all
translation: Alles
- id: helpful
translation: nuttig
# Additional buttons
- id: btn_site
translation: Site
- id: btn_canonical
translation: Canoniek
- id: btn_crosspost
translation: Crosspost
- id: btn_discussion
translation: Discussie
- id: btn_event
translation: Evenement
- id: btn_calendar
translation: Kalender
- id: btn_registration
translation: Registratie
- id: btn_demo
translation: Demo
- id: btn_model
translation: Model
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_note
translation: Notitie
- id: callout_abstract
translation: Samenvatting
- id: callout_summary
translation: Samenvatting
- id: callout_info
translation: Info
- id: callout_todo
translation: Te doen
- id: callout_tip
translation: Tip
- id: callout_question
translation: Vraag
- id: callout_quote
translation: Citaat
- id: callout_warning
translation: Waarschuwing
- id: callout_caution
translation: Let op
- id: callout_danger
translation: Gevaar
- id: callout_bug
translation: Bug
- id: callout_example
translation: Voorbeeld
- id: callout_failure
translation: Mislukt
- id: callout_success
translation: Succes
- id: callout_important
translation: Belangrijk
# Slides
- id: back_to_slides
translation: Terug naar slides
- id: present_slides
translation: Presenteren
- id: present_fullscreen
translation: Presenteren (volledig scherm)
- id: export_pdf_print
translation: PDF exporteren (print)
- id: slides_print_hint
translation: Opent in printmodus - browser Afdrukken > Opslaan als PDF
- id: slides_search_placeholder
translation: Zoek decks op titel...
- id: slides_no_decks
translation: Geen decks gevonden
- id: slides_no_matches
translation: Geen decks voldoen aan je filters
- id: clear_filters
translation: Filters wissen
- id: topics
translation: Onderwerpen
- id: details
translation: Details
- id: related_resources
translation: Gerelateerde bronnen
- id: copy_link
translation: Link kopiëren
- id: copy_citation
translation: Citatie kopiëren
- id: how_to_cite
translation: Hoe te citeren
- id: citation
translation: Citatie
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: cite.bib downloaden
- id: lecture
translation: College
- id: enter_fullscreen
translation: Volledig scherm
- id: exit_fullscreen
translation: Volledig scherm afsluiten
- id: speaker_notes_hint
translation: voor sprekersnotities
- id: slides_not_found
translation: Slides niet gevonden
# Q&A
- id: qa
translation: Q&A
- id: question
translation: Vraag
- id: answer
translation: Antwoord
- id: accepted_answer
translation: Geaccepteerd antwoord
- id: other_answers
translation: Andere antwoorden
- id: questions
translation: Vragen
- id: questions_count
translation: vragen
- id: related_questions
translation: Gerelateerde vragen
- id: search_questions
translation: Zoek vragen...
- id: no_questions_yet
translation: Nog geen vragen
- id: faq
translation: FAQ
- id: faqs
translation: FAQs
- id: browse_by_category
translation: Blader op categorie
# General extras
- id: about_me
translation: Professionele samenvatting
- id: backlinks
translation: Backlinks
- id: days
translation: Dagen
- id: hours
translation: Uren
- id: minutes
translation: Minuten
- id: seconds
translation: Seconden
- id: experience
translation: Ervaring
- id: read_more
translation: Lees meer
- id: docs
translation: Documentatie
- id: featured
translation: Uitgelicht
- id: feedback_widget_title
translation: Feedback
- id: feedback_widget_question
translation: Was deze pagina nuttig?
- id: feedback_widget_answer_positive
translation: 😍 Ja
- id: feedback_widget_answer_negative
translation: 😡 Nee
+328
View File
@@ -304,3 +304,331 @@
- id: published_with
translation: Made with {hugoblox}.
# AI Features
- id: ai_insight
translation: Insight de IA
# Content Metadata
- id: content_type
translation: Tipo de conteúdo
- id: difficulty
translation: Dificuldade
- id: prerequisites
translation: Pré-requisitos
# Card metadata
- id: trending
translation: Em alta
- id: article
translation: artigo
- id: articles
translation: artigos
- id: browse
translation: Navegar
- id: all
translation: Todos
- id: helpful
translation: útil
# Additional buttons
- id: btn_site
translation: Site
- id: btn_canonical
translation: Canônico
- id: btn_crosspost
translation: Crosspost
- id: btn_discussion
translation: Discussão
- id: btn_event
translation: Evento
- id: btn_calendar
translation: Calendário
- id: btn_registration
translation: Inscrição
- id: btn_demo
translation: Demo
- id: btn_model
translation: Modelo
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_note
translation: Nota
- id: callout_abstract
translation: Resumo
- id: callout_summary
translation: Sumário
- id: callout_info
translation: Informação
- id: callout_todo
translation: Para fazer
- id: callout_tip
translation: Dica
- id: callout_question
translation: Pergunta
- id: callout_quote
translation: Citação
- id: callout_warning
translation: Aviso
- id: callout_caution
translation: Cuidado
- id: callout_danger
translation: Perigo
- id: callout_bug
translation: Bug
- id: callout_example
translation: Exemplo
- id: callout_failure
translation: Falha
- id: callout_success
translation: Sucesso
- id: callout_important
translation: Importante
# Slides
- id: back_to_slides
translation: Voltar para slides
- id: present_slides
translation: Apresentar
- id: present_fullscreen
translation: Apresentar (tela cheia)
- id: export_pdf_print
translation: Exportar PDF (impressão)
- id: slides_print_hint
translation: Abre em modo de impressão - use Imprimir > Salvar como PDF
- id: slides_search_placeholder
translation: Buscar decks por título...
- id: slides_no_decks
translation: Nenhum conjunto de slides encontrado
- id: slides_no_matches
translation: Nenhum deck corresponde aos filtros
- id: clear_filters
translation: Limpar filtros
- id: topics
translation: Tópicos
- id: details
translation: Detalhes
- id: related_resources
translation: Recursos relacionados
- id: copy_link
translation: Copiar link
- id: copy_citation
translation: Copiar citação
- id: how_to_cite
translation: Como citar
- id: citation
translation: Citação
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: Baixar cite.bib
- id: lecture
translation: Aula
- id: enter_fullscreen
translation: Entrar em tela cheia
- id: exit_fullscreen
translation: Sair da tela cheia
- id: speaker_notes_hint
translation: para notas do apresentador
- id: slides_not_found
translation: Slides não encontrados
# Q&A
- id: qa
translation: Q&A
- id: question
translation: Pergunta
- id: answer
translation: Resposta
- id: accepted_answer
translation: Resposta aceita
- id: other_answers
translation: Outras respostas
- id: questions
translation: Perguntas
- id: questions_count
translation: perguntas
- id: related_questions
translation: Perguntas relacionadas
- id: search_questions
translation: Buscar perguntas...
- id: no_questions_yet
translation: Ainda não há perguntas
- id: faq
translation: FAQ
- id: faqs
translation: FAQs
- id: browse_by_category
translation: Navegar por categoria
# General extras
- id: about_me
translation: Resumo profissional
- id: backlinks
translation: Backlinks
- id: days
translation: Dias
- id: hours
translation: Horas
- id: minutes
translation: Minutos
- id: seconds
translation: Segundos
- id: developer
translation: Desenvolvedor
- id: docs
translation: Documentação
- id: experience
translation: Experiência
- id: read_more
translation: Leia mais
- id: featured
translation: Em destaque
- id: block_contact_follow_me
translation: Encontre-me em
- id: portfolio_link_code
translation: Código
- id: portfolio_link_live
translation: Ao vivo
- id: portfolio_link_demo
translation: Demo
- id: portfolio_link_default
translation: Link
- id: portfolio_view_all
translation: Ver todos os projetos
- id: scroll_to_content
translation: Rolar para o conteúdo
- id: feedback_widget_title
translation: Feedback
- id: feedback_widget_question
translation: Esta página foi útil?
- id: feedback_widget_answer_positive
translation: 😍 Sim
- id: feedback_widget_answer_negative
translation: 😡 Não
- id: poweredby_button
translation: 'Construa a sua →'
+325
View File
@@ -307,3 +307,328 @@
- id: poweredby_button
translation: '構建您的 →'
# AI Features
- id: ai_insight
translation: AI 洞察
# Content Metadata
- id: content_type
translation: 內容類型
- id: difficulty
translation: 難度
- id: prerequisites
translation: 先決條件
# Card metadata
- id: trending
translation: 熱門
- id: article
translation: 文章
- id: articles
translation: 文章
- id: browse
translation: 瀏覽
- id: all
translation: 全部
- id: helpful
translation: 有幫助
# Additional buttons
- id: btn_site
translation: 網站
- id: btn_canonical
translation: 正規連結
- id: btn_crosspost
translation: 交叉發布
- id: btn_discussion
translation: 討論
- id: btn_event
translation: 活動
- id: btn_calendar
translation: 行事曆
- id: btn_registration
translation: 註冊
- id: btn_demo
translation: 示範
- id: btn_model
translation: 模型
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_note
translation: 備註
- id: callout_abstract
translation: 摘要
- id: callout_summary
translation: 摘要
- id: callout_info
translation: 資訊
- id: callout_todo
translation: 待辦
- id: callout_tip
translation: 提示
- id: callout_question
translation: 問題
- id: callout_quote
translation: 引用
- id: callout_warning
translation: 警告
- id: callout_caution
translation: 注意
- id: callout_danger
translation: 危險
- id: callout_bug
translation: 錯誤
- id: callout_example
translation: 範例
- id: callout_failure
translation: 失敗
- id: callout_success
translation: 成功
- id: callout_important
translation: 重要
# Slides
- id: back_to_slides
translation: 返回投影片
- id: present_slides
translation: 播放
- id: present_fullscreen
translation: 播放(全螢幕)
- id: export_pdf_print
translation: 匯出 PDF(列印)
- id: slides_print_hint
translation: 以列印模式開啟 - 瀏覽器列印 > 另存為 PDF
- id: slides_search_placeholder
translation: 依標題搜尋投影片...
- id: slides_no_decks
translation: 未找到投影片集
- id: slides_no_matches
translation: 沒有符合篩選的投影片
- id: clear_filters
translation: 清除篩選
- id: topics
translation: 主題
- id: details
translation: 詳細資訊
- id: related_resources
translation: 相關資源
- id: copy_link
translation: 複製連結
- id: copy_citation
translation: 複製引用
- id: how_to_cite
translation: 如何引用
- id: citation
translation: 引用
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: 下載 cite.bib
- id: lecture
translation: 講座
- id: enter_fullscreen
translation: 進入全螢幕
- id: exit_fullscreen
translation: 離開全螢幕
- id: speaker_notes_hint
translation: 用於講者備註
- id: slides_not_found
translation: 找不到投影片
# Q&A
- id: qa
translation: 問答
- id: question
translation: 問題
- id: answer
translation: 回答
- id: accepted_answer
translation: 已接受的回答
- id: other_answers
translation: 其他回答
- id: questions
translation: 問題
- id: questions_count
translation: 個問題
- id: related_questions
translation: 相關問題
- id: search_questions
translation: 搜尋問題...
- id: no_questions_yet
translation: 尚無問題
- id: faq
translation: 常見問題
- id: faqs
translation: 常見問題
- id: browse_by_category
translation: 依分類瀏覽
# General extras
- id: about_me
translation: 職業簡介
- id: backlinks
translation: 反向連結
- id: days
translation: 天
- id: hours
translation: 小時
- id: minutes
translation: 分鐘
- id: seconds
translation: 秒
- id: developer
translation: 開發者
- id: docs
translation: 文件
- id: experience
translation: 經驗
- id: read_more
translation: 閱讀更多
- id: featured
translation: 精選
- id: block_contact_follow_me
translation: 在這裡找到我
- id: portfolio_link_code
translation: 程式碼
- id: portfolio_link_live
translation: 線上
- id: portfolio_link_demo
translation: 示範
- id: portfolio_link_default
translation: 連結
- id: portfolio_view_all
translation: 查看所有專案
- id: scroll_to_content
translation: 捲動至內容
- id: feedback_widget_title
translation: 回饋
- id: feedback_widget_question
translation: 此頁面有幫助嗎?
- id: feedback_widget_answer_positive
translation: 😍 是
- id: feedback_widget_answer_negative
translation: 😡 否
+289
View File
@@ -359,3 +359,292 @@
- id: portfolio_view_all
translation: 查看所有项目
# AI Features
- id: ai_insight
translation: AI 洞察
# Content Metadata
- id: content_type
translation: 内容类型
- id: difficulty
translation: 难度
- id: prerequisites
translation: 先决条件
# Card metadata
- id: trending
translation: 热门
- id: article
translation: 文章
- id: articles
translation: 文章
- id: browse
translation: 浏览
- id: all
translation: 全部
- id: helpful
translation: 有帮助
# Additional buttons
- id: btn_site
translation: 网站
- id: btn_canonical
translation: 规范链接
- id: btn_crosspost
translation: 交叉发布
- id: btn_discussion
translation: 讨论
- id: btn_event
translation: 活动
- id: btn_calendar
translation: 日历
- id: btn_registration
translation: 注册
- id: btn_demo
translation: 演示
- id: btn_model
translation: 模型
- id: btn_doi
translation: DOI
- id: btn_hal
translation: HAL
- id: btn_dblp
translation: DBLP
- id: btn_isbn
translation: ISBN
- id: btn_osf
translation: OSF
- id: btn_zenodo
translation: Zenodo
- id: btn_kaggle
translation: Kaggle
- id: btn_openalex
translation: OpenAlex
- id: btn_semanticscholar
translation: Semantic Scholar
- id: btn_pwc
translation: Papers With Code
# Callouts
- id: callout_abstract
translation: 摘要
- id: callout_summary
translation: 总结
- id: callout_info
translation: 信息
- id: callout_todo
translation: 待办
- id: callout_question
translation: 问题
- id: callout_quote
translation: 引用
- id: callout_warning
translation: 警告
- id: callout_danger
translation: 危险
- id: callout_bug
translation: 缺陷
- id: callout_example
translation: 示例
- id: callout_failure
translation: 失败
- id: callout_success
translation: 成功
# Slides
- id: back_to_slides
translation: 返回幻灯
- id: present_slides
translation: 演示
- id: present_fullscreen
translation: 演示(全屏)
- id: export_pdf_print
translation: 导出 PDF(打印)
- id: slides_print_hint
translation: 在打印模式打开 - 浏览器打印 > 另存为 PDF
- id: slides_search_placeholder
translation: 按标题搜索幻灯集...
- id: slides_no_decks
translation: 未找到幻灯集
- id: slides_no_matches
translation: 没有符合筛选的幻灯集
- id: clear_filters
translation: 清除过滤
- id: topics
translation: 主题
- id: details
translation: 详情
- id: related_resources
translation: 相关资源
- id: copy_link
translation: 复制链接
- id: copy_citation
translation: 复制引用
- id: citation
translation: 引用
- id: bibtex
translation: BibTeX
- id: download_cite_bib
translation: 下载 cite.bib
- id: lecture
translation: 讲座
- id: enter_fullscreen
translation: 进入全屏
- id: exit_fullscreen
translation: 退出全屏
- id: speaker_notes_hint
translation: 用于演讲者备注
- id: slides_not_found
translation: 未找到幻灯
# Q&A
- id: qa
translation: 问答
- id: question
translation: 问题
- id: answer
translation: 答案
- id: accepted_answer
translation: 已采纳的回答
- id: other_answers
translation: 其他回答
- id: questions
translation: 问题
- id: questions_count
translation: 个问题
- id: related_questions
translation: 相关问题
- id: search_questions
translation: 搜索问题...
- id: no_questions_yet
translation: 尚无问题
- id: faq
translation: 常见问题
- id: faqs
translation: 常见问题
- id: browse_by_category
translation: 按类别浏览
# General extras
- id: about_me
translation: 职业简介
- id: backlinks
translation: 反向链接
- id: days
translation: 天
- id: hours
translation: 小时
- id: minutes
translation: 分钟
- id: seconds
translation: 秒
- id: docs
translation: 文档
- id: featured
translation: 精选
- id: read_more
translation: 阅读更多
# Feedback widget
- id: feedback_widget_title
translation: 反馈
- id: feedback_widget_question
translation: 此页面有帮助吗?
- id: feedback_widget_answer_positive
translation: 😍 是
- id: feedback_widget_answer_negative
translation: 😡 否
- id: how_to_cite
translation: 如何引用
@@ -0,0 +1,155 @@
{{/*
Hugo Blox Slides Embed Component - Reusable iframe embed with fullscreen support
Usage: {{ partial "components/slides-embed.html" (dict "page" . "slides_slug" .Params.slides) }}
Params:
- page: current page context
- slides_slug: slug of slides to embed (e.g., "example")
- show_actions: (optional) show open/speaker notes links, default true
- title: (optional) title for iframe, defaults to page title
*/}}
{{ $page := .page }}
{{ $slides_slug := .slides_slug }}
{{ $show_actions := .show_actions | default true }}
{{ $slides_label := i18n "slides" | default "Slides" }}
{{ $present_fullscreen_label := i18n "present_fullscreen" | default "Present (fullscreen)" }}
{{ $enter_fullscreen_label := i18n "enter_fullscreen" | default "Enter fullscreen" }}
{{ $exit_fullscreen_label := i18n "exit_fullscreen" | default "Exit fullscreen" }}
{{ $speaker_notes_hint := i18n "speaker_notes_hint" | default "for speaker notes" }}
{{ $slides_not_found_label := i18n "slides_not_found" | default "Slides not found" }}
{{ $embed_title := .title | default (printf "%s - %s" $page.Title $slides_label) }}
{{/* Enable Alpine.js for fullscreen functionality */}}
{{ $page.Store.Set "has_alpine" true }}
{{/* Get slides page */}}
{{ $slides_page := site.GetPage (printf "/slides/%s" $slides_slug) }}
{{ $scr := newScratch }}
{{ if $slides_page }}
{{ $scr.Set "slides_url" $slides_page.RelPermalink }}
{{ $scr.Set "present_url" $slides_page.RelPermalink }}
{{ $scr.Set "embed_url" $slides_page.RelPermalink }}
{{ $present_format := $slides_page.OutputFormats.Get "present" }}
{{ if not $present_format }}
{{ $present_format = $slides_page.OutputFormats.Get "Present" }}
{{ end }}
{{ with $present_format }}
{{ $scr.Set "present_url" .RelPermalink }}
{{ $scr.Set "embed_url" (printf "%s?embed=1" .RelPermalink) }}
{{ end }}
{{ end }}
{{ $slides_url := $scr.Get "slides_url" }}
{{ $present_url := $scr.Get "present_url" | default $slides_url }}
{{ $embed_url := $scr.Get "embed_url" | default $slides_url }}
{{ if $slides_page }}
<div
x-data="{
isFullscreen: false,
toggleFullscreen() {
const container = this.$refs.slideContainer;
if (!this.isFullscreen) {
if (container.requestFullscreen) {
container.requestFullscreen();
} else if (container.webkitRequestFullscreen) {
container.webkitRequestFullscreen();
} else if (container.msRequestFullscreen) {
container.msRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
}"
@fullscreenchange.window="isFullscreen = document.fullscreenElement === $refs.slideContainer"
@webkitfullscreenchange.window="isFullscreen = document.webkitFullscreenElement === $refs.slideContainer"
class="mb-12"
>
{{/* Slides iframe container - wrapper for fullscreen API */}}
<div
x-ref="slideContainer"
class="relative w-full bg-black rounded-lg shadow-2xl overflow-visible"
style="aspect-ratio: 16 / 9;"
:class="isFullscreen ? 'h-screen' : ''"
>
<iframe
src="{{ $embed_url }}"
class="w-full h-full border-0 rounded-lg"
allowfullscreen
allow="autoplay"
title="{{ $embed_title }}"
loading="lazy"
></iframe>
{{/* Fullscreen toggle button - inside container for fullscreen visibility */}}
<button
@click="toggleFullscreen()"
class="absolute top-4 right-4 p-3 bg-white/95 dark:bg-gray-800/95 hover:bg-white dark:hover:bg-gray-800 text-gray-700 dark:text-gray-200 rounded-lg shadow-xl border border-gray-200 dark:border-gray-700 transition-all duration-200 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary-500 backdrop-blur-sm"
:aria-label="isFullscreen ? {{ $exit_fullscreen_label | jsonify }} : {{ $enter_fullscreen_label | jsonify }}"
type="button"
style="z-index: 9999;"
>
{{/* Expand icon (when not fullscreen) */}}
<svg
x-show="!isFullscreen"
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4" />
</svg>
{{/* Compress icon (when fullscreen) */}}
<svg
x-show="isFullscreen"
x-cloak
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25" />
</svg>
</button>
</div>
{{ if $show_actions }}
{{/* Action links below embed */}}
<div class="mt-4 flex items-center justify-between text-sm text-gray-600 dark:text-gray-400">
<div class="flex items-center gap-4">
{{/* Open in new tab */}}
<a
href="{{ $present_url }}"
target="_blank"
rel="noopener"
class="inline-flex items-center gap-1 hover:text-primary-600 dark:hover:text-primary-400 transition-colors"
>
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
<span>{{ $present_fullscreen_label }}</span>
</a>
{{/* Presentation mode hint */}}
<span class="text-xs">
<kbd class="px-2 py-1 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">S</kbd>
{{ $speaker_notes_hint }}
</span>
</div>
</div>
{{ end }}
</div>
{{ else }}
<p class="text-sm text-red-600 dark:text-red-400">{{ $slides_not_found_label }}: {{ $slides_slug }}</p>
{{ end }}
@@ -89,22 +89,46 @@
{{/* 2b) Slides relation parameter (legacy but common) */}}
{{ with $page.Params.slides }}
{{ with (site.GetPage (printf "slides/%s" .)) }}
{{ $typeF := "slides" }}
{{ $urlF := .RelPermalink }}
{{ $keyF := printf "%s::%s" $typeF $urlF }}
{{ if not ($seen.Get (printf "set.%s" $keyF)) }}
{{ $seen.SetInMap "set" $keyF true }}
{{ $links = $links | append (dict
"type" $typeF
"url" $urlF
"icon" (index (index $types $typeF) "icon")
"labelKey" (index (index $types $typeF) "label_i18n")
"contexts" (slice "list" "page")
) }}
{{ if reflect.IsMap . }}
{{/* Skip: slides map is Reveal.js config for slide decks. */}}
{{ else if reflect.IsSlice . }}
{{ range . }}
{{ with (site.GetPage (printf "slides/%s" .)) }}
{{ $typeF := "slides" }}
{{ $urlF := .RelPermalink }}
{{ $keyF := printf "%s::%s" $typeF $urlF }}
{{ if not ($seen.Get (printf "set.%s" $keyF)) }}
{{ $seen.SetInMap "set" $keyF true }}
{{ $links = $links | append (dict
"type" $typeF
"url" $urlF
"icon" (index (index $types $typeF) "icon")
"labelKey" (index (index $types $typeF) "label_i18n")
"contexts" (slice "list" "page")
) }}
{{ end }}
{{ else }}
{{ warnf "`slides` relation could not resolve to a page for %s" $page.File.Path }}
{{ end }}
{{ end }}
{{ else }}
{{ warnf "`slides` relation could not resolve to a page for %s" $page.File.Path }}
{{ with (site.GetPage (printf "slides/%s" .)) }}
{{ $typeF := "slides" }}
{{ $urlF := .RelPermalink }}
{{ $keyF := printf "%s::%s" $typeF $urlF }}
{{ if not ($seen.Get (printf "set.%s" $keyF)) }}
{{ $seen.SetInMap "set" $keyF true }}
{{ $links = $links | append (dict
"type" $typeF
"url" $urlF
"icon" (index (index $types $typeF) "icon")
"labelKey" (index (index $types $typeF) "label_i18n")
"contexts" (slice "list" "page")
) }}
{{ end }}
{{ else }}
{{ warnf "`slides` relation could not resolve to a page for %s" $page.File.Path }}
{{ end }}
{{ end }}
{{ end }}
@@ -0,0 +1,2 @@
</div>
</div>
@@ -0,0 +1,5 @@
{{ $columns := .config.columns | default 2 }}
{{ $len := .config.len | default 1 }}
{{/* Grid layout optimized for slide deck previews - 16:9 aspect ratio cards */}}
<div class="container px-4 sm:px-6 mx-auto max-w-6xl py-8">
<div class="grid gap-6 sm:gap-8 {{ if eq $columns 1 }}max-w-xl mx-auto{{ else if eq $columns 2 }}grid-cols-1 md:grid-cols-2{{ else }}grid-cols-1 md:grid-cols-2 lg:grid-cols-3{{ end }}">
@@ -0,0 +1,203 @@
{{/* Hugo Blox Slides Gallery View - Optimized for slide deck presentations */}}
{{/* Features: 16:9 aspect ratio, play button overlay, slide count, tags, featured badge */}}
{{ $item := .item }}
{{ $link := $item.RelPermalink }}
{{ $html_format := $item.OutputFormats.Get "HTML" }}
{{ if not $html_format }}
{{ $html_format = $item.OutputFormats.Get "html" }}
{{ end }}
{{ with $html_format }}
{{ $link = .RelPermalink }}
{{ end }}
{{ $present_link := $link }}
{{ $present_format := $item.OutputFormats.Get "present" }}
{{ if not $present_format }}
{{ $present_format = $item.OutputFormats.Get "Present" }}
{{ end }}
{{ with $present_format }}
{{ $present_link = .RelPermalink }}
{{ end }}
{{ $resource := partial "functions/get_featured_image.html" $item }}
{{ $index := .index }}
{{ $featured_label := i18n "featured" | default "Featured" }}
{{ $details_label := i18n "details" | default "Details" }}
{{ $present_label := i18n "present_slides" | default "Present" }}
{{ $present_fullscreen_label := i18n "present_fullscreen" | default "Present (fullscreen)" }}
{{ $slides_label := i18n "slides" | default "Slides" }}
{{/* Check if featured/pinned */}}
{{ $isFeatured := or $item.Params.featured $item.Params.pinned }}
{{/* Calculate slide count by counting "---" separators in content */}}
{{ $content := $item.RawContent }}
{{ $slideCount := 1 }}
{{ $separators := findRE "(?m)^---$" $content }}
{{ if $separators }}
{{ $slideCount = add (len $separators) 1 }}
{{/* Subtract 1 for front matter separator if content starts with --- */}}
{{ if hasPrefix $content "---" }}
{{ $slideCount = sub $slideCount 1 }}
{{ end }}
{{ end }}
{{/* Get summary - use description from front matter or truncate content */}}
{{ $summary := $item.Description | default $item.Summary | default "" }}
{{ $summary = $summary | plainify | truncate 160 }}
<article class="group relative flex flex-col bg-white dark:bg-zinc-900 rounded-xl shadow-sm ring-1 ring-zinc-900/5 dark:ring-white/10 overflow-hidden transition-all duration-300 hover:shadow-lg hover:shadow-primary-500/10 hover:-translate-y-1{{ if $isFeatured }} ring-2 ring-primary-500/50{{ end }}">
{{/* Featured Badge */}}
{{ if $isFeatured }}
<div class="absolute top-3 left-3 z-10 px-2.5 py-1 rounded-full text-xs font-semibold bg-primary-500 text-white flex items-center gap-1.5 shadow-lg">
<svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
<path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
</svg>
{{ $featured_label }}
</div>
{{ end }}
{{/* Slide Preview Image - 16:9 aspect ratio */}}
<a href="{{ $present_link }}" target="_blank" rel="noopener" class="block relative aspect-video bg-gradient-to-br from-zinc-100 to-zinc-200 dark:from-zinc-800 dark:to-zinc-900 overflow-hidden" aria-label="{{ printf "%s %s" $present_fullscreen_label ($item.Title | plainify) }}">
{{ with $resource }}
{{ if strings.Contains .MediaType.SubType "svg" }}
<img
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"
src="{{ .RelPermalink }}"
loading="lazy"
decoding="async"
alt="{{ $item.Title | plainify }}">
{{ else if ne .MediaType.SubType "gif" }}
{{ $image := .Fill "800x450 Center" }}
{{ $responsive := partial "functions/process_responsive_image.html" (dict
"image" $image
"mode" "responsive"
"sizes" (slice 400 600 800)
"formats" (slice "avif" "webp" "jpg")
) }}
<img
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"
srcset="{{ $responsive.srcset }}"
sizes="(max-width: 768px) 100vw, 50vw"
src="{{ $responsive.fallback.RelPermalink }}"
width="{{ $image.Width }}"
height="{{ $image.Height }}"
loading="lazy"
decoding="async"
{{ if eq $index 0 }}fetchpriority="high"{{ end }}
alt="{{ $item.Title | plainify }}">
{{ else }}
<img
class="w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"
src="{{ .RelPermalink }}"
loading="lazy"
decoding="async"
alt="{{ $item.Title | plainify }}">
{{ end }}
{{ else }}
{{/* Fallback: Decorative gradient with slide icon - smaller, cleaner */}}
<div class="w-full h-full bg-gradient-to-br from-primary-500/10 via-secondary-500/10 to-primary-700/15 dark:from-primary-600/20 dark:via-secondary-600/15 dark:to-primary-800/25 flex items-center justify-center">
<div class="text-center px-4">
<svg class="w-8 h-8 mx-auto text-primary-500/40 dark:text-primary-400/40" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3.75 3v11.25A2.25 2.25 0 006 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0118 16.5h-2.25m-7.5 0h7.5m-7.5 0l-1 3m8.5-3l1 3m0 0l.5 1.5m-.5-1.5h-9.5m0 0l-.5 1.5m.75-9l3-3 2.148 2.148A12.061 12.061 0 0116.5 7.605" />
</svg>
</div>
</div>
{{ end }}
{{/* Play button overlay on hover */}}
<div class="absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/30 transition-all duration-300">
<div class="w-14 h-14 rounded-full bg-white/90 dark:bg-zinc-900/90 flex items-center justify-center opacity-0 group-hover:opacity-100 transform scale-75 group-hover:scale-100 transition-all duration-300 shadow-lg">
<svg class="w-6 h-6 text-primary-600 dark:text-primary-400 ml-1" fill="currentColor" viewBox="0 0 24 24">
<path d="M8 5v14l11-7z"/>
</svg>
</div>
</div>
{{/* Slide count badge */}}
{{ if gt $slideCount 1 }}
<div class="absolute bottom-3 right-3 px-2.5 py-1 rounded-full text-xs font-medium bg-black/60 backdrop-blur-sm text-white">
{{ $slideCount }} {{ $slides_label | lower }}
</div>
{{ end }}
</a>
{{/* Content Section */}}
<div class="flex flex-col flex-1 p-5">
{{/* Tags */}}
{{ if $item.Params.tags }}
<div class="flex flex-wrap gap-2 mb-3">
{{ range first 3 $item.Params.tags }}
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary-100 text-primary-800 dark:bg-primary-900/40 dark:text-primary-300">
{{ . }}
</span>
{{ end }}
{{ if gt (len $item.Params.tags) 3 }}
<span class="text-xs text-zinc-500 dark:text-zinc-400">+{{ sub (len $item.Params.tags) 3 }}</span>
{{ end }}
</div>
{{ end }}
{{ $authors := slice }}
{{ with $item.Params.authors }}
{{ if reflect.IsSlice . }}
{{ $authors = . }}
{{ else }}
{{ $authors = slice . }}
{{ end }}
{{ end }}
{{ if gt (len $authors) 0 }}
{{ $author := index $authors 0 }}
{{ $profile := partial "functions/get_author_profile" $author }}
{{ $avatar := $profile.avatar }}
{{ $authorName := $author }}
{{ if $profile.has_data }}
{{ $authorName = $profile.title }}
{{ end }}
<div class="flex items-center gap-2 mb-2 text-xs text-zinc-500 dark:text-zinc-400">
<div class="relative h-6 w-6 flex-shrink-0">
{{ if $avatar }}
{{ $avatar_48 := $avatar.Process "Fill 48x48 Center webp" }}
<img alt="{{ $authorName }}" class="rounded-full object-cover" src="{{ $avatar_48.RelPermalink }}" width="24" height="24" loading="lazy" decoding="async" />
{{ else }}
<div class="w-6 h-6 bg-zinc-100 dark:bg-zinc-800 rounded-full flex items-center justify-center">
{{ partial "functions/get_icon" (dict "name" "hero/user" "attributes" "class=\"w-4 h-4 text-zinc-500 dark:text-zinc-400\"") }}
</div>
{{ end }}
</div>
<span class="truncate max-w-[10rem]">{{ $authorName }}</span>
</div>
{{ end }}
{{/* Title */}}
<h3 class="text-lg font-semibold text-zinc-900 dark:text-zinc-100 group-hover:text-primary-600 dark:group-hover:text-primary-400 transition-colors line-clamp-2 mb-2">
<a href="{{ $link }}">{{ $item.Title }}</a>
</h3>
{{/* Summary */}}
<p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-3 min-h-[3.75rem] mb-3 flex-1">{{ if $summary }}{{ $summary }}{{ else }}&nbsp;{{ end }}</p>
{{/* Footer: Venue, Year, Details + Present Links */}}
<div class="flex items-center justify-between pt-3 border-t border-zinc-100 dark:border-zinc-800 mt-auto">
<div class="flex items-center gap-2 text-xs text-zinc-500 dark:text-zinc-500">
{{ with $item.Params.venue }}
<span class="truncate max-w-[120px]" title="{{ . }}">{{ . }}</span>
<span class="text-zinc-300 dark:text-zinc-600">·</span>
{{ end }}
<time datetime="{{ $item.Date.Format "2006-01-02" }}">
{{ $item.Date.Format "2006" }}
</time>
</div>
<div class="flex items-center gap-3">
<a href="{{ $link }}" class="inline-flex items-center gap-1 text-xs font-medium text-zinc-600 dark:text-zinc-400 hover:text-zinc-900 dark:hover:text-zinc-100 transition-colors">
<span>{{ $details_label }}</span>
</a>
<a href="{{ $present_link }}" target="_blank" rel="noopener" class="inline-flex items-center gap-1 text-xs font-medium text-primary-600 dark:text-primary-400 hover:text-primary-700 dark:hover:text-primary-300 transition-colors">
<span>{{ $present_label }}</span>
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"/>
</svg>
</a>
</div>
</div>
</div>
</article>
+1 -112
View File
@@ -67,7 +67,6 @@
{{/* Set Alpine.js flag if author notes exist */}}
{{ if isset .Params "author_notes" }}
{{ .Store.Set "has_alpine" true }}
<script>console.log('Author notes detected in events/single.html, Alpine.js should load');</script>
{{ end }}
{{ range $i, $slug := .Params.authors }}
@@ -138,117 +137,7 @@
{{/* EMBEDDED SLIDES SECTION - Replaces featured image for events with slides */}}
{{ if .Params.slides }}
{{/* Enable Alpine.js for fullscreen functionality */}}
{{ .Store.Set "has_alpine" true }}
{{/* Construct slides URL */}}
{{ $slides_page := site.GetPage (printf "/slides/%s" .Params.slides) }}
{{ if $slides_page }}
<div
x-data="{
isFullscreen: false,
toggleFullscreen() {
const container = this.$refs.slideContainer;
if (!this.isFullscreen) {
if (container.requestFullscreen) {
container.requestFullscreen();
} else if (container.webkitRequestFullscreen) {
container.webkitRequestFullscreen();
} else if (container.msRequestFullscreen) {
container.msRequestFullscreen();
}
} else {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}
}"
@fullscreenchange.window="isFullscreen = document.fullscreenElement === $refs.slideContainer"
@webkitfullscreenchange.window="isFullscreen = document.webkitFullscreenElement === $refs.slideContainer"
class="mb-12"
>
{{/* Slides iframe container - must contain button for fullscreen visibility */}}
<div
x-ref="slideContainer"
class="relative w-full bg-black rounded-lg shadow-2xl overflow-visible"
style="aspect-ratio: 16 / 9;"
:class="isFullscreen ? 'h-screen' : ''"
>
<iframe
src="{{ $slides_page.RelPermalink }}"
class="w-full h-full border-0 rounded-lg"
allowfullscreen
allow="autoplay"
title="{{ $.Title }} - Slides"
loading="lazy"
></iframe>
{{/* Fullscreen toggle button - must be inside fullscreen container */}}
<button
@click="toggleFullscreen()"
class="absolute top-4 right-4 p-3 bg-white/95 dark:bg-gray-800/95 hover:bg-white dark:hover:bg-gray-800 text-gray-700 dark:text-gray-200 rounded-lg shadow-xl border border-gray-200 dark:border-gray-700 transition-all duration-200 hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary-500 backdrop-blur-sm"
:aria-label="isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'"
type="button"
style="z-index: 9999;"
>
{{/* Expand icon (when not fullscreen) */}}
<svg
x-show="!isFullscreen"
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4" />
</svg>
{{/* Compress icon (when fullscreen) */}}
<svg
x-show="isFullscreen"
x-cloak
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
stroke-width="2"
>
<path stroke-linecap="round" stroke-linejoin="round" d="M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25" />
</svg>
</button>
</div>
{{/* Slides metadata */}}
<div class="mt-4 flex items-center justify-between text-sm text-gray-600 dark:text-gray-400">
<div class="flex items-center gap-4">
{{/* Direct link to slides */}}
<a
href="{{ $slides_page.RelPermalink }}"
target="_blank"
class="inline-flex items-center gap-1 hover:text-primary-600 dark:hover:text-primary-400 transition-colors"
>
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
</svg>
<span>View slides in new tab</span>
</a>
{{/* Presentation mode hint */}}
<span class="text-xs">
<kbd class="px-2 py-1 text-xs font-semibold text-gray-800 bg-gray-100 border border-gray-200 rounded dark:bg-gray-600 dark:text-gray-100 dark:border-gray-500">S</kbd>
for speaker notes
</span>
</div>
</div>
</div>
{{ end }}
{{ partial "components/slides-embed.html" (dict "page" . "slides_slug" .Params.slides) }}
{{ else }}
{{/* Fallback to featured image if no slides */}}
{{ $featured := partial "functions/get_featured_image.html" . }}
-1
View File
@@ -24,7 +24,6 @@
{{ range .Pages }}
{{ if isset .Params "author_notes" }}
{{ $.Store.Set "has_alpine" true }}
<script>console.log('Author notes found in list - Alpine.js enabled');</script>
{{ break }}
{{ end }}
{{ end }}
-1
View File
@@ -76,7 +76,6 @@
{{/* Set Alpine.js flag if author notes exist */}}
{{ if isset .Params "author_notes" }}
{{ .Store.Set "has_alpine" true }}
<script>console.log('Author notes detected in single.html, Alpine.js should load');</script>
{{ end }}
{{ range $i, $slug := .Params.authors }}