82f2f54a85ec37827f6dbf2a1b4a863db5260288 kent Sun Jun 11 23:52:46 2017 -0700 A quick table maker. diff --git src/tabFile/tabToHtml/tabToHtml.c src/tabFile/tabToHtml/tabToHtml.c new file mode 100644 index 0000000..552fff9 --- /dev/null +++ src/tabFile/tabToHtml/tabToHtml.c @@ -0,0 +1,108 @@ +/* tabToHtml - Convert tab-separated-file to an HTML file that is a table and not much else.. */ +#include "common.h" +#include "linefile.h" +#include "hash.h" +#include "options.h" +#include "fieldedTable.h" + +boolean gEmbed; // If true we embed in another page + +void usage() +/* Explain usage and exit. */ +{ +errAbort( + "tabToHtml - Convert tab-separated-file to an HTML file that is a table and not much else.\n" + "usage:\n" + " tabToHtml XXX\n" + "options:\n" + " -embed - don't write beginning and end of page, just controls and tree.\n" + " useful for making html to be embedded in another page.\n" + ); +} + +/* Command line validation table. */ +static struct optionSpec options[] = { + {"embed", OPTION_BOOLEAN}, + {NULL, 0}, +}; + +void writeHtml(struct fieldedTable *table, FILE *f) +/* Write HTML version of table */ +{ +if (!gEmbed) + { + fputs( + "\n" + "\n" + "\n" + " \n" + , f); + fprintf(f, " table %s\n", table->name); + fputs( + "\n" + "\n" + , f); + fprintf(f, + ""); + fprintf(f, "

table from %s

\n", table->name); + } + +/* Print table tag and header row. */ +fprintf(f, "\n"); +fprintf(f, ""); +int i; +for (i=0; ifieldCount; ++i) + { + char *field = table->fields[i]; + fprintf(f, " ", field); + } +fprintf(f, "\n"); + +/* Print data rows. */ +struct fieldedRow *fr; +for (fr = table->rowList; fr != NULL; fr = fr->next) + { + char **row = fr->row; + fprintf(f, ""); + for (i=0; ifieldCount; ++i) + fprintf(f, " ", row[i]); + fprintf(f, "\n"); + } + +/* Close up table */ +fprintf(f, "
%s
%s
\n"); + +/* Unless embedded close up web page too. */ +if (!gEmbed) + { + fputs( + "\n" + "\n" + "\n" + , f); + } +} + +void tabToHtml(char *inTsv, char *outHtml) +/* tabToHtml - Convert tab-separated-file to an HTML file that is a table and not much else.. */ +{ +struct fieldedTable *table = fieldedTableFromTabFile(inTsv, inTsv, NULL, 0); +FILE *f = mustOpen(outHtml, "w"); +writeHtml(table, f); +carefulClose(&f); +} + +int main(int argc, char *argv[]) +/* Process command line. */ +{ +optionInit(&argc, argv, options); +if (argc != 3) + usage(); +gEmbed = optionExists("embed"); +tabToHtml(argv[1], argv[2]); +return 0; +}