#include "/Demo/ToHtmlToTXTDemo/ToHtml.HC.Z" U8 *FilenameToURL(U8 *filename, I64 line) { filename[StrLen(filename) - 2] = NULL; U8 *htmlext = ""; if (StrMatch(".DD", filename)) htmlext = ".HTML"; return MStrPrint("/Wb%s%s#l%d", filename + 2, htmlext, line); } U8 *LinkCvt(U8 *link_st) { U8 *res = NULL, *filename, *needle; I64 i, num; if (link_st) { i = EdLinkCvt(link_st, &filename, &needle, &num); switch (i) { case LK_FILE_LINE: case LK_PLAIN_LINE: case LK_FILE: res = FilenameToURL(filename, num); break; case LK_DEF: case LK_HELP_INDEX: case LK_DOC: case LK_DOC_ANCHOR: case LK_DOC_FIND: case LK_DOC_LINE: break; case LK_BIBLE_FIND: res = TOSLinkCvt1(link_st); break; default: if (DocFileEd(i, filename, needle, &num, EDF_UNCOLLAPSE | EDF_BAIL)) res = FilenameToURL(filename, num); } } Free(filename); Free(needle); return res; } CDirEntry *start_entry = FilesFind( "/*.HC.Z;*/.HH.Z;*.DD.Z;!/Home/*", FUF_RECURSE | FUF_JUST_FILES ); CDirEntry *entry = start_entry; U8 *html_header = "\n" "\n" "
\n" "\n" "\n" "\n" "\n" "\n"; U8 *body_header = "\n" "\n"; Del("C:/Home/Src", FALSE, TRUE); do { Print("%s", entry->full_name); U8 *new_name = MAlloc(2 *StrLen(entry->full_name)); StrPrint(new_name, "/Home/Src%s", entry->full_name + 2); if (StrMatch(".DD", entry->full_name)) { FileExtRem(new_name); CatPrint(new_name, ".DD.HTML"); } else { new_name[StrLen(new_name) - 2] = NULL; } Print(" -> %s\n", new_name); if (StrMatch(".DD", entry->full_name)) ToHtml( entry->full_name, new_name, html_header, body_header, NULL, NULL, 80, TRUE, &LinkCvt, ); else Copy(entry->full_name, new_name); } while (entry = entry->next); DirTreeDel(start_entry);