Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#!/usr/bin/env lua5.1
-- (find-angg "LUA/lstoindexhtml.lua")
-- (find-blogme3  "lstoindexhtml.lua")
-- (find-angg ".zshrc" "lstoindexhtml_lua_maybe")
-- (find-angg ".zshrc" "lstoindexhtml_lua_dirs")
str=string; strfind=str.find; format=str.format; gsub=str.gsub;
strlen=str.len; strrep=str.rep; strsub=str.sub; tinsert=table.insert

-- lines={}; for line in io.lines() do tinsert(lines, line) end
-- (find-es "lua5" "io.read")

lines = splitlines(io.read("*a"))   -- the output of an "ls -lAF"

main = function (lines, dir)
    local _, __, nonfname = strfind(lines[2], "^(.* )[^ ]*$")
    local dots = strrep(".", strlen(nonfname))
    local myre = "("..dots..")([^ */=@|]*)(.*)"
    local prin = print
    -- local output = {}
    -- if outfile and outfile ~= "" then
    --   prin = function (str) table.insert(output, str.."\n") end
    -- end
    prin "<html>"
    prin "<!-- Generated by http://angg.twu.net/LUA/lstoindexhtml.lua -->"
    prin("<head><title>"..(dir or "").."</title>")
    if fileexists(".favicon.png") then
      prin('<link rel="shortcut icon" href=".favicon.png" />')
    end
    prin("</head>")
    prin "<body>"
    prin "<pre>"
    for i=2,#lines do
      local _, __, l, fname, r = strfind(lines[i], myre)
      prin(format("%s<a href=\"%s\">%s</a>%s", l, fname, fname, r))
    end
    prin "</pre>"
    prin "</body>"
    prin "</html>"
  end

main(lines, ...)

-- (find-zsh0 "cd /tmp/; lstoindexhtml_lua_maybe /tmp/")

--[[
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/TH/L/
for i in $(find .* * -type d | sort); do
  cd ~/TH/L/$i; lstoindexhtml_lua_maybe $i/
done

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "lstoindexhtml.lua"

--]]