Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://anggtwu.net/blogme3/maxima-index-html.lua.html
--   http://anggtwu.net/blogme3/maxima-index-html.lua
--          (find-angg "blogme3/maxima-index-html.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- This file parses the file "maxima-index-html.lisp" and stores the
-- result in the table maxima_index_table. Here is a longer
-- explanation:
--
-- The correct way to htmlize a sexp hyperlink like this one,
--   (find-maximanode "subst")
-- is to make its target point to here,
--   https://maxima.sourceforge.io/docs/manual/maxima_33.html#subst
-- like in the index:
--   https://maxima.sourceforge.io/documentation.html
--   https://maxima.sourceforge.io/docs/manual/maxima_toc.html
--   https://maxima.sourceforge.io/docs/manual/maxima_423.html Appendix A: Index
-- So we need to do conversions like these ones:
--   "subst" ->                                           "maxima_33.html#subst"
--   "subst" -> "https://maxima.sourceforge.io/docs/manual/maxima_33.html#subst"

-- When Maxima generates its html docs it puts the data for those
-- conversions in a file called "maxima-index-html.lisp". See:
--   (find-es "maxima" "maxima-git-5.47.0")
--   http://anggtwu.net/blogme3/maxima-index-html.lisp.html
-- The code in this file parses that file using this grammar,
--   (find-angg "LUA/Lisp4.lua")
-- and puts the result in the table maxima_index_table, that is used by:
--   (find-blogme3 "sandwiches-defs.lua" "find-maximanode")



Path.prependtopath "~/LUA/?.lua"
require "Lisp4"     -- (find-angg "LUA/Lisp4.lua")

maxima_index_parse = function (bigstr)
  local a,b = lisp4_parse(bigstr)
  return b[2][1][2][1]
end
maxima_index_make_table = function (o, verbose)
  local tbl = VTable {}
  for i,abc in ipairs(o) do
    local a,b,c = abc[1].s,abc[2].s,abc[3].s
    if verbose then print(a,b,c) end
    tbl[a] = b.."#"..c
  end
  return tbl
end
maxima_index_parse_all = function ()
  local fname = "~/blogme3/maxima-index-html.lisp"
  maxima_index_lisp   = ee_readfile(fname) .. "\n"
  maxima_index_parsed = maxima_index_parse(maxima_index_lisp)
  maxima_index_table  = maxima_index_make_table(maxima_index_parsed)
end

-- See:  (find-es "maxima" "maxima-git-5.47.0")
--       (find-fline "~/blogme3/maxima-index-html.lisp")
maxima_index_fname = "~/blogme3/maxima-index-html.lisp"
if not maxima_index_table then
  maxima_index_parse_all(maxima_index_fname)
end

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "maxima-index-html.lua"
=   maxima_index_lisp
o = maxima_index_parsed
= o[1]
= o[1][1]
= o[1][1].s
=   maxima_index_table

--]]




-- Local Variables:
-- coding:  utf-8-unix
-- End: