diff --git a/_extensions/embedio/_schema.yml b/_extensions/embedio/_schema.yml new file mode 100644 index 0000000..406be77 --- /dev/null +++ b/_extensions/embedio/_schema.yml @@ -0,0 +1,107 @@ +$schema: https://m.canouil.dev/quarto-wizard/assets/schema/v1/extension-schema.json + +shortcodes: + audio: + description: "Embed an audio file with an HTML audio player." + arguments: + - name: file + type: string + required: true + description: "Path to the audio file." + completion: + type: file + attributes: + caption: + type: string + description: "Caption text displayed below the audio player." + class: + type: string + description: "CSS class for the wrapping figure element." + download-link: + type: boolean + default: false + description: "Show a download link above the audio player." + pdf: + description: "Embed a PDF file inline." + arguments: + - name: file + type: string + required: true + description: "Path to the PDF file." + completion: + type: file + attributes: + height: + type: string + default: 600px + description: "Height of the embedded PDF viewer." + completion: + type: size + width: + type: string + default: 100% + description: "Width of the embedded PDF viewer." + completion: + type: size + download-link: + type: boolean + default: true + description: "Show a download link above the PDF." + revealjs: + description: "Embed a RevealJS slide deck in an iframe." + arguments: + - name: file + type: string + required: true + description: "Path to the RevealJS HTML file." + completion: + type: file + attributes: + height: + type: string + default: 475px + description: "Height of the iframe." + completion: + type: size + width: + type: string + default: 100% + description: "Width of the iframe." + completion: + type: size + full-screen-link: + type: boolean + default: true + description: "Show a link to view slides in full screen." + class: + type: string + description: "CSS class for the wrapping div element." + html: + description: "Embed an HTML page in an iframe." + arguments: + - name: file + type: string + required: true + description: "Path or URL of the HTML page." + completion: + type: file + attributes: + height: + type: string + default: 475px + description: "Height of the iframe." + completion: + type: size + width: + type: string + default: 100% + description: "Width of the iframe." + completion: + type: size + full-screen-link: + type: boolean + default: true + description: "Show a link to view the page in full screen." + class: + type: string + description: "CSS class for the wrapping div element." diff --git a/_extensions/embedio/_snippets.json b/_extensions/embedio/_snippets.json new file mode 100644 index 0000000..05060da --- /dev/null +++ b/_extensions/embedio/_snippets.json @@ -0,0 +1,30 @@ +{ + "Embed Audio": { + "prefix": "audio", + "body": [ + "{{< audio ${1:path/to/audio.mp3} >}}" + ], + "description": "Embed an audio file with an HTML audio player." + }, + "Embed PDF": { + "prefix": "pdf", + "body": [ + "{{< pdf ${1:path/to/file.pdf} >}}" + ], + "description": "Embed a PDF file inline." + }, + "Embed RevealJS Slides": { + "prefix": "revealjs", + "body": [ + "{{< revealjs ${1:path/to/slides.html} >}}" + ], + "description": "Embed a RevealJS slide deck in an iframe." + }, + "Embed HTML": { + "prefix": "html", + "body": [ + "{{< html ${1:path/to/page.html} >}}" + ], + "description": "Embed an HTML page in an iframe." + } +}