Package: htmltable-cli
htmltable cliCommand line tool to convert lists to portable HTML tables with embedded audios and images.InstallationFrom source (latest)pipinstallgit+https://github.com/FarisHijazi/htmltable-cliFrom PyPi (table)pipinstallhtmltable-cliUsageusage:

A command line tool to generate html tables with embedded images, videos and audio

- Separate columns with `,` or pass all files and group by parent using `--groupy_nthparent 1`
- The easiest way to use it is to put each column in a folder and then pass it using a wildcard `*`

Examples:

    htmltable col1/*.* , col2/*.* , col3/*.* --title "my table" --controls controls preload autoplay loop muted --base64 --index > output.html
    htmltable col*/* --groupy_nthparent 1    --title "my table" --controls controls preload autoplay loop muted --base64 --index > output.html

    [-h] [--title TITLE] [-g GROUPY_NTHPARENT] [-c COLNAMES [COLNAMES ...]] [-b] [-x | -fx]
    [--controls [{controls,preload,autoplay,loop,muted} [{controls,preload,autoplay,loop,muted} ...]]] [-t] [--clamp]
    data [data ...]

positional arguments:
data                  input table data. Format: col1_item1 col1_item2 col1_item3 , col2_item1 col2_item2 col2_item3 ...

optional arguments:
-h, --help            show this help message and exit
--title TITLE         title heading for the table
-g GROUPY_NTHPARENT, --groupy_nthparent GROUPY_NTHPARENT
                        choose columns based on the nth parent, instead of separating using "," delimiter to determine
                        columns.This allows to dynamically specify folders instead of passing folders explicitly with "," in
                        between. Set to -g 1 for the direct parent of the files
-c COLNAMES [COLNAMES ...], --colnames COLNAMES [COLNAMES ...]
                        Provide a list of column names (instead of automatically inferring column names from filepaths).
-b, --base64          Encode all the media to a base64 URL, meaning that the html file is now portable and doesn't depend
                        on the location of the images/audios/videos
-x, --index           add numerical index column
-fx, --filename_index
                        Infer index (rowname) based on row filenames, instead of numerical index. All columns must have
                        identical filenames otherwise an error is raised
--controls [{controls,preload,autoplay,loop,muted} [{controls,preload,autoplay,loop,muted} ...]]
                        HTML video and audio controls
-t, --transpose       swap columns and rows
--clamp               clamp number of rows to the shortest row, ensures the table is symmetric.Assuming filestructure:.
|-- col1
|   |-- audio1.wav
|   |-- ...
|   |-- image.png
|   `-- video.mp4
|-- col2
|   |-- audio1.wav
|   |-- ...
|   |-- image.png
|   `-- video.mp4
`-- col3
    |-- audio1.wav
    |-- ...
    |-- image.png
    `-- video.mp4ExamplesMinimal examplehtmltablecol1/audio1.wav,col2/audio1.wav,col3/audio1.wav>output.htmlor for dynamically choosing folders using wildcards*.
This will pass all files, and then will group them by parent folder, in this case1means the first parent folder.htmltablecol*/*--groupy_nthparent1>output.htmlMore involved examplehtmltablecol1/*.*,\col2/*.*,\col3/*.*\--controlscontrolspreloadautoplayloopmuted\--base64--index>output.html(you don't actually have to organize your arguments in a new lines :p)Explanation--base64will encode all the media to a base64 URL, meaning that the html file is now portable and doesn't depend on the location of the images/audios/videoscol1/*.*passes all files incol1/directory--controls controls preload autoplay loop mutedset default video and audio attributesColumn and row headersColumn headers are inferred automatically, to manually specify column names, use-c/--colnamesRow headers options:Can be left blankIndexed numerically using-x/--indexUse the filenames, if all files have the same name across columns, using-fx/--filename_index.Example:col1/audio1.wav,col2/audio2.wav.Known issuesOutputting files is only supported in the.dir. i.ehtmltable .... > some/other/path/output.htmlhas issues when not using--base64setting--controls autoplaywon't work, you need to addmutedas wellDevelopmentBefore committing, run the test script and make sure the output.htmlfiles are as expectedshtest.sh;lstestoutput*.html|xargs-I{}xdg-open{}# for linux debianshtest.sh;lstestoutput*.html|xargs-I{}start{}# for windowsFor building a release and uploading it to PyPi, make andgit commityour changes, then runshbuild.sh