mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
feat(tools): 2.0 phase 5 wave 4 - office, ebooks, data, archives (14 tools) (#224)
This commit is contained in:
@@ -1141,6 +1141,51 @@ export const TOOLS: Tool[] = [
|
||||
acceptedInputs: [".pdf"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "convert-document",
|
||||
name: "Convert Document",
|
||||
description: "Convert between Word, OpenDocument, RTF, and plain text formats",
|
||||
category: "documents",
|
||||
icon: "FileType2",
|
||||
route: "/convert-document",
|
||||
modality: "document",
|
||||
acceptedInputs: [".docx", ".doc", ".odt", ".rtf", ".txt"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "convert-presentation",
|
||||
name: "Convert Presentation",
|
||||
description: "Convert between PowerPoint and OpenDocument presentation formats",
|
||||
category: "documents",
|
||||
icon: "Presentation",
|
||||
route: "/convert-presentation",
|
||||
modality: "document",
|
||||
acceptedInputs: [".pptx", ".ppt", ".odp"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "convert-spreadsheet",
|
||||
name: "Convert Spreadsheet",
|
||||
description:
|
||||
"Convert between Excel, OpenDocument, and CSV formats. Multi-sheet workbooks export the first sheet to CSV.",
|
||||
category: "documents",
|
||||
icon: "Grid3x3",
|
||||
route: "/convert-spreadsheet",
|
||||
modality: "document",
|
||||
acceptedInputs: [".xlsx", ".xls", ".ods", ".csv"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "excel-to-pdf",
|
||||
name: "Excel to PDF",
|
||||
description: "Convert spreadsheets to PDF. Wide sheets may paginate across multiple pages.",
|
||||
category: "documents",
|
||||
icon: "Table",
|
||||
route: "/excel-to-pdf",
|
||||
modality: "document",
|
||||
acceptedInputs: [".xlsx", ".xls", ".ods", ".csv"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "word-to-pdf",
|
||||
name: "Word to PDF",
|
||||
@@ -1361,6 +1406,17 @@ export const TOOLS: Tool[] = [
|
||||
acceptedInputs: [".pdf"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "powerpoint-to-pdf",
|
||||
name: "PowerPoint to PDF",
|
||||
description: "Convert presentations to PDF",
|
||||
category: "documents",
|
||||
icon: "Presentation",
|
||||
route: "/powerpoint-to-pdf",
|
||||
modality: "document",
|
||||
acceptedInputs: [".pptx", ".ppt", ".odp"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "html-to-pdf",
|
||||
name: "HTML to PDF",
|
||||
@@ -1372,6 +1428,29 @@ export const TOOLS: Tool[] = [
|
||||
acceptedInputs: [".html", ".htm"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "markdown-to-docx",
|
||||
name: "Markdown to Word",
|
||||
description: "Convert a Markdown file to a Word document (DOCX)",
|
||||
category: "documents",
|
||||
icon: "FileType",
|
||||
route: "/markdown-to-docx",
|
||||
modality: "document",
|
||||
acceptedInputs: [".md", ".markdown"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "markdown-to-html",
|
||||
name: "Markdown to HTML",
|
||||
description:
|
||||
"Convert a Markdown file to a standalone HTML page. Remote images in the source are left as-is in the output.",
|
||||
category: "documents",
|
||||
icon: "FileCode",
|
||||
route: "/markdown-to-html",
|
||||
modality: "document",
|
||||
acceptedInputs: [".md", ".markdown"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "markdown-to-pdf",
|
||||
name: "Markdown to PDF",
|
||||
@@ -1384,6 +1463,29 @@ export const TOOLS: Tool[] = [
|
||||
acceptedInputs: [".md", ".markdown"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "epub-convert",
|
||||
name: "Convert EPUB",
|
||||
description:
|
||||
"Convert an EPUB to PDF, DOCX, HTML, or Markdown. Remote resources inside the book are not fetched.",
|
||||
category: "documents",
|
||||
icon: "BookOpen",
|
||||
route: "/epub-convert",
|
||||
modality: "document",
|
||||
acceptedInputs: [".epub"],
|
||||
executionHint: "long",
|
||||
},
|
||||
{
|
||||
id: "to-epub",
|
||||
name: "Convert to EPUB",
|
||||
description: "Convert Word, Markdown, HTML, or plain text files to EPUB",
|
||||
category: "documents",
|
||||
icon: "Book",
|
||||
route: "/to-epub",
|
||||
modality: "document",
|
||||
acceptedInputs: [".docx", ".md", ".html", ".txt"],
|
||||
executionHint: "long",
|
||||
},
|
||||
// Data Files
|
||||
{
|
||||
id: "csv-excel",
|
||||
@@ -1393,7 +1495,7 @@ export const TOOLS: Tool[] = [
|
||||
icon: "Table",
|
||||
route: "/csv-excel",
|
||||
modality: "file",
|
||||
acceptedInputs: [".csv", ".xlsx"],
|
||||
acceptedInputs: [".csv", ".tsv", ".xlsx"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
@@ -1404,7 +1506,7 @@ export const TOOLS: Tool[] = [
|
||||
icon: "Braces",
|
||||
route: "/csv-json",
|
||||
modality: "file",
|
||||
acceptedInputs: [".csv", ".json"],
|
||||
acceptedInputs: [".csv", ".tsv", ".json"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
@@ -1426,7 +1528,64 @@ export const TOOLS: Tool[] = [
|
||||
icon: "Split",
|
||||
route: "/split-csv",
|
||||
modality: "file",
|
||||
acceptedInputs: [".csv"],
|
||||
acceptedInputs: [".csv", ".tsv"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "merge-csvs",
|
||||
name: "Merge CSVs",
|
||||
description: "Combine multiple CSV or TSV files with matching columns into one",
|
||||
category: "data",
|
||||
icon: "Combine",
|
||||
route: "/merge-csvs",
|
||||
modality: "file",
|
||||
acceptedInputs: [".csv", ".tsv"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "yaml-json",
|
||||
name: "YAML / JSON",
|
||||
description: "Convert between YAML and JSON, both directions",
|
||||
category: "data",
|
||||
icon: "Braces",
|
||||
route: "/yaml-json",
|
||||
modality: "file",
|
||||
acceptedInputs: [".yaml", ".yml", ".json"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "xml-to-csv",
|
||||
name: "XML to CSV",
|
||||
description: "Extract repeating elements from XML into a CSV table",
|
||||
category: "data",
|
||||
icon: "Grid3x3",
|
||||
route: "/xml-to-csv",
|
||||
modality: "file",
|
||||
acceptedInputs: [".xml"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
// Archives
|
||||
{
|
||||
id: "create-zip",
|
||||
name: "Create ZIP",
|
||||
description: "Bundle multiple files into a single ZIP archive",
|
||||
category: "data",
|
||||
icon: "FolderArchive",
|
||||
route: "/create-zip",
|
||||
modality: "file",
|
||||
acceptedInputs: [],
|
||||
executionHint: "fast",
|
||||
},
|
||||
{
|
||||
id: "extract-zip",
|
||||
name: "Extract ZIP",
|
||||
description:
|
||||
"Safely extract files from a ZIP archive with bomb protection. Single-file archives return the file directly.",
|
||||
category: "data",
|
||||
icon: "FolderOpen",
|
||||
route: "/extract-zip",
|
||||
modality: "file",
|
||||
acceptedInputs: [".zip"],
|
||||
executionHint: "fast",
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user