|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- sexp.lua - new code to handle elisp hyperlinks.
-- This is experimental and loaded by only a few files:
-- (find-THgrep "grep --color -nH -e sexp.lua *.blogme")
-- It uses:
-- (find-angg "LUA/lua50init.lua" "EevIntro")
-- (find-angg "LUA/lua50init.lua" "ELispH")
-- (find-angg "LUA/lua50init.lua" "ELispHF")
-- (find-angg "LUA/lua50init.lua" "SexpSkel")
-- (find-angg "LUA/lua50init.lua" "ELispInfo")
--
-- Test and debug with:
-- (eek "M-h M-k M-h b ;; find-sexptotarget-links")
-- (find-efunction 'find-sexptotarget-links)
-- (find-angg ".emacs" "sexptotarget")
-- (to "tests")
--
-- This is part of blogme3.
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
-- Version: 2019feb28
-- <http://anggtwu.net/blogme3/sexp.lua>
-- <http://anggtwu.net/blogme3/sexp.lua.html>
-- License: GPL.
-- «.find-xxx-intros» (to "find-xxx-intros")
-- «.find-xxxnodes» (to "find-xxxnodes")
-- «.code-c-d-angg» (to "code-c-d-angg")
-- «.STOH» (to "STOH")
-- «.tests» (to "tests")
-- «find-xxx-intros» (to ".find-xxx-intros")
-- See: (find-blogme3 "eevintros.lua" "listofintros")
-- (find-fline "~/eev-intros/README" " (find-eev-intro)")
ee_intro_stems_generator = function ()
local bigstr = ee_readfile "~/eev-intros/README"
local pat = "\n %(find%-([!-~]*)%-intro%)"
return bigstr:gmatch(pat)
end
ee_intro_stems = [[
anchors audiovideo bounded brxxx channels code-c-d debootstrap
defun dot-emacs edit-index eejump eepitch eev eev-exercises
eev-install eev-levels eev-quick elisp emacs emacs-keys escripts
eval git here-links kl-here kla lean4 lexical links-conv links
lua-tutorial multiwindow org pdf-like prepared psne rcirc refining
rstdoc saving-links show2 strange-functions templates
three-main-keys try-sly videos video-links windows-beginner wrap
lisptree show-conses
]]
for _,stem in ipairs(split(ee_intro_stems)) do
local f=format("find-%s-intro", stem)
_EHF[f] = ELispHF.newintro(f)
end
-- «find-xxxnodes» (to ".find-xxxnodes")
-- (find-blogme3 "angglisp.lua" "code_c_m_b_s")
-- (find-es "lua5" "ELispInfo")
-- (find-angg "LUA/lua50init.lua" "ELispInfo")
code_c_m_b = function (c, manual, basedir)
infomanual_basedir[manual] = basedir
local find_cnode = "find-"..c.."node"
_EHF[find_cnode] = ELispHF.newnode(find_cnode, c, manual)
end
code_c_m_b("e", "emacs", "http://www.gnu.org/software/emacs/manual/html_node/emacs/")
code_c_m_b("el", "elisp", "http://www.gnu.org/software/emacs/manual/html_node/elisp/")
code_c_m_b("eli", "eintr", "http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/")
code_c_m_b("efaq", "efaq", "https://www.gnu.org/software/emacs/manual/html_node/efaq/")
code_c_m_b("cl", "cl", "http://www.gnu.org/software/emacs/manual/html_node/cl/")
code_c_m_b("gnus", "gnus", "http://www.gnu.org/software/emacs/manual/html_node/gnus/")
code_c_m_b("message", "message", "http://www.gnu.org/software/emacs/manual/html_node/message/")
code_c_m_b("woman", "woman", "http://www.gnu.org/software/emacs/manual/html_node/woman/")
code_c_m_b("rcirc", "rcirc", "http://www.gnu.org/software/emacs/manual/html_node/rcirc/")
code_c_m_b("org", "org", "http://www.gnu.org/software/emacs/manual/html_node/org/")
code_c_m_b("gst", "gst", "http://www.gnu.org/software/smalltalk/manual/html_node/")
code_c_m_b("gstbase", "gst-base", "http://www.gnu.org/software/smalltalk/manual-base/html_node/")
code_c_m_b("gstlibs", "gst-libs", "http://www.gnu.org/software/smalltalk/manual-libs/html_node/")
code_c_m_b("pclcvs", "pcl-cvs", "http://www.gnu.org/software/emacs/manual/html_node/pcl-cvs/")
code_c_m_b("autotype", "autotype", "http://www.gnu.org/software/emacs/manual/html_node/autotype/")
code_c_m_b("libc", "libc", "http://www.gnu.org/software/libc/manual/html_node/")
code_c_m_b("make", "make", "http://www.gnu.org/software/make/manual/html_node/")
code_c_m_b("grub", "grub", "https://www.gnu.org/software/grub/manual/grub/html_node/")
code_c_m_b("gawk", "gawk", "http://www.gnu.org/software/gawk/manual/html_node/")
code_c_m_b("texi", "texinfo", "http://www.gnu.org/software/texinfo/manual/texinfo/html_node/")
code_c_m_b("gcc", "gcc-4.1", "http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/")
code_c_m_b("coreutils", "coreutils", "http://www.gnu.org/software/coreutils/manual/html_node/")
code_c_m_b("bash", "bash", "http://www.gnu.org/software/bash/manual/html_node/")
code_c_m_b("bash", "bashref", "http://www.gnu.org/software/bash/manual/html_node/")
code_c_m_b("wget", "wget", "http://www.gnu.org/software/wget/manual/html_node/")
code_c_m_b("slime", "slime", "http://common-lisp.net/project/slime/doc/html/")
code_c_m_b("bison", "bison", "http://www.gnu.org/software/bison/manual/html_node/")
code_c_m_b("octave", "octave", "http://www.gnu.org/software/octave/doc/interpreter/")
code_c_m_b("rcirc", "rcirc", "http://www.gnu.org/software/emacs/manual/html_node/rcirc/")
code_c_m_b("binutils", "binutils", "http://sourceware.org/binutils/docs/binutils/")
code_c_m_b("gdb", "gdb", "http://sourceware.org/gdb/download/onlinedocs/gdb/")
code_c_m_b("parted", "parted", "https://www.gnu.org/software/parted/manual/html_node/")
-- «code-c-d-angg» (to ".code-c-d-angg")
-- (find-blogme3 "angglisp.lua" "code_c_d_angg")
code_c_d_angg = function (c, d, suffix)
local find_c = "find-"..c
local find_cfile = "find-"..c.."file"
_EHF[find_c ] = ELispHF.newangg(find_c, d, suffix or ".html")
_EHF[find_cfile] = ELispHF.newangg(find_c, d, ".html")
end
code_c_d_angg("angg", "")
code_c_d_angg("es", "e/", ".e.html")
code_c_d_angg("dednat4", "dednat4/")
code_c_d_angg("dn4", "dednat4/")
code_c_d_angg("dn4ex", "dednat4/examples/")
code_c_d_angg("dn5", "dednat5/")
code_c_d_angg("dn6", "LATEX/dednat6/")
code_c_d_angg("dednat6", "dednat6/")
code_c_d_angg("dednat6lua", "dednat6/dednat6/")
code_c_d_angg("blogme", "blogme/")
code_c_d_angg("blogme3", "blogme3/")
code_c_d_angg("blogme4", "blogme4/")
code_c_d_angg("eev", "eev-current/")
code_c_d_angg("flua", "flua/")
code_c_d_angg("rubyforth", "rubyforth/")
code_c_d_angg("miniforth", "miniforth/")
code_c_d_angg("vtutil", "vtutil/")
code_c_d_angg("vtutil4", "vtutil4/")
code_c_d_angg("RETRO", "RETRO/")
code_c_d_angg("gab", "gab/")
code_c_d_angg("eevvideos", "eev-videos/")
code_c_d_angg("quadr", "quadradinho/")
code_c_d_angg("ydb", "youtube-db/")
code_c_d_angg("fbcache", "fbcache/")
code_c_d_angg("clg", "2019-CLG/")
code_c_d_angg("books", "books/")
-- «STOH» (to ".STOH")
-- Sexp to html, sexp to target, sexp to section name...
def [[ STOH 1 line SexpSkel.fromline(line:gsub("%s+", " ")):tosexphtml() ]]
def [[ STOT 1 line SexpSkel.fromline(line:gsub("%s+", " ")):totarget() ]]
def [[ STOSN 1 line '"'..R(STOT(line), (line:match'"(.*)"'))..'"' ]]
-- «tests» (to ".tests")
--[[
-- (find-angg "LUA/lua50init.lua" "loadblogme3")
-- (find-es "blogme" "interactive")
-- (find-angg ".emacs" "blogme3")
-- (find-blogme3 "angglisp.lua" "code_c_d_angg")
* (eepitch-blogme3)
* (eepitch-kill)
* (eepitch-blogme3)
require "sexp"
for stem in ee_intro_stems_generator() do print(stem) end
= _EHF
= STOH '(find-eev-quick-intro "1. Installing eev")'
= STOH '(find-three-main-keys-intro)'
= STOH 'foo (find-eev-quick-intro "1. Installing eev") '
= STOH '(find-enode "Top") '
= STOT '(find-grubnode "Overview") '
= STOH '(find-blogme3 "sexp.lua") '
= STOH '(find-blogme3 "sexp.lua" "STOH") '
_EHF["code-video"] = ELispHF {f="codevideo"}
= STOH '(code-video "ECvideo" "/foo/bar-86yiRG8YJD0.mp4")'
= STOH '(find-ECvideo "1:23")'
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "sexp.lua"
--]]