The conventional file extension for SYLK spreadsheets is .slk, not .sylk.
Using sylk meant uploaded .slk files would never match the properties entry
and would not receive the SYLK infilter.
Signed-off-by: Radhakrishnan Pachyappan <gingeekrishna@gmail.com>
LibreOffice Writer has no CSV export filter. The shared filter map used
Text for csv in both directions, which made any Writer-category conversion
to csv fail with:
no export filter for <file>.csv found, aborting.
Root cause: getFilters() looked up the same filters map for the infilter and
the outfilter. Text is a valid *input* filter for reading delimiter-
separated files in Writer but is not accepted as an *output* filter for the
.csv extension.
Fix:
- Split into separate inputFilters / outputFilters maps so csv can remain
readable by the text (Writer) category without offering it as a write
target there.
- Remove csv from properties.to.text so the UI/router no longer exposes
the unsupported Writer → CSV path.
- Populate the previously-empty filters.calc with correct LibreOffice Calc
filter names and add spreadsheet formats to properties.from.calc /
properties.to.calc, enabling conversions such as xlsx → csv, csv → xlsx,
ods → xlsx, etc. via the Calc module.
Fixes#561
Signed-off-by: Radhakrishnan Pachyappan <gingeekrishna@gmail.com>
* fix(assimp): pass -f<format> so non-extension targets work
The assimp converter invokes `assimp export <in> <out>` and relies on
assimp's extension-based format inference to pick the output format.
That works for targets whose id happens to match a real file extension
(glb, gltf, obj, stl, ply, etc.) but silently fails for every target
whose assimp id is not a conventional filename extension:
glb2, gltf2, objnomtl, stlb, plyb, fbxa, assbin, assxml, pbrt, assjson
Picking any of those in the UI aborts the job with:
assimp export: no output format specified and I failed to guess it
assimp_cmd's `-f<h>` flag overrides extension inference, and the values
in `properties.to.object` already correspond 1:1 to assimp's format ids
(verified against `assimp listexport`). Passing `-f${convertTo}` makes
every advertised target work without changing anything else.
Reproduction: upload any .stl, convert to glb2. Before: ENOENT on the
nonexistent output file. After: valid binary glTF 2.0.
* fix(assimp): write real file extensions for non-extension format ids
Follow-up to the previous commit. With `-f<format>` now passed to
assimp, every advertised target exports successfully — but seven of
them still produce files with assimp's internal format id as the
extension, which no third-party viewer recognises:
glb2 → .glb2 (really binary glTF 2.0, should be .glb)
gltf2 → .gltf2 (text glTF 2.0, should be .gltf)
objnomtl → .objnomtl (OBJ without .mtl, should be .obj)
stlb → .stlb (binary STL, should be .stl)
plyb → .plyb (binary PLY, should be .ply)
fbxa → .fbxa (ASCII FBX, should be .fbx)
assjson → .assjson (JSON dump, should be .json)
Map these in `normalizeOutputFiletype`, the same helper that already
handles jpeg→jpg, latex→tex, markdown→md. The format id on `convertTo`
is untouched, so `assimp -f<id>` still selects the correct
encoding/variant — only the output filename changes.
assbin, assxml, and pbrt are both the format id and the canonical
extension, so they need no mapping.
* style(assimp): fix prettier formatting