--------------------------------------------------------------------- -- This program converts from Tecgraf's WebBook to HTML Help Project Files. -- by Mark Stroetzel Glasberg and Antonio Scuri -- 09 Dec, 2004 --------------------------------------------------------------------- languages_description = { en = "0x0409 English - United States", es = "0x040A Spanish - Standard", fr = "0x040C French - Standard", de = "0x0407 German - Standard", -- pt = "0x0816 Portuguese - Standard", pt = "0x0416 Portuguese - Brazil", it = "0x0410 Italian - Standard" } -- INITIALIZATION --------------------------------------------------- function isinlist(lng, list) local i = 1 local n = #list while i <= n do if list[i] == lng then return 1 end i = i + 1; end return nil end -- BASIC FUNCTIONS -------------------------------------------------- function out(string) file:write(string) end function outln(string) local i = ident + 1 while i>0 do file:write(" ") i = i - 1 end file:write(string.."\n") end -- HHP FILE FUNCTIONS ------------------------------------------------ files = {} function add2files(v) if v then -- only up to "#" local j = string.find(v, "#") if j then f = string.sub(v, 0, j-1) else f = v end files[f] = f end end function writehhpheader() out("[OPTIONS]\n") outln("Binary Index=No") outln("Compatibility=1.0") outln("Compiled file=" .. wb_usr.file_title .. "_" .. lng .. ".chm") outln("Contents file=wb_tree" .. "_" .. lng .. ".hhc") outln("Default topic=" .. lng .. "/" .. wb_usr.tree.link) outln("Display compile notes=Yes") outln("Display compile progress=Yes") outln("Full-text search=Yes") outln("Language="..languages_description[lng]) outln("Title="..wb_usr.messages[lng].title) out("\n") out("[FILES]\n") outln(lng .. "/" .. wb_usr.tree.link) end function writehhpfooter() local tmp = [[ [INFOTYPES] ]] out(tmp) end function writehhpcenter() if (not files) then return end local v = next(files, nil) while v ~= nil do outln(dir..v) v = next(files, v) end end function writehhp() writehhpheader() writehhpcenter() writehhpfooter() end -- HHC FILE FUNCTIONS ------------------------------------------------ function writeheader() out("\n") out("\n") out("\n") out("\n") out("\n") out("\n") out("\n") out("\n") out(" \n") out("\n") out("\n") end function writesubitems(tree, mainlink) if (not tree) then return end local i = 1 local n = #tree while i <= n do writetopic(tree[i], mainlink) i = i + 1 end ident = ident - 1 end -- mainlink is the link of the father -> if no link is specified -- this is the one that is used. function writetopic(t, mainlink) local link local topic_name add2files(mainlink) if t.name == nil then print("ERROR: Title is nil.") return end if (t.name[lng]) then topic_name = t.name[lng] else topic_name = t.name["nl"] end if topic_name == nil then print("ERROR: Title is nil in language [" .. lng .. "].") return end if t.link and t.link ~= "" then link = t.link else link = nil end add2files(link) if t.bookmark then if link == nil and mainlink == nil then print("Error saving bookmark!!!") return end if link then linkB = link .. "#" .. t.bookmark else linkB = mainlink .. "#" .. t.bookmark end else linkB = nil end outln("
  • ") outln("") if linkB then outln("") else if link then outln("") end end if useimage == 1 then if t.folder then if ident == 0 then outln("") else outln("") end else outln("") end end outln("") -- Write folder -- if t.folder then ident = ident + 1 outln("") end end function writetopics(tree) if (not tree) then return end local i = 1; local n = #tree while i <= n do outln("") i = i + 1 end end -- MAIN ------------------------------------------------------------- -- lng -> from the command line dofile("wb_usr.lua") if (not arg[1]) then error("Missing language parameter.") end lng = arg[1] dir = lng.."/" ident = 0 useimage = 1 -- Use images based on given information file = nil print("Writing \"wb_tree" .. "_" .. lng .. ".hhc\" file.") file = io.open("wb_tree" .. "_" .. lng .. ".hhc", "w") writeheader() writetopics(wb_usr.tree.folder) writeend() file:close() if ident ~= 0 then print("Ident not correct!") end print("Writing \"wb" .. "_" .. lng .. ".hhp\" file.") file = io.open("wb" .. "_" .. lng .. ".hhp", "w") writehhp() file:close() print("done.")