converters

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 19, 2026 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnimatedSVG

type AnimatedSVG struct {
	// contains filtered or unexported fields
}

func NewAnimatedSVG

func NewAnimatedSVG(runner ports.CommandRunner) *AnimatedSVG

func (*AnimatedSVG) CanConvert

func (c *AnimatedSVG) CanConvert(input domain.Format, output domain.Format) bool

func (*AnimatedSVG) Capabilities

func (c *AnimatedSVG) Capabilities() []domain.ConversionCapability

func (*AnimatedSVG) CapabilitiesForInput

func (c *AnimatedSVG) CapabilitiesForInput(path string, input domain.Format) []domain.ConversionCapability

func (*AnimatedSVG) Convert

func (*AnimatedSVG) ConvertWithCommand

func (c *AnimatedSVG) ConvertWithCommand(ctx context.Context, job domain.ConvertJob, command string) (domain.ConversionResult, error)

func (*AnimatedSVG) DependencyChecks

func (c *AnimatedSVG) DependencyChecks() []ports.DependencyCheck

func (*AnimatedSVG) Description

func (c *AnimatedSVG) Description() string

func (*AnimatedSVG) ID

func (c *AnimatedSVG) ID() string

func (*AnimatedSVG) MissingDependencies

func (c *AnimatedSVG) MissingDependencies(input domain.Format, output domain.Format, options domain.ConvertOptions) []string

func (*AnimatedSVG) OptionSpecs

func (c *AnimatedSVG) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*AnimatedSVG) PreviewCommands

func (c *AnimatedSVG) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*AnimatedSVG) RequiredCommands

func (c *AnimatedSVG) RequiredCommands() []string

type Archive

type Archive struct {
	// contains filtered or unexported fields
}

func NewArchive

func NewArchive() *Archive

func (*Archive) CanConvert

func (c *Archive) CanConvert(input domain.Format, output domain.Format) bool

func (*Archive) Capabilities

func (c *Archive) Capabilities() []domain.ConversionCapability

func (*Archive) Convert

func (*Archive) Description

func (c *Archive) Description() string

func (*Archive) ID

func (c *Archive) ID() string

func (*Archive) RequiredCommands

func (c *Archive) RequiredCommands() []string

type Calibre

type Calibre struct {
	// contains filtered or unexported fields
}

func NewCalibre

func NewCalibre(runner ports.CommandRunner) *Calibre

func (*Calibre) CanConvert

func (c *Calibre) CanConvert(input domain.Format, output domain.Format) bool

func (*Calibre) Capabilities

func (c *Calibre) Capabilities() []domain.ConversionCapability

func (*Calibre) Convert

func (*Calibre) Description

func (c *Calibre) Description() string

func (*Calibre) ID

func (c *Calibre) ID() string

func (*Calibre) PreviewCommands

func (c *Calibre) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Calibre) RequiredCommands

func (c *Calibre) RequiredCommands() []string

type DjVuLibre

type DjVuLibre struct {
	// contains filtered or unexported fields
}

DjVuLibre gives the djvu format (previously recognized but unconvertible) real outputs: pdf/tiff via ddjvu and plain text via djvutxt.

func NewDjVuLibre

func NewDjVuLibre(runner ports.CommandRunner) *DjVuLibre

func (*DjVuLibre) CanConvert

func (c *DjVuLibre) CanConvert(input domain.Format, output domain.Format) bool

func (*DjVuLibre) Capabilities

func (c *DjVuLibre) Capabilities() []domain.ConversionCapability

func (*DjVuLibre) Convert

func (*DjVuLibre) Description

func (c *DjVuLibre) Description() string

func (*DjVuLibre) ID

func (c *DjVuLibre) ID() string

func (*DjVuLibre) MissingDependencies

func (c *DjVuLibre) MissingDependencies(input domain.Format, output domain.Format, options domain.ConvertOptions) []string

func (*DjVuLibre) PreviewCommands

func (c *DjVuLibre) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*DjVuLibre) RequiredCommands

func (c *DjVuLibre) RequiredCommands() []string

type FFmpeg

type FFmpeg struct {
	// contains filtered or unexported fields
}

func NewFFmpeg

func NewFFmpeg(runner ports.CommandRunner) *FFmpeg

NewFFmpeg builds a capability matrix that only contains pairs FFmpeg can actually produce: video converts to video/animation and extracts audio, animations convert to video/animation, and audio stays audio. Audio can never become a picture, so those pairs are not declared.

func (*FFmpeg) CanConvert

func (c *FFmpeg) CanConvert(input domain.Format, output domain.Format) bool

func (*FFmpeg) Capabilities

func (c *FFmpeg) Capabilities() []domain.ConversionCapability

func (*FFmpeg) Convert

func (*FFmpeg) Description

func (c *FFmpeg) Description() string

func (*FFmpeg) ID

func (c *FFmpeg) ID() string

func (*FFmpeg) OptionSpecs

func (c *FFmpeg) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*FFmpeg) PreviewCommands

func (c *FFmpeg) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*FFmpeg) RequiredCommands

func (c *FFmpeg) RequiredCommands() []string

type FontForge

type FontForge struct {
	// contains filtered or unexported fields
}

func NewFontForge

func NewFontForge(runner ports.CommandRunner) *FontForge

func (*FontForge) CanConvert

func (c *FontForge) CanConvert(input domain.Format, output domain.Format) bool

func (*FontForge) Capabilities

func (c *FontForge) Capabilities() []domain.ConversionCapability

func (*FontForge) Convert

func (*FontForge) Description

func (c *FontForge) Description() string

func (*FontForge) ID

func (c *FontForge) ID() string

func (*FontForge) OptionSpecs

func (c *FontForge) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*FontForge) PreviewCommands

func (c *FontForge) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*FontForge) RequiredCommands

func (c *FontForge) RequiredCommands() []string

type GDAL

type GDAL struct {
	// contains filtered or unexported fields
}

func NewGDAL

func NewGDAL(runner ports.CommandRunner) *GDAL

NewGDAL declares vector translation pairs. TopoJSON, OSM, and PBF drivers are read-only in GDAL, so they appear as inputs but never as outputs.

func (*GDAL) CanConvert

func (c *GDAL) CanConvert(input domain.Format, output domain.Format) bool

func (*GDAL) Capabilities

func (c *GDAL) Capabilities() []domain.ConversionCapability

func (*GDAL) Convert

func (*GDAL) Description

func (c *GDAL) Description() string

func (*GDAL) ID

func (c *GDAL) ID() string

func (*GDAL) PreviewCommands

func (c *GDAL) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*GDAL) RequiredCommands

func (c *GDAL) RequiredCommands() []string

type Ghostscript

type Ghostscript struct {
	// contains filtered or unexported fields
}

Ghostscript covers the PDF/PostScript niches the other backends miss: PostScript/EPS to PDF, and same-format PDF compression.

func NewGhostscript

func NewGhostscript(runner ports.CommandRunner) *Ghostscript

func (*Ghostscript) CanConvert

func (c *Ghostscript) CanConvert(input domain.Format, output domain.Format) bool

func (*Ghostscript) Capabilities

func (c *Ghostscript) Capabilities() []domain.ConversionCapability

func (*Ghostscript) Convert

func (*Ghostscript) Description

func (c *Ghostscript) Description() string

func (*Ghostscript) ID

func (c *Ghostscript) ID() string

func (*Ghostscript) PreviewCommands

func (c *Ghostscript) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Ghostscript) RequiredCommands

func (c *Ghostscript) RequiredCommands() []string

type Graphviz

type Graphviz struct {
	// contains filtered or unexported fields
}

Graphviz renders DOT graph descriptions, a staple of developer tooling.

func NewGraphviz

func NewGraphviz(runner ports.CommandRunner) *Graphviz

func (*Graphviz) CanConvert

func (c *Graphviz) CanConvert(input domain.Format, output domain.Format) bool

func (*Graphviz) Capabilities

func (c *Graphviz) Capabilities() []domain.ConversionCapability

func (*Graphviz) Convert

func (*Graphviz) Description

func (c *Graphviz) Description() string

func (*Graphviz) ID

func (c *Graphviz) ID() string

func (*Graphviz) PreviewCommands

func (c *Graphviz) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Graphviz) RequiredCommands

func (c *Graphviz) RequiredCommands() []string

type ImageMagick

type ImageMagick struct {
	// contains filtered or unexported fields
}

func NewImageMagick

func NewImageMagick(runner ports.CommandRunner) *ImageMagick

func (*ImageMagick) CanConvert

func (c *ImageMagick) CanConvert(input domain.Format, output domain.Format) bool

func (*ImageMagick) Capabilities

func (c *ImageMagick) Capabilities() []domain.ConversionCapability

func (*ImageMagick) Convert

func (*ImageMagick) Description

func (c *ImageMagick) Description() string

func (*ImageMagick) ID

func (c *ImageMagick) ID() string

func (*ImageMagick) OptionSpecs

func (c *ImageMagick) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*ImageMagick) PreviewCommands

func (c *ImageMagick) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*ImageMagick) RequiredCommands

func (c *ImageMagick) RequiredCommands() []string

type Inkscape

type Inkscape struct {
	// contains filtered or unexported fields
}

Inkscape renders SVG to print-oriented formats. It is the only built-in backend with a faithful svg -> pdf/eps/ps path; for svg -> png it ranks below resvg and acts as a fallback.

func NewInkscape

func NewInkscape(runner ports.CommandRunner) *Inkscape

func (*Inkscape) CanConvert

func (c *Inkscape) CanConvert(input domain.Format, output domain.Format) bool

func (*Inkscape) Capabilities

func (c *Inkscape) Capabilities() []domain.ConversionCapability

func (*Inkscape) Convert

func (*Inkscape) Description

func (c *Inkscape) Description() string

func (*Inkscape) ID

func (c *Inkscape) ID() string

func (*Inkscape) PreviewCommands

func (c *Inkscape) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Inkscape) RequiredCommands

func (c *Inkscape) RequiredCommands() []string

type Jupyter

type Jupyter struct {
	// contains filtered or unexported fields
}

Jupyter exports notebooks through `jupyter nbconvert`: HTML and Markdown reports, or the plain Python script embedded in the notebook.

func NewJupyter

func NewJupyter(runner ports.CommandRunner) *Jupyter

func (*Jupyter) CanConvert

func (c *Jupyter) CanConvert(input domain.Format, output domain.Format) bool

func (*Jupyter) Capabilities

func (c *Jupyter) Capabilities() []domain.ConversionCapability

func (*Jupyter) Convert

func (*Jupyter) Description

func (c *Jupyter) Description() string

func (*Jupyter) ID

func (c *Jupyter) ID() string

func (*Jupyter) PreviewCommands

func (c *Jupyter) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Jupyter) RequiredCommands

func (c *Jupyter) RequiredCommands() []string

type LibreOffice

type LibreOffice struct {
	// contains filtered or unexported fields
}

func NewLibreOffice

func NewLibreOffice(runner ports.CommandRunner) *LibreOffice

func (*LibreOffice) CanConvert

func (c *LibreOffice) CanConvert(input domain.Format, output domain.Format) bool

func (*LibreOffice) Capabilities

func (c *LibreOffice) Capabilities() []domain.ConversionCapability

func (*LibreOffice) Convert

func (*LibreOffice) Description

func (c *LibreOffice) Description() string

func (*LibreOffice) ID

func (c *LibreOffice) ID() string

func (*LibreOffice) PreviewCommands

func (c *LibreOffice) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*LibreOffice) RequiredCommands

func (c *LibreOffice) RequiredCommands() []string

type Mermaid

type Mermaid struct {
	// contains filtered or unexported fields
}

Mermaid renders Mermaid diagram files through the mermaid-cli (mmdc).

func NewMermaid

func NewMermaid(runner ports.CommandRunner) *Mermaid

func (*Mermaid) CanConvert

func (c *Mermaid) CanConvert(input domain.Format, output domain.Format) bool

func (*Mermaid) Capabilities

func (c *Mermaid) Capabilities() []domain.ConversionCapability

func (*Mermaid) Convert

func (*Mermaid) Description

func (c *Mermaid) Description() string

func (*Mermaid) ID

func (c *Mermaid) ID() string

func (*Mermaid) PreviewCommands

func (c *Mermaid) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Mermaid) RequiredCommands

func (c *Mermaid) RequiredCommands() []string

type Pandoc

type Pandoc struct {
	// contains filtered or unexported fields
}

func NewPandoc

func NewPandoc(runner ports.CommandRunner) *Pandoc

func (*Pandoc) CanConvert

func (c *Pandoc) CanConvert(input domain.Format, output domain.Format) bool

func (*Pandoc) Capabilities

func (c *Pandoc) Capabilities() []domain.ConversionCapability

func (*Pandoc) Convert

func (*Pandoc) Description

func (c *Pandoc) Description() string

func (*Pandoc) ID

func (c *Pandoc) ID() string

func (*Pandoc) MissingDependencies

func (c *Pandoc) MissingDependencies(input domain.Format, output domain.Format, options domain.ConvertOptions) []string

func (*Pandoc) PreviewCommands

func (c *Pandoc) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Pandoc) RequiredCommands

func (c *Pandoc) RequiredCommands() []string

type Poppler

type Poppler struct {
	// contains filtered or unexported fields
}

Poppler extracts the text layer of PDFs via pdftotext. This is instant for digital PDFs; scanned PDFs without a text layer need OCR instead.

func NewPoppler

func NewPoppler(runner ports.CommandRunner) *Poppler

func (*Poppler) CanConvert

func (c *Poppler) CanConvert(input domain.Format, output domain.Format) bool

func (*Poppler) Capabilities

func (c *Poppler) Capabilities() []domain.ConversionCapability

func (*Poppler) Convert

func (*Poppler) Description

func (c *Poppler) Description() string

func (*Poppler) ID

func (c *Poppler) ID() string

func (*Poppler) MissingDependencies

func (c *Poppler) MissingDependencies(input domain.Format, output domain.Format, options domain.ConvertOptions) []string

func (*Poppler) PreviewCommands

func (c *Poppler) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Poppler) RequiredCommands

func (c *Poppler) RequiredCommands() []string

type QemuImg

type QemuImg struct {
	// contains filtered or unexported fields
}

func NewQemuImg

func NewQemuImg(runner ports.CommandRunner) *QemuImg

func (*QemuImg) CanConvert

func (c *QemuImg) CanConvert(input domain.Format, output domain.Format) bool

func (*QemuImg) Capabilities

func (c *QemuImg) Capabilities() []domain.ConversionCapability

func (*QemuImg) Convert

func (*QemuImg) Description

func (c *QemuImg) Description() string

func (*QemuImg) ID

func (c *QemuImg) ID() string

func (*QemuImg) PreviewCommands

func (c *QemuImg) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*QemuImg) RequiredCommands

func (c *QemuImg) RequiredCommands() []string

type Resvg

type Resvg struct {
	// contains filtered or unexported fields
}

func NewResvg

func NewResvg(runner ports.CommandRunner) *Resvg

func (*Resvg) CanConvert

func (c *Resvg) CanConvert(input domain.Format, output domain.Format) bool

func (*Resvg) Capabilities

func (c *Resvg) Capabilities() []domain.ConversionCapability

func (*Resvg) Convert

func (*Resvg) Description

func (c *Resvg) Description() string

func (*Resvg) ID

func (c *Resvg) ID() string

func (*Resvg) PreviewCommands

func (c *Resvg) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Resvg) RequiredCommands

func (c *Resvg) RequiredCommands() []string

type SevenZip

type SevenZip struct {
	// contains filtered or unexported fields
}

func NewSevenZip

func NewSevenZip(runner ports.CommandRunner) *SevenZip

func (*SevenZip) CanConvert

func (c *SevenZip) CanConvert(input domain.Format, output domain.Format) bool

func (*SevenZip) Capabilities

func (c *SevenZip) Capabilities() []domain.ConversionCapability

func (*SevenZip) Convert

func (*SevenZip) Description

func (c *SevenZip) Description() string

func (*SevenZip) ID

func (c *SevenZip) ID() string

func (*SevenZip) OptionSpecs

func (c *SevenZip) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*SevenZip) PreviewCommands

func (c *SevenZip) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*SevenZip) RequiredCommands

func (c *SevenZip) RequiredCommands() []string

type StructuredData

type StructuredData struct {
	// contains filtered or unexported fields
}

func NewStructuredData

func NewStructuredData() *StructuredData

func (*StructuredData) CanConvert

func (c *StructuredData) CanConvert(input domain.Format, output domain.Format) bool

func (*StructuredData) Capabilities

func (c *StructuredData) Capabilities() []domain.ConversionCapability

func (*StructuredData) Convert

func (*StructuredData) Description

func (c *StructuredData) Description() string

func (*StructuredData) ID

func (c *StructuredData) ID() string

func (*StructuredData) OptionSpecs

func (c *StructuredData) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*StructuredData) RequiredCommands

func (c *StructuredData) RequiredCommands() []string

type TTS

type TTS struct {
	// contains filtered or unexported fields
}

TTS speaks plain text into an audio file. It uses the macOS `say` engine when present (aiff/m4a/wav) and falls back to espeak-ng (wav only).

func NewTTS

func NewTTS(runner ports.CommandRunner) *TTS

func (*TTS) CanConvert

func (c *TTS) CanConvert(input domain.Format, output domain.Format) bool

func (*TTS) Capabilities

func (c *TTS) Capabilities() []domain.ConversionCapability

func (*TTS) Convert

func (c *TTS) Convert(ctx context.Context, job domain.ConvertJob) (domain.ConversionResult, error)

func (*TTS) DependencyChecks

func (c *TTS) DependencyChecks() []ports.DependencyCheck

func (*TTS) Description

func (c *TTS) Description() string

func (*TTS) ID

func (c *TTS) ID() string

func (*TTS) MissingDependencies

func (c *TTS) MissingDependencies(input domain.Format, output domain.Format, options domain.ConvertOptions) []string

func (*TTS) OptionSpecs

func (c *TTS) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*TTS) PreviewCommands

func (c *TTS) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*TTS) RequiredCommands

func (c *TTS) RequiredCommands() []string

RequiredCommands is empty because either engine satisfies the backend; MissingDependencies reports engine availability per output format.

type Tesseract

type Tesseract struct {
	// contains filtered or unexported fields
}

Tesseract OCRs raster images into plain text or a searchable PDF.

func NewTesseract

func NewTesseract(runner ports.CommandRunner) *Tesseract

func (*Tesseract) CanConvert

func (c *Tesseract) CanConvert(input domain.Format, output domain.Format) bool

func (*Tesseract) Capabilities

func (c *Tesseract) Capabilities() []domain.ConversionCapability

func (*Tesseract) Convert

func (*Tesseract) Description

func (c *Tesseract) Description() string

func (*Tesseract) ID

func (c *Tesseract) ID() string

func (*Tesseract) OptionSpecs

func (c *Tesseract) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*Tesseract) PreviewCommands

func (c *Tesseract) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Tesseract) RequiredCommands

func (c *Tesseract) RequiredCommands() []string

type Whisper

type Whisper struct {
	// contains filtered or unexported fields
}

Whisper transcribes audio (and the audio track of video) to text with the OpenAI Whisper CLI, which fetches models on demand.

func NewWhisper

func NewWhisper(runner ports.CommandRunner) *Whisper

func (*Whisper) CanConvert

func (c *Whisper) CanConvert(input domain.Format, output domain.Format) bool

func (*Whisper) Capabilities

func (c *Whisper) Capabilities() []domain.ConversionCapability

func (*Whisper) Convert

func (*Whisper) Description

func (c *Whisper) Description() string

func (*Whisper) ID

func (c *Whisper) ID() string

func (*Whisper) OptionSpecs

func (c *Whisper) OptionSpecs(input domain.Format, output domain.Format) []ports.OptionSpec

func (*Whisper) PreviewCommands

func (c *Whisper) PreviewCommands(job domain.ConvertJob) ports.CommandPreview

func (*Whisper) RequiredCommands

func (c *Whisper) RequiredCommands() []string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL