|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; -*- lexical-binding: nil; -*-
;; This file:
;; http://anggtwu.net/.emacs.templates
;; http://anggtwu.net/.emacs.templates.html
;; file:///home/edrx/TH/L/.emacs.templates.html
;; (find-angg ".emacs.templates")
;;
;; (load (buffer-file-name))
;; (find-angg ".emacs")
;; (find-angg ".emacs" ".emacs.papers")
;; (find-angg ".emacs" ".emacs.templates")
;; «.ee-template» (to "ee-template")
;; «.ee-template-expand» (to "ee-template-expand")
;; «.ee-match-data-replace» (to "ee-match-data-replace")
;; «.find-edrx-update-links» (to "find-edrx-update-links")
;; «.find-qtdemo-links» (to "find-qtdemo-links")
;; «.find-dn4tex-links» (to "find-dn4tex-links")
;; «.find-beamer-links» (to "find-beamer-links")
;; «.s2008a» (to "s2008a")
;; «.find-blogme3-links» (to "find-blogme3-links")
;; «.find-blogme3-curso-links» (to "find-blogme3-curso-links")
;; «.find-curso-links» (to "find-curso-links")
;; «.find-curso-makefile-links» (to "find-curso-makefile-links")
;; «.find-quadro-links» (to "find-quadro-links")
;; «.find-baudio-links» (to "find-baudio-links")
;; «.bsec» (to "bsec")
;; «.ee-bsec» (to "ee-bsec")
;; «.ee-mkdl» (to "ee-mkdl")
;; «.find-mkdl» (to "find-mkdl")
;; «.ee-ps2pdf-script» (to "ee-ps2pdf-script")
;; «.class» (to "class")
;; «.bname» (to "bname")
;; «.find-scp-links» (to "find-scp-links")
;; «.find-gigapedia-links» (to "find-gigapedia-links")
;; «.find-dn5-file-links» (to "find-dn5-file-links")
;; «.find-blogme4-file-links» (to "find-blogme4-file-links")
;; «.find-dhmake-links» (to "find-dhmake-links")
;; «.find-dhmake-old-links» (to "find-dhmake-old-links")
;; «.find-escript-links» (to "find-escript-links")
;; «.find-thttpd-links» (to "find-thttpd-links")
;; «.find-gitclone-links» (to "find-gitclone-links")
;; «.find-newhost-links» (to "find-newhost-links")
;; «.find-newhost-links-old» (to "find-newhost-links-old")
;; «.find-prince-links» (to "find-prince-links")
;; «.find-youtubedl-links-old» (to "find-youtubedl-links-old")
;; «.find-eepitch-def-links» (to "find-eepitch-def-links")
;; «.find-wpa-links» (to "find-wpa-links")
;; «.find-intro-links» (to "find-intro-links")
;; «.diagskel» (to "diagskel")
;; «.ee-latex-header» (to "ee-latex-header")
;; «.find-tail-call-links» (to "find-tail-call-links")
;; «.find-pdflikedef-links» (to "find-pdflikedef-links")
;; «.find-eev-video-record-links» (to "find-eev-video-record-links")
;; «.find-eev-create-tar-links» (to "find-eev-create-tar-links")
;; «.find-screencast-links» (to "find-screencast-links")
;; «.find-angg-upload-links» (to "find-angg-upload-links")
;; «.find-blogme-upload-links» (to "find-blogme-upload-links")
;; «.find-a2html-upload-links» (to "find-a2html-upload-links")
;; «.find-escript-upload-links» (to "find-escript-upload-links")
;; «.find-latex-upload-links» (to "find-latex-upload-links")
;; «.find-book-links» (to "find-book-links")
;; «.find-lua-links» (to "find-lua-links")
;; «.find-scast-links» (to "find-scast-links")
;; «.find-python-links» (to "find-python-links")
;; «.find-fbc-links» (to "find-fbc-links")
;; «.find-lualatex-links» (to "find-lualatex-links")
;; «.find-dlualatex-links» (to "find-dlualatex-links")
;; «.find-br-links» (to "find-br-links")
;; «.find-pastebin-links» (to "find-pastebin-links")
;; «.find-texlive-links» (to "find-texlive-links")
;; «.find-matplotlib-links» (to "find-matplotlib-links")
;; «.find-C-links» (to "find-C-links")
;; «.find-luarocks-links» (to "find-luarocks-links")
;; «.find-luarocks-src-links» (to "find-luarocks-src-links")
;; «.find-math-b-links» (to "find-math-b-links")
;; «.find-defcsprefix-links» (to "find-defcsprefix-links")
;; «.find-debian-version-links» (to "find-debian-version-links")
;; «.find-sound-debug-links» (to "find-sound-debug-links")
;; «.find-bradytdd-links» (to "find-bradytdd-links")
;; «.find-dednat4-convert-links» (to "find-dednat4-convert-links")
;; «.find-psne-article-links» (to "find-psne-article-links")
;; «.find-psne-arxiv-links» (to "find-psne-arxiv-links")
;; «.find-book-grep-links» (to "find-book-grep-links")
;; «.find-my-this-file-links» (to "find-my-this-file-links")
;; «.find-ebook-convert-links» (to "find-ebook-convert-links")
;; «.find-lilypond-links» (to "find-lilypond-links")
;; «.find-latexgimp-links» (to "find-latexgimp-links")
;; «.find-latexinkscape-links» (to "find-latexinkscape-links")
;; «.find-latexscan-links» (to "find-latexscan-links")
;; «.find-C2-aula-links» (to "find-C2-aula-links")
;; «.find-C3-aula-links» (to "find-C3-aula-links")
;; «.ee-template0-file» (to "ee-template0-file")
;; «.find-CN-aula-links» (to "find-CN-aula-links")
;; «.find-MM-aula-links» (to "find-MM-aula-links")
;; «.find-MM-aula-2023-2-links» (to "find-MM-aula-2023-2-links")
;; «.find-MM-tudo-links» (to "find-MM-tudo-links")
;; «.find-ssr-links» (to "find-ssr-links")
;; «.find-obs-links» (to "find-obs-links")
;; «.find-emacs-test-links» (to "find-emacs-test-links")
;; «.find-vimeodl-links» (to "find-vimeodl-links")
;; «.find-repl-lualatex-links» (to "find-repl-lualatex-links")
;; «.find-classroom-trab-links» (to "find-classroom-trab-links")
;; «.find-emacsdevel-links» (to "find-emacsdevel-links")
;; «.find-helpgnuemacs-links» (to "find-helpgnuemacs-links")
;; «.find-emacsorgmode-links» (to "find-emacsorgmode-links")
;; «.find-vscan-links» (to "find-vscan-links")
;; «.find-LATEXpdf-links» (to "find-LATEXpdf-links")
;; «.find-pdfpages-links» (to "find-pdfpages-links")
;; «.find-pdfpages2-links» (to "find-pdfpages2-links")
;; «.find-sshot-links» (to "find-sshot-links")
;; «.find-eevvideopage-links» (to "find-eevvideopage-links")
;; «.find-eevvideopage-linkss» (to "find-eevvideopage-linkss")
;; «.eev-videos-data» (to "eev-videos-data")
;; «.code-youtube» (to "code-youtube")
;; «.find-fossil-update-srf-links» (to "find-fossil-update-srf-links")
;; «.find-code-xxx-links» (to "find-code-xxx-links")
;; «.code-eec-LATEX» (to "code-eec-LATEX")
;; «.code-eec-dir» (to "code-eec-dir")
;; «.find-cp-angg-links» (to "find-cp-angg-links")
;; «.find-eevshortvideo-links» (to "find-eevshortvideo-links")
;; «.find-telegram-save-log-links» (to "find-telegram-save-log-links")
;; «.find-build-for-arxiv-links» (to "find-build-for-arxiv-links")
;; «.find-mygitrepo-links» (to "find-mygitrepo-links")
;; «.find-rcirc-quick-links» (to "find-rcirc-quick-links")
;; «.find-anggwget-links» (to "find-anggwget-links")
;; «.find-find-angg-links» (to "find-find-angg-links")
;; «.find-find-es-links» (to "find-find-es-links")
;; «.find-maclanemoerdijk-links» (to "find-maclanemoerdijk-links")
;; «.find-cwm-links» (to "find-cwm-links")
;; «.find-emacs28-bisect-by-hand-links» (to "find-emacs28-bisect-by-hand-links")
;; «.find-agda-links» (to "find-agda-links")
;; «.find-agdafile-links» (to "find-agdafile-links")
;; «.find-emodeline-links» (to "find-emodeline-links")
;; «.find-fvwmdoc-links» (to "find-fvwmdoc-links")
;; «.find-agdalatex-links» (to "find-agdalatex-links")
;; «.find-fsbot-links» (to "find-fsbot-links")
;; «.find-mvideo-links» (to "find-mvideo-links")
;; «.find-princeurl-links» (to "find-princeurl-links")
;; «.find-luademo-links» (to "find-luademo-links")
;; «.find-emlua-links» (to "find-emlua-links")
;; «.find-pict2elua-links» (to "find-pict2elua-links")
;; «.find-maxima-links» (to "find-maxima-links")
;; «.find-pip3-links» (to "find-pip3-links")
;; «.find-yttranscript-links» (to "find-yttranscript-links")
;; «.find-maximaindex-links» (to "find-maximaindex-links")
;; «.find-maximamsg-links» (to "find-maximamsg-links")
;; «.find-maximamsg» (to "find-maximamsg")
;; «.find-Maxima2-links» (to "find-Maxima2-links")
;; «.find-qdraw-links» (to "find-qdraw-links")
;; «.find-stream-links» (to "find-stream-links")
;; «.code-etv» (to "code-etv")
;; «.find-cabal-links» (to "find-cabal-links")
;; «.find-cabal-unpack-links» (to "find-cabal-unpack-links")
;; «.find-cabal-unpack» (to "find-cabal-unpack")
;; «.find-cabos-links» (to "find-cabos-links")
;; «.find-elinks-haskell» (to "find-elinks-haskell")
;; «.find-ghc-links» (to "find-ghc-links")
;; «.find-opam-links» (to "find-opam-links")
;; «.find-tikz-links» (to "find-tikz-links")
;; «.find-tikzsearch-links» (to "find-tikzsearch-links")
;; «.find-C2C3git-links» (to "find-C2C3git-links")
;; «.find-MMMMgit-links» (to "find-MMMMgit-links")
;; «.find-paps-links» (to "find-paps-links")
;; «.find-sandwiches-def-links» (to "find-sandwiches-def-links")
;; «.find-untgz-links» (to "find-untgz-links")
;; «.find-sandwichsexp-links» (to "find-sandwichsexp-links")
;; «.find-blogme3-rstdoc-links» (to "find-blogme3-rstdoc-links")
;; «.find-eepitch-select-shell-links» (to "find-eepitch-select-shell-links")
;; «.find-movebigfiles-links» (to "find-movebigfiles-links")
;; «.find-jpgstopdf-links» (to "find-jpgstopdf-links")
;;
;; «.find-curso2023-links» (to "find-curso2023-links")
;; «.find-semestre-links» (to "find-semestre-links")
;; «.find-semestre-MM-links» (to "find-semestre-MM-links")
;; «.find-semestre-emacs-links» (to "find-semestre-emacs-links")
;; «.find-semestre-MM-quadros-links» (to "find-semestre-MM-quadros-links")
;;
;; «.find-mkdir-links» (to "find-mkdir-links")
;; «.find-wgetrecursive-links» (to "find-wgetrecursive-links")
;; «.find-ajuda-email-links» (to "find-ajuda-email-links")
;; «.find-ajuda-jpgs-links» (to "find-ajuda-jpgs-links")
;; «.find-engrave-faces-links» (to "find-engrave-faces-links")
;; «.find-planodecurso-links» (to "find-planodecurso-links")
;; «.find-mtp-links» (to "find-mtp-links")
;; «.find-copy-quadros-links» (to "find-copy-quadros-links")
;; «.find-gmail-links» (to "find-gmail-links")
;; «.find-class-links» (to "find-class-links")
;; «.find-expands-links» (to "find-expands-links")
;; «.code-etv2» (to "code-etv2")
;; «.find-editeevsubtitles-links» (to "find-editeevsubtitles-links")
;; «.find-blogme3-legendas-links» (to "find-blogme3-legendas-links")
;; «.find-blogme3-st-up-links» (to "find-blogme3-st-up-links")
;; «.find-cp-LUA-links» (to "find-cp-LUA-links")
;; «.find-Deps1-links» (to "find-Deps1-links")
;; «.find-show2-links» (to "find-show2-links")
;; «.show2» (to "show2")
;; «.find-godotref-links» (to "find-godotref-links")
;; «.find-defhydra-links» (to "find-defhydra-links")
;; «.find-rsynccamera-links» (to "find-rsynccamera-links")
;; «.find-eev-new-el-file-links» (to "find-eev-new-el-file-links")
;; «.find-tikz2-links» (to "find-tikz2-links")
;; «.find-screenkey-links» (to "find-screenkey-links")
;; «.find-tikzsearch2-links» (to "find-tikzsearch2-links")
;; «.find-luaso-links» (to "find-luaso-links")
;; «.find-let*-macro-links» (to "find-let*-macro-links")
;; «.find-luawget-links» (to "find-luawget-links")
;; «.eewrap-require» (to "eewrap-require")
;; «.find-termux-links» (to "find-termux-links")
;; «.tm-expand» (to "tm-expand")
;; «.tm-setenv» (to "tm-setenv")
;; «.find-npm-links» (to "find-npm-links")
;; «.find-my-mode-links» (to "find-my-mode-links")
;; «.find-show2-use-links» (to "find-show2-use-links")
;; «.find-etv-links» (to "find-etv-links")
;; «.find-luatree-links» (to "find-luatree-links")
;; «.find-lean-links» (to "find-lean-links")
;; «.find-twitter-links» (to "find-twitter-links")
;; «.find-pdfanim-links» (to "find-pdfanim-links")
;; «.find-qrencode-links» (to "find-qrencode-links")
;; «.find-leanrstdoc-links» (to "find-leanrstdoc-links")
;; «.find-leanhtml-links» (to "find-leanhtml-links")
;; «.find-pyghtml-links» (to "find-pyghtml-links")
;; «.find-leanbook-links» (to "find-leanbook-links")
;; «.find-leanquestion-links» (to "find-leanquestion-links")
;; «.find-wrap-links» (to "find-wrap-links")
;; «.find-machinectl-tar-links» (to "find-machinectl-tar-links")
;; «.find-lakefile-links» (to "find-lakefile-links")
;; «.find-leanwgetr-links» (to "find-leanwgetr-links")
;; «.find-subtitles3-links» (to "find-subtitles3-links")
;; «.kla-tex» (to "kla-tex")
;; «.find-instagram-links» (to "find-instagram-links")
;; «.find-htmlpdf-links» (to "find-htmlpdf-links")
;; «.find-sbcl-links» (to "find-sbcl-links")
;; «.find-dednat7debug-links» (to "find-dednat7debug-links")
;; «.eewrap-maximamsg» (to "eewrap-maximamsg")
;; «.find-tryit-links» (to "find-tryit-links")
;; «.ee-tryit-1» (to "ee-tryit-1")
;; «.find-ytvideoinfo-links» (to "find-ytvideoinfo-links")
;; «.find-guile-links» (to "find-guile-links")
;; «.find-racket-links» (to "find-racket-links")
;; «.find-lua2c-links» (to "find-lua2c-links")
;; «.find-githubio-links» (to "find-githubio-links")
;; «.find-mastodon-links» (to "find-mastodon-links")
;; «.find-google-links» (to "find-google-links")
;; «.find-princetelegram-links» (to "find-princetelegram-links")
;; «.find-cp-PAD-links» (to "find-cp-PAD-links")
;; «.find-htmlize-email-links» (to "find-htmlize-email-links")
;; «.find-kitten-links» (to "find-kitten-links")
;;
;; «.find-ammmonthly-links» (to "find-ammmonthly-links")
;; «.find-deime-links» (to "find-deime-links")
;; «.find-esm-links» (to "find-esm-links")
;; «.find-flm-links» (to "find-flm-links")
;; «.find-ijrume-links» (to "find-ijrume-links")
;; «.find-ijsme-links» (to "find-ijsme-links")
;; «.find-iwc-links» (to "find-iwc-links")
;; «.find-jfdl-links» (to "find-jfdl-links")
;; «.find-jrme-links» (to "find-jrme-links")
;; «.find-loguniv-links» (to "find-loguniv-links")
;; «.find-mteacher-links» (to "find-mteacher-links")
;; «.find-mtl-links» (to "find-mtl-links")
;; «.find-sciedu-links» (to "find-sciedu-links")
;; «.find-ttrends-links» (to "find-ttrends-links")
;; «.find-tugboat-links» (to "find-tugboat-links")
;; «.find-zdm-links» (to "find-zdm-links")
;; «.find-mearticle-links» (to "find-mearticle-links")
;; «.find-annasarch-links» (to "find-annasarch-links")
;;
;; «.find-cpandwget-links» (to "find-cpandwget-links")
;; «.find-klacw-links» (to "find-klacw-links")
;; «.find-subs-links» (to "find-subs-links")
;; «ee-template» (to ".ee-template")
;; «ee-template-expand» (to ".ee-template-expand")
;; (find-efunction 'replace-regexp-in-string)
;; (find-elnode "Index" "* replace-regexp-in-string:")
;; (find-elnode "Search and Replace")
;; (find-elnode "Association Lists")
;; (cadr (assoc "b" '(("a" "AA") ("b" "CC") ("c" "CC"))))
;; (find-efunction 'find-psne-links)
;; Moved to:
;; (find-eev "eev-insert.el")
;; (find-eev "eev-insert.el" "ee-template")
' (defun ee-template (pairs template)
(let ((f (lambda (match)
(or (cadr (assoc (match-string 1 match) pairs))
match))))
(replace-regexp-in-string "{\\([^{}]+\\)}" f template 'fixedcase)))
;; Two demos:
' (ee-template
'(("a" "AA") ("b" "CC") ("c" "CC"))
"foo{a}bar{bla}poo{b}bletch")
' (ee-template
'(("http" "https") ("a/b/" "foo/bar/") ("c" "index.html"))
"* (eepitch-shell)
mkdir -p $S/{http}/{a/b/}
cd $S/{http}/{a/b/}
wget '{http}://{a/b/}{c}'
echo '{http}://{a/b/}{c}' >> ~/.psne.log")
;; «ee-match-data-replace» (to ".ee-match-data-replace")
;; (find-efunction 'replace-string)
;; (find-efunction 'replace-regexp-in-string)
;; (find-elnode "Search and Replace" "replace-regexp-in-string")
;; (find-elnode "Entire Match Data")
;; (find-elnode "Saving Match Data")
;; (find-elnode "Replacing Match")
;; (find-efunction 'set-match-data)
;; (find-efunction 'match-data)
;;
(defun ee-match-data-pairs (start strings)
(if strings
(let* ((len (length (car strings)))
(end (+ start len)))
`(,start ,end . ,(ee-match-data-pairs end (cdr strings))))))
(defun ee-match-data-replace (strings replacement)
(save-match-data
(let* ((subj (apply 'concat strings))
(pairs (ee-match-data-pairs 0 strings)))
(set-match-data `(0 ,(length subj) . ,pairs))
(replace-match replacement 'fixedcase nil subj))))
;; Tests:
' (progn
(string-match "<\\([a-z]+\\)_\\([a-z]+\\)>" "a<bc_def>g" 0)
(match-data))
;; --> (1 9 2 4 5 8)
' (ee-match-data-pairs 0 '("bc" "def"))
;; --> (0 2 2 5)
' (ee-match-data-replace '("bc" "def") "<\\1_\\2>")
;; --> "<bc_def>"
;; «find-edrx-update-links» (to ".find-edrx-update-links")
;; Skel: (find-find-links-links-new "edrx-update" "" "")
;; Test: (find-edrx-update-links)
;;
(defun find-edrx-update-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for edrx-update."
(interactive)
(apply
'find-elinks
`((find-edrx-update-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-edrx-update-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd
laf edrx.tgz edrx-old.tgz
mv -v edrx.tgz edrx-old.tgz
wget http://anggtwu.net/edrx.tgz
laf edrx.tgz edrx-old.tgz
tar -xvzf edrx.tgz
")
)
pos-spec-list))
;; «find-qtdemo-links» (to ".find-qtdemo-links")
;; (find-qtdemo-links)
(defun find-qtdemo-links (&optional name &rest rest)
(interactive)
(setq name (or name "{qtdemo}"))
(find-elinks
`((find-qtdemo-links ,name ,@rest)
(find-angg ".emacs.templates" "find-qtdemo-links")
(find-angg ".emacs" "qt")
(find-qtprogrammingw3m "toc.html")
(find-qt4docfile "")
(find-es "qt")
""
,(ee-template
`(("qtdemo" ,name))
"#*
rm -Rv /tmp/{qtdemo}/
mkdir /tmp/{qtdemo}/
cd /tmp/{qtdemo}/
cat > {qtdemo}.pro <<'%%%'
TEMPLATE = app
CONFIG += qt warn_on
HEADERS =
SOURCES = main.cpp
TARGET = {qtdemo}
QTDIR_build:REQUIRES=\"contains(QT_CONFIG, small-config)\"
%%%
cat > main.cpp <<'%%%'
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton hello(\"Hello world!\");
hello.resize(100, 30);
hello.show();
return app.exec();
}
%%%
qmake-qt4 -project
qmake-qt4 {qtdemo}.pro
make CXX=\"gcc -g\" |& tee om
#*"))))
;; «find-dn4tex-links» (to ".find-dn4tex-links")
;; (find-angg ".emacs" "find-dn4tex-links")
;; (define-key eev-mode-map "\M-h\M-u" 'find-dn4tex-links)
;; Test:
;; (find-dn4tex-links)
;;
(defun find-dn4tex-links (&optional stem &rest rest)
"Visit a temporary buffer containing hyperlinks for dn4tex."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
(find-dn4tex-links ,stem ,@rest)
;; ""
,(ee-template0 "\
# (kill-new \" LATEX/{stem}.tex\\n\")
# (find-blogme3file \"anggmake.lua\" \"LATEX/\")
# (wrobak 2 ' (find-angg \"LATEX/{stem}.tex\"))
% (find-angg \"LATEX/{stem}.tex\")
% (find-dn4ex \"edrx08.sty\")
% (find-angg \".emacs.templates\" \"s2008a\")
% (defun c () (interactive) (find-zsh \"cd ~/LATEX/ && ~/dednat4/dednat41 {stem}.tex && latex {stem}.tex\"))
% (defun c () (interactive) (find-zsh \"cd ~/LATEX/ && ~/dednat4/dednat41 {stem}.tex && pdflatex {stem}.tex\"))
% (eev \"cd ~/LATEX/ && Scp {stem}.{<}dvi,pdf{>} edrx@anggtwu.net:slow_html/LATEX/\")
% (defun d () (interactive) (find-dvipage \"~/LATEX/{stem}.dvi\"))
% (find-dvipage \"~/LATEX/{stem}.dvi\")
% (find-pspage \"~/LATEX/{stem}.ps\")
% (find-pspage \"~/LATEX/{stem}.pdf\")
% (find-xpdfpage \"~/LATEX/{stem}.pdf\")
% (find-zsh0 \"cd ~/LATEX/ && dvipdf {stem}.dvi {stem}.pdf\")
% (find-zsh0 \"cd ~/LATEX/ && dvips -D 300 -o {stem}.ps {stem}.dvi\")
% (find-zsh0 \"cd ~/LATEX/ && dvips -D 600 -P pk -o {stem}.ps {stem}.dvi && ps2pdf {stem}.ps {stem}.pdf\")
% (find-zsh0 \"cd ~/LATEX/ && dvips -D 300 -o tmp.ps tmp.dvi\")
% (find-pspage \"~/LATEX/tmp.ps\")
% (ee-cp \"~/LATEX/{stem}.pdf\" (ee-twupfile \"LATEX/{stem}.pdf\") 'over)
% (ee-cp \"~/LATEX/{stem}.pdf\" (ee-twusfile \"LATEX/{stem}.pdf\") 'over)
% (find-twusfile \"LATEX/\" \"{stem}\")
% http://anggtwu.net/LATEX/{stem}.pdf")
;;
"\\documentclass[oneside]{book}
\\usepackage[latin1]{inputenc}
\\usepackage{edrx08} % (find-dn4ex \"edrx08.sty\")
%L process \"edrx08.sty\" -- (find-dn4ex \"edrx08.sty\")
\\input edrxheadfoot.tex % (find-dn4ex \"edrxheadfoot.tex\")
\\begin{document}\n
\\input {stem}.dnt\n
%*
% (eedn4-51-bounded)\n
Index of the slides:
\\msk
% To update the list of slides uncomment this line:
%\\makelos{tmp.los}
% then rerun LaTeX on this file, and insert the contents of \"tmp.los\"
% below, by hand (i.e., with \"insert-file\"):
% (find-fline \"tmp.los\")
% (insert-file \"tmp.los\")\n
%*\n
\\end{document}\n
% L\157cal Variables:
% coding: raw-text-unix
% ee-anchor-format: \"«%s»\"
% End:\n"
) rest))
;; «find-beamer-links» (to ".find-beamer-links")
;; (find-find-links-links "{k}" "beamer" "stem")
;; A test: (find-beamer-links ___)
(defun find-beamer-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(let* ((bigstr0 (ee-read-file "~/LATEX/beamer-template.tex"))
(bigstr1 (replace-regexp-in-string "BSTEM" stem bigstr0 'fixedcase)))
(apply 'find-elinks
`((find-beamer-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-beamer-links)
""
,bigstr1
)
pos-spec-list)))
;; Test: (find-beamer-links "2099-foo")
;; «s2008a» (to ".s2008a")
;; (find-angg ".emacs.templates" "s2008a")
;; Used to create section headers for some LaTeX files.
;; (find-LATEX "2008comprcat.tex")
;; (defalias 's 's2008a)
;; Example:
' (eesteps '(
(find-estring (format "%% %S\n" '(s2008a "Slide: foo bar" "foo-bar")))
"M-e"))
(defun ee-delete-and-extract-this-line (&optional adjust)
(ee-no-trailing-nl
(ee-no-properties
(ee-delete-and-extract-line adjust))))
(defun mysection (sectioncommand spaces title tag)
(insert (ee-template
`(("_section" ,sectioncommand)
(" " ,spaces)
("title" ,title)
("tag" ,tag)
("line" ,(ee-delete-and-extract-this-line))) "\
% { }«.{tag}» (to \"{tag}\")
% --------------------
% «{tag}» (to \".{tag}\")
{line}
{_section} {{title}} {{tag}}
")))
(defun slide (title tag) (mysection "\\\\myslide" "" title tag))
(defun chap (title tag) (mysection "\\\\mychapter" "" title tag))
(defun sec (title tag) (mysection "\\\\mysection" " " title tag))
(defun subsec (title tag) (mysection "\\\\mysubsection" " " title tag))
;; (mysection "\\\\section" " " "Foo Bar" "foo-bar")
;; (chap "Foo bar" "foo-bar")
(defalias 's2008a 'sec)
(defalias 's 'slide)
(defalias 'sec2008a 'sec)
(defalias 'chap2008a 'chap)
;; «find-blogme3-links» (to ".find-blogme3-links")
;; Skel: (find-find-links-links-new "blogme3" "stem" "")
;; Test: (find-blogme3-links)
;; See: (find-efunction 'find-find-links-links)
;; (find-efunction 'find-dn4tex-links)
;; (find-efunction 'blogme3-footer)
;; (find-efunction 'blogme3-lisp)
;; (find-find-links-links "blogme3")
;;
(defun find-blogme3-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for blogme3."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
(find-blogme3-links ,stem ,@pos-spec-list)
(find-blogme3-utf8-links ,stem ,@pos-spec-list)
(find-efunction 'find-blogme3-links)
(find-efunction 'find-blogme3-utf8-links)
(find-blogme3-curso-links)
(find-blogme3file "blogme3.el")
(find-blogme3file "")
""
(kill-new ,stem)
(find-blogme3 "anggmake.lua" "blogmestems")
(find-TH ,stem)
(ee-copy-rest 1 '(find-TH ,stem))
;;
,(ee-template0 "
\[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[#
\(defun c () (interactive) (find-blogme3-sh0-if \"{stem}\"))
\(defun u () (interactive) (find-blogme-upload-links \"{stem}\"))
;; http://anggtwu.net/{stem}.html
;; file:///home/edrx/TH/L/{stem}.html
#]
\[lua:
require \"defs-2022\" -- (find-blogme3 \"defs-2022.lua\")
--load_caepro5() -- (find-blogme3 \"defs-2022.lua\" \"load_caepro5\")
short_:add [[
]]
]
\[SETHEADSTYLE [LUCIDA]]
\[htmlize8 [J (Title)]\n
]
\[#
# Local Variables:
# coding: utf-8-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]"))
pos-spec-list))
(defun find-blogme3-links (&optional stem &rest rest)
"Visit a temporary buffer containing hyperlinks for blogme3."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
(find-blogme3-links ,stem ,@rest)
(find-efunction 'find-blogme3-links)
(find-blogme3-curso-links)
(find-blogme3file "blogme3.el")
(find-blogme3file "")
""
(kill-new ,stem)
(find-blogme3 "anggmake.lua" "blogmestems")
(find-TH ,stem)
(ee-copy-rest 1 '(find-TH ,stem))
;; (wrobak 2 ' (find-TH ,stem))
;;
,(ee-template0 "
\[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[#
\(defun c () (interactive) (find-blogme3-sh0-if \"{stem}\"))
\(defun u () (interactive) (find-blogme-upload-links \"{stem}\"))
;; http://anggtwu.net/{stem}.html
;; file:///home/edrx/TH/L/{stem}.html
#]
\[lua:
require \"defs-2022\" -- (find-blogme3 \"defs-2022.lua\")
short_:add [[
]]
]
\[SETHEADSTYLE [LUCIDA]]
\[htmlize [J (Title)]\n
[DELAY [SMALL [DLINDEX2]]
[sec2 H2 [++N]. Foo]
]
]
\[#
# Local Variables:
# coding: raw-text-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]")
) rest))
;; «find-blogme3-curso-links» (to ".find-blogme3-curso-links")
;; Test: (find-blogme3-curso-links)
;; Test: (find-blogme3-curso-links "2017" "2" "GA" "2017.1")
;; Test: (find-blogme3-curso-links "2017" "2" "C2" "2017.1")
;; Test: (find-blogme3-curso-links "2017" "2" "LA" "2017.1")
;; Test: (find-blogme3-curso-links "2020" "1" "C2" "2019.2")
;; Test: (find-blogme3-curso-links "2020" "1" "C3" "2019.2")
;; Test: (find-blogme3-curso-links "2020" "2" "C2" "2020.1")
;; Test: (find-blogme3-curso-links "2020" "2" "C3" "2020.1")
;;
(defun find-blogme3-curso-links (&optional year sem name prevsem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for blogme3."
(interactive)
(setq year (or year "{year}"))
(setq sem (or sem "{sem}"))
(setq name (or name "{name}"))
(setq prevsem (or prevsem "{prevsem}"))
(let ((stem (format "%s.%s-%s" year sem name)))
(apply 'find-elinks `(
(find-blogme3-curso-links ,year ,sem ,name ,prevsem ,@pos-spec-list)
(find-efunction 'find-blogme3-curso-links)
""
(kill-new ,stem)
(find-blogme3 "anggmake.lua" "blogmestems")
(find-blogme3 "anggmake.lua" "blogmestems" "2017.1-LA")
(find-TH ,stem)
""
,(ee-template0 "
# Create directories and makefiles
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mkdir ~/{year}.{sem}-{name}/
cp -iv ~/{prevsem}-{name}/Makefile ~/{year}.{sem}-{name}/
# (find-2b '(find-angg \"{prevsem}-{name}/Makefile\") '(find-angg \"{year}.{sem}-{name}/Makefile\"))
# (find-fline \"~/{year}.{sem}-{name}/Makefile\")
# (kill-new \"{stem}\")
# (find-THfile \"Makefile\" \"2019.1-TD\")
# (kill-new \"\\n {stem}/Makefile\")
# (find-blogme3file \"anggmake.lua\" \"2019.1-TD/Makefile\")
* (eepitch-Twu)
* (eepitch-kill)
* (eepitch-Twu)
mkdir ~/public_html/{year}.{sem}-{name}/
mkdir ~/slow_html/{year}.{sem}-{name}/
# Create ___-material.tex:
# (find-lualatex-links \"{year}-{sem}-{name}-material\")
# Create {year}.{sem}.blogme:
# (find-2a '(find-TH \"{prevsem}\") '(find-TH \"{year}.{sem}\"))
# Adjust {stem}.blogme:
# (find-2a '(find-TH \"{prevsem}-{name}\") '(find-TH \"{stem}\"))
# Create {stem}.blogme:
# (ee-copy-rest 1 '(find-TH \"{stem}\"))
\[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[#
\(defun c () (interactive) (find-blogme3-sh0-if \"{stem}\"))
\(defun u () (interactive) (find-blogme-upload-links \"{stem}\"))
;; http://anggtwu.net/{stem}.html
;; file:///home/edrx/TH/L/{stem}.html
;; (find-curso-links \"{year}\" \"{sem}\" \"{name}\" \"78\")
;;
;; (find-fline \"~/{stem}/\")
;; (find-pdf-page \"~/{stem}/{stem}.pdf\")
;; (find-sh0 \"cp -v ~/{stem}/{stem}.pdf /tmp/\")
#]
\[lua: LR = R ]
\[htmlize [J {name} {year}.{sem} - Eduardo Ochs]\n
\[P [R {year}.{sem}.html Salas, horários, etc]
\[BR] [R {prevsem}-{name}.html Página do semestre anterior]
\]
\[BE'
PDFs com todos os quadros:
http://anggtwu.net/{stem}/{stem}.pdf (este semestre)
http://anggtwu.net/{prevsem}-{name}/{prevsem}-{name}.pdf (semestre anterior)
Material para exercícios:
http://anggtwu.net/LATEX/{year}-{sem}-{name}-material.pdf (este semestre)
http://anggtwu.net/LATEX/{year}-{sem}-{name}-material.pdf (semestre anterior)
Fotos dos quadros:
\(ainda não\)
\]
\[#
Alunos:
#]
]
\[#
# Local Variables:
# coding: raw-text-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]")
) pos-spec-list)))
;; «find-curso-links» (to ".find-curso-links")
(defun find-curso-links (&optional year sem name nlines variants &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq year (or year "{year}"))
(setq sem (or sem "{sem}"))
(setq name (or name "{name}"))
(setq nlines (or nlines "{nlines}"))
(setq variants (or variants ""))
(apply 'find-elinks
`((find-curso-links ,year ,sem ,name ,nlines ,@pos-spec-list)
(find-curso-links "2016" "2" "GA" "20" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-curso-links)
"# Superseded by: (find-efunction 'find-curso2023-links)"
""
,(ee-find-curso-script year sem name nlines variants)
;; ,(ee-template0 "\
;; ")
)
pos-spec-list))
;; (find-estring (ee-find-curso-script "2016" "1" "GA" "20"))
;;
(defun ee-find-curso-script (year sem name nlines variants)
"Return a list of sexps and strings for curso.
This is an internal function used by `find-curso-links'."
(ee-template0 "\
# Adjust nlines:
# (find-2a nil '(find-TH \"{year}.{sem}-{name}\"))
# (eek \"M-o M-> {nlines}*<up> M-o\")
# (find-angg \"{year}.{sem}-{name}/\")
# (find-twusfile \"{year}.{sem}-{name}/\")
# (find-fline \"/tmp/\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
# sudo chmod -v 644 {year}*{name}*.jpg
chmod -v 644 {year}*{name}*.jpg
A=($(ls {year}*{name}*.jpg))
print -l $A
for i in $A; do
echo convert $i -rotate 0 -auto-orient $i
convert $i -rotate 0 -auto-orient $i
done
# (find-fline \"/tmp/\")
cp -iv $A ~/{year}.{sem}-{name}/
cd ~/{year}.{sem}-{name}/
for i in $A; do
echo \"http://anggtwu.net/{year}.{sem}-{name}/$i\"
done |& tee /tmp/o.{name}
#
* (kill-new (find-sh00 \"cat /tmp/o.{name}\"))
* (find-2a nil '(find-TH \"{year}.{sem}-{name}\"))
* (eek \"M-o M-> {nlines}*<up> M-o\")
** Now run this with M-e: (eek \"M-o C-y M-o\")
**
cd /tmp/
A=($(ls {year}*{name}*.jpg))
print -l $A
cd ~/{year}.{sem}-{name}/
laf $A
{
Scp-np $A edrx@anggtwu.net:/home/edrx/slow_html/{year}.{sem}-{name}/
Scp-np $A edrx@anggtwu.net:/home/edrx/public_html/{year}.{sem}-{name}/
}
# (find-twusfile \"{year}.{sem}-{name}/\")
** Make djvus
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell2)
cd ~/{year}.{sem}-{name}/
make pngs
make djvus
make {year}.{sem}-{name}.djvu
make {year}.{sem}-{name}.pdf
make pdfs
{
Scp-np {year}.{sem}-{name}{variants}.{<}djvu,pdf{>} edrx@anggtwu.net:/home/edrx/slow_html/{year}.{sem}-{name}/
Scp-np {year}.{sem}-{name}{variants}.{<}djvu,pdf{>} edrx@anggtwu.net:/home/edrx/public_html/{year}.{sem}-{name}/
}
# http://anggtwu.net/{year}.{sem}-{name}/{year}.{sem}-{name}.pdf
# (find-fline \"~/{year}.{sem}-{name}/\")
# (find-djvupage \"~/{year}.{sem}-{name}/{year}.{sem}-{name}.djvu\")
# (find-xpdfpage \"~/{year}.{sem}-{name}/{year}.{sem}-{name}.pdf\")
** Update html
* (find-2a nil '(find-TH \"{year}.{sem}-{name}\"))
* (eek \"M-o C-x C-s M-o\")
*
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# makeR
# touch ~/TH/{year}.{sem}-{name}.blogme
makeR1 {year}.{sem}-{name}.html
Scp-np {year}.{sem}-{name}.html $TWUP/{year}.{sem}-{name}.html
# Scp-np TH/{year}.{sem}-{name}.blogme $TWUP/TH/{year}.{sem}-{name}.blogme
# http://anggtwu.net/{year}.{sem}-{name}.html
# file:///home/edrx/TH/R/{year}.{sem}-{name}.html
"))
;; «find-curso-makefile-links» (to ".find-curso-makefile-links")
;; (find-curso-makefile-links)
(defun find-curso-makefile-links (&optional year sem name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq year (or year "{year}"))
(setq sem (or sem "{sem}"))
(setq name (or name "{name}"))
(apply 'find-elinks
`((find-curso-makefile-links ,year ,sem ,name ,@pos-spec-list)
(find-curso-makefile-links "2016" "2" "GA")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-curso-makefile-links)
""
,(ee-template0 "\
# (kill-new \" {year}.{sem}-{name}/Makefile\\n\")
# (find-blogme3file \"anggmake.lua\" \"2016.1-LA/Makefile\")
# (kill-new \"{year}.{sem}-{name}\")
# (find-THfile \"Makefile\" \"2016.2-LA\")
# (kill-new \"{year}.{sem}-{name}\")
# (find-twusfile \"\" \"2016.1-LA\")
# (mkdir \"~/{year}.{sem}-{name}/\")
# (ee-copy-rest 1 '(find-fline \"~/{year}.{sem}-{name}/Makefile\"))
# This file: (find-angg \"{year}.{sem}-{name}/Makefile\")
# Based on: (find-angg \"bin/djvuize\")
# Generated by: (find-angg \".emacs.templates\" \"find-curso-makefile-links\")
# (find-angg \"2014.2-GA/Makefile\")
# (find-angg \"SCANS/Makefile\")
# (find-node \"(make)Text Functions\")
THIS = {year}.{sem}-{name}
PNGS = $(patsubst %.jpg,%.png,$(wildcard *.jpg))
DJVUS = $(patsubst %.png,%.djvu,$(wildcard *.png))
# (find-angg \"bin/whiteboard\")
# (find-es \"gimp\" \"whiteboard\")
pngs_:
echo $(PNGS)
pngs: $(PNGS)
%.png: %.jpg
whiteboard $< $@
%.pgm: %.png
convert $< $@
%.pbm: %.pgm
mkbitmap -x -f 50 -t 0.4 $< -o $@
%.djvu: %.pbm
cjb2 -lossy $< $@
djvus_:
echo $(DJVUS)
djvus: $(DJVUS)
djvu: $(THIS).djvu
$(THIS).djvu: $(DJVUS)
djvm -create $(THIS).djvu $(DJVUS)
pdf: $(THIS).pdf
%.pdf: %.djvu
ddjvu -format=pdf $< $@
")
)
pos-spec-list))
;; «find-quadro-links» (to ".find-quadro-links")
;; (find-find-links-links "{k}" "quadro" "name yys")
;;
(defun find-quadro-links (&optional name yys &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq name (or name "{name}"))
(setq yys (or yys "{yys}"))
(apply 'find-elinks
`((find-quadro-links ,name ,yys ,@pos-spec-list)
(find-quadro-links "la" "172" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-quadro-links)
""
,(ee-template0 "\
;; <{name}q{yys}>
\(defun {name}qe{yys} (&rest rest) (interactive) (apply 'find-angg \".emacs\" \"{name}q{yys}\" rest))
\(defun {name}qe (&rest rest) (interactive) (apply '{name}qe{yys} rest))
;; ({name}q{yys} 1 \"201708xx\" \"\")
")
)
pos-spec-list))
;; Test: (find-quadro-links)
;; «find-baudio-links» (to ".find-baudio-links")
;; Test: (find-baudio-links)
;; Test: (find-baudio-links nil "2013dec-EP")
;; (find-find-links-links "baudio")
;;
(defun find-baudio-links (&optional dir/ stem &rest rest)
"Visit a temporary buffer containing hyperlinks for blogme3."
(interactive)
(setq dir/ (or dir/ "audios/"))
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
(find-baudio-links ,dir/ ,stem ,@rest)
(find-2a '(find-twusfile "audios/") '(find-twupfile "audios/"))
;; (eev ,(format "Scp ~/audios/%s.mp3 $TWUS/audios/%s.mp3" stem stem))
""
(find-angg ".emacs.audios" ,stem)
;; (find-blogme3file "blogme3.el")
;; (find-blogme3file "")
;;
,(ee-template0 "\
;; <{stem}>
;; (find-TH \"audios/{stem}\")
;; (find-fline \"~/audios/\")
;; (find-fline \"~/audios/\" \"{stem}.mp3\")
;; (find-audio \"~/audios/{stem}.mp3\")
\(code-audio \"{stem}\" \"~/audios/{stem}.mp3\")
;; (find-{stem} \"0:00\")
;; (find-{stem} t)
;; (eev-avadj-mode 1)
")
;;
(kill-new ,(format "audios/%s" stem))
(find-blogme3 "anggmake.lua" "blogmestems" "audios/")
(find-TH ,(format "audios/%s" stem))
(ee-copy-rest 1 '(find-TH ,(format "audios/%s" stem)))
;;
,(ee-template0 "
\[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[#
\(defun c () (interactive) (find-blogme3-sh0-if \"audios/{stem}\"))
\(defun u () (interactive) (find-blogme-upload-links \"audios/{stem}\"))
;; http://anggtwu.net/audios/{stem}.html
;; file:///home/edrx/TH/L/audios/{stem}.html
;; (find-sh0 \"cp -lv ~/audios/{stem}.mp3 ~/TH/L/audios/\")
;; (find-angg \".emacs.audios\" \"{stem}\")
;; (find-blogme3 \"anggdefs.lua\" \"html5-audio\")
#]
\[lua: LR = R ]
\[htmlizetxt [J {stem}]
\[AUDIO_INDEX {stem}.mp3
0:00
]
\[BE'
# Pra baixar uma copia local:
wget http://anggtwu.net/audios/{stem}.mp3
wget http://anggtwu.net/audios/{stem}.html
# Veja:
# http://anggtwu.net/ferramentas-para-ativistas.html#audios
# http://anggtwu.net/ferramentas-para-ativistas.html#audios-copias-locais
]
]
\[#
# Local Variables:
# coding: raw-text-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]")
) rest))
;; «bsec» (to ".bsec")
;; (find-THfile "monep.blogme" "defun bsec")
;; (find-blogme3grep "grep -nH -e sec *.lua")
;; (find-blogme3 "anggdefs.lua" "readqline" "sec")
;; (bsec "{tag}" "{H}" "{title}")
;; (bsec "foo" "H2" "Foo Bar")
(defun ee-bsec-string (tag H title)
(ee-template0 "\
\[br ----------------------------------------]\n
\[#
# «.{tag}» (to \"{tag}\")
# (bsec \"{tag}\" \"{H}\" \"{title}\")
#]
\[sec «{tag}» (to \".{tag}\")
{H} [++N]. {title}]
"))
;; (defun bsec (tag H title)
;; (ee-delete-and-extract-line)
;; (insert (ee-bsec-string tag H title)))
;; (find-efunction 'bsec)
;; (find-efunction 'eewrap-audiovideo)
(defun bsec (&optional tag H title)
(interactive)
(if (not tag)
(ee-this-line-wrapn 3 'ee-bsec-string)
(ee-this-line-extract)
(insert (ee-bsec-string tag H title))))
;; «ee-bsec» (to ".ee-bsec")
;; 2017abr14
;; Typical usage: (find-THfile "luatex.blogme" "defun bsec")
;; A test: (find-estring (ee-bsec "ebl-2017" "H2" "IPL For Children and"))
(defun ee-bsec (tag h head)
(ee-template0 "
\[br ----------------------------------------]
\[#
# «.{tag}»\t\t(to \"{tag}\")
# {(format \"%S\" `(bsec ,tag ,h ,head))}
#]
\[sec «{tag}» (to \".{tag}\")
{h} [++N]. {head}]
"))
;; «ee-mkdl» (to ".ee-mkdl")
;; «find-mkdl» (to ".find-mkdl")
;; (find-dn4 "Makefile.base")
;; Make a download block for my makefiles
;; (find-efunction 'eeurl-u-to-f)
;; (find-efunction 'ee-template)
;; (find-estring (ee-mkdl "FOO" "http://foo.org/bar/plic.tgz"))
;; (find-mkdl "STEM" "http://foo/bar/plic.tgz")
(defun find-mkdl (STEM url)
(interactive (list "STEM" "http://foo/bar/plic.tgz"))
(find-elinks `((find-mkdl ,STEM ,url) nil ,(ee-mkdl STEM url))))
(defun ee-mkdl (STEM url)
(let* ((localurl (replace-regexp-in-string
"^\\(https?\\|ftp\\)://" "\\1/" url))
(localurldir (file-name-directory localurl)))
(ee-template
`(("http://www.foo.org/bar/plic.tgz" ,url)
( "http/www.foo.org/bar/plic.tgz" ,localurl)
( "http/www.foo.org/bar/" ,localurldir)
("STEM" ,STEM)
("stem" ,(downcase STEM))) "\
{STEM}URL = {http://www.foo.org/bar/plic.tgz}
{STEM}TGZ = $(S)/{http/www.foo.org/bar/plic.tgz}
{STEM}TGZDIR = $(S)/{http/www.foo.org/bar/}
{stem}download: $({STEM}TGZ)
$({STEM}TGZ):
mkdir -p $({STEM}TGZDIR)
cd $({STEM}TGZDIR) && \\
$(wget) $({STEM}URL)
")))
;; «ee-ps2pdf-script» (to ".ee-ps2pdf-script")
;; (find-efunctiondescr 'ee-template)
;; (ee-ps2pdf-script "$S/http/foo/" "stem" ".ps.gz")
(defun ee-ps2pdf-script (dir stem ext)
(ee-template
`(("$S/http/foo/" ,dir) ("stem" ,stem) (".ps.gz" ,ext))
"cd {$S/http/foo/} && zcat {stem}{.ps.gz} | ps2pdf - {stem}.pdf"))
;; «class» (to ".class")
;; For: (find-dn6 "eoo.lua")
;; See: (find-dn6 "eoo.lua" "Vector")
;; (find-dn6 "eoo.lua" "Vector" "Vector = Class {")
;; (to "find-class-links")
;; Usage: if the point is on a line that says just "FooBar" and you type
;; `M-x class' then that line will be converted into these five lines:
;;
;; FooBar = Class {
;; type = "FooBar",
;; __index = {
;; },
;; }
;;
;; (find-angg "LUA/canvas2.lua" "Class")
;; (find-efunction 'ee-delete-and-extract-line)
;; (find-eev "eev-wrap.el" "ee-this-line-wrapn")
;; (find-eewrap-links "{C}" "class" "str")
(defalias 'class 'eewrap-class)
(defun eewrap-class () (interactive)
(ee-this-line-wrapn 1 'ee-wrap-class))
(defun ee-wrap-class (Name)
"An internal function used by `eewrap-class'."
(ee-template0 "\
{Name} = Class {<}
type = \"{Name}\",
__index = {<}
{>},
{>}
"))
;; «bname» (to ".bname")
;;
(defun bname () (interactive)
(let ((str (ee-no-trailing-nl
(ee-no-properties
(ee-delete-and-extract-line 1)))))
(insert (format "\
\[# «%s» (to \".%s\")
# «.%s»\t\t(to \"%s\")
#\]
\[NAME %s\]" str str str str str))))
;; «find-scp-links» (to ".find-scp-links")
;; (find-scp-links)
;;
(defun find-scp-links (&optional user addr &rest rest)
"Visit a temporary buffer containing hyperlinks for scp."
(interactive)
(setq user (or user "{user}"))
(setq addr (or addr "{addr}"))
(apply 'find-elinks `(
(find-scp-links ,user ,addr ,@rest)
(find-fline "/etc/hosts" ,addr)
""
,(ee-template `(user addr) "\
\(defun eepitch-{addr} () (interactive)
(eepitch '(find-comintprocess \"ssh {addr}\" \"ssh {user}@{addr}\")))
\(code-c-d \"{addr}\" \"/scp:{user}@{addr}:\")
;; (find-{addr}file \"\")
* (eepitch-{addr})
* (eepitch-kill)
* (eepitch-{addr})")
) rest))
;; «find-gigapedia-links» (to ".find-gigapedia-links")
;; (define-key eev-mode-map "\M-G" 'find-gigapedia-links)
;; Deleted.
;; «find-dn5-file-links» (to ".find-dn5-file-links")
;; (find-find-links-links "dn5-file" "stem")
;; (find-dn5-file-links)
;;
(defun find-dn5-file-links (&optional c stem ext &rest rest)
(interactive)
(setq c (or c "--"))
(setq stem (or stem "{stem}"))
(setq ext (or ext ".lua"))
(apply 'find-elinks `(
(find-dn5-file-links ,c ,stem ,ext ,@rest)
(find-dn5-file-links "--" ,stem ".lua" ,@rest)
(find-dn5-file-links "%" ,stem ".tex" ,@rest)
,(ee-template `(c stem ext) "\
{c} (kill-new \" dednat5/{stem}{ext}\")
{c} (find-blogme3file \"anggmake.lua\" \"dednat5/\" \"\\n\")
{c} (find-dn5file \"{stem}{ext}\")
{c} {stem}{ext}:
{c} This file:
{c} http://anggtwu.net/dednat5/{stem}{ext}.html
{c} http://anggtwu.net/dednat5/{stem}{ext}
{c} (find-dn5 \"{stem}{ext}\")
{c} Author: Eduardo Ochs <eduardoochs@gmail.com>
{c} Version: 2011feb27?
{c} License: GPL3
{c}
require \"eoo\" -- (find-dn5 \"eoo.lua\")
{c} dump-to: tests
{c}[==[
{c}]==]
{c} Local Variables:
{c} coding: raw-text-unix
{c} ee-anchor-format: \"«%s»\"
{c} End:
")
) rest))
;; (find-dn5-file-links)
;; (find-dn5file "")
;; (find-dn5-file-links "prefixes")
;; (find-dn5-file-links "process")
;; (find-dn5-file-links "trees")
;; (find-dn5-file-links "diags")
;; (find-dn5-file-links "common")
;; (find-dn5file "common.lua")
;; (find-dn5file "prefixes.lua")
;; (find-dn5file "process.lua")
;; (find-dn5file "trees.lua")
;; (find-dn5file "diags.lua")
;; (find-dn5file "parse.lua")
;; (find-dn5file "trees.lua")
;; «find-blogme4-file-links» (to ".find-blogme4-file-links")
;; (find-find-links-links "blogme4-file" "stem")
;; (find-blogme4-file-links)
;;
(defun find-blogme4-file-links (&optional c stem ext &rest rest)
(interactive)
(setq c (or c "--"))
(setq stem (or stem "{stem}"))
(setq ext (or ext ".lua"))
(apply 'find-elinks `(
(find-blogme4-file-links ,c ,stem ,ext ,@rest)
(find-blogme4-file-links "--" ,stem ".lua" ,@rest)
(find-blogme4-file-links "%" ,stem ".tex" ,@rest)
,(ee-template `(c stem ext) "\
{c} (kill-new \" blogme4/{stem}{ext}\")
{c} (find-blogme3file \"anggmake.lua\" \"blogme4/\" \"\\n\")
{c} (find-blogme4file \"{stem}{ext}\")
{c} {stem}{ext}:
{c} This file:
{c} http://anggtwu.net/blogme4/{stem}{ext}.html
{c} http://anggtwu.net/blogme4/{stem}{ext}
{c} (find-blogme4 \"{stem}{ext}\")
{c} Author: Eduardo Ochs <eduardoochs@gmail.com>
{c} Version: 2011jun02?
{c} License: GPL3
{c}
require \"eoo\" -- (find-blogme4 \"eoo.lua\")
{c} dump-to: tests
{c}[==[
{c}]==]
{c} Local Variables:
{c} coding: raw-text-unix
{c} ee-anchor-format: \"«%s»\"
{c} End:
")
) rest))
;; (find-blogme4-file-links)
;; (find-blogme4file "")
;; (find-blogme4-file-links "prefixes")
;; (find-blogme4-file-links "process")
;; (find-blogme4-file-links "trees")
;; (find-blogme4-file-links "diags")
;; (find-blogme4-file-links "common")
;; (find-blogme4file "common.lua")
;; (find-blogme4file "prefixes.lua")
;; (find-blogme4file "process.lua")
;; (find-blogme4file "trees.lua")
;; (find-blogme4file "diags.lua")
;; (find-blogme4file "parse.lua")
;; (find-blogme4file "trees.lua")
;; (find-scan-links)
(defun find-scan-links (&optional dir &rest rest)
"Visit a temporary buffer containing hyperlinks for scan."
(interactive)
(setq dir (or dir "/tmp/scans/"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-scan-links ,dir ,@rest)
(find-scan-links "~/SCANS/foo/" ,@rest)
(find-fline "~/SCANS/")
,(ee-expand dir)
;; Body:
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mkdir {dir}
cd {dir}
sudo xsane &
# (find-fline \"{dir}\")
# (find-xzgv \"{dir}\")
# (find-fline \"~/SCANS/Makefile\")
make -f ~/SCANS/Makefile djvu600s
make -f ~/SCANS/Makefile all.djvu
make -f ~/SCANS/Makefile all.pdf
# (find-djvupage \"{dir}all.djvu\")
# (find-xpdfpage \"{dir}all.pdf\")
* (eepitch-eshell)
cd {dir}
cp -v all.djvu (ee-twusfile \"SCANS/\")
cp -v all.pdf (ee-twusfile \"SCANS/\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
for i=166,210,2 do
s = format(\"%04d\", i)
printf(\"convert %s.jpg -rotate 180 %sr.jpg; mv -v %sr.jpg %s.jpg\\n\",
s, s, s, s)
end
")
) rest))
;; (find-scan-links)
;; «find-dhmake-links» (to ".find-dhmake-links")
;;; _ _ _
;;; __| | |__ _ __ ___ __ _| | _____
;;; / _` | '_ \| '_ ` _ \ / _` | |/ / _ \
;;; | (_| | | | | | | | | | (_| | < __/
;;; \__,_|_| |_|_| |_| |_|\__,_|_|\_\___|
;;;
;; «find-dhmake-links» (to ".find-dhmake-links")
;;
;; Some templates for generating ".deb"s.
;; If you want to build a .deb for a package called, say, "foo-bar",
;; these scripts will use the directory "~/usrc/foo-bar/foo-bar_xxx/"
;; to build it - that directory will be recreated from scratch each
;; time - and the "override files for dhmake" will be taken from the
;; directory "~/foo-bar/". At this moment these paths are hardcoded.
;;
;; I generate the 3 main packages at
;; http://anggtwu.net/debian/
;; http://anggtwu.net/debian/README.html
;; with these commands:
;; (find-dhmake-links "eev" "eevbuild")
;; (find-dhmake-links "eev-puro" "eevpuro")
;; (find-dhmake-links "eev-lua-extras" "eevluaextras")
(defvar ee-dhmake-fullname "Eduardo Ochs")
(defvar ee-dhmake-email "eduardoochs@gmail.com")
;; (find-estring-elisp (ee-dhmake-codecds "eev-puro" "eevpuro" "20120305"))
;;
(defun ee-dhmake-codecds (stem c date)
(ee-template '(stem c date) "\
;; Generated by:
;; (ee-dhmake-codecds \"{stem}\" \"{c}\" \"{date}\")
;;
\(code-c-d \"{c}dh\" \"~/{stem}/\")
\(code-c-d \"{c}dhd\" \"~/{stem}/debian/\")
\(code-c-d \"{c}\" \"~/usrc/{stem}/{stem}-0.1.{date}/\")
\(code-c-d \"{c}d\" \"~/usrc/{stem}/{stem}-0.1.{date}/debian/\")
\(code-c-d \"{c}dd\" \"~/usrc/{stem}/{stem}-0.1.{date}/debian/{stem}/\")
\(code-c-d \"{c}unp\" \"~/usrc/{stem}/{stem}-unpacked/\")
;; (find-{c}dhfile \"\")
;; (find-{c}dhdfile \"\")
;; (find-{c}file \"\")
;; (find-{c}dfile \"\")
;; (find-{c}ddfile \"\")
;; (find-{c}unpfile \"\")
;; (find-{c}dsh \"find * | sort\")
;; (find-{c}ddsh \"find * | sort\")
;; (find-{c}unpsh \"find * | sort\")
;; (find-status \"{stem}-deb\")
;; (find-vldifile \"{stem}-deb.list\")
;; (find-udfile \"{stem}-deb-puro/\")"))
;; (find-estring (ee-dhmake-build "eev-puro" "eevpuro" "20120305"))
;;
(defun ee-dhmake-build (stem c date)
(ee-template '(stem c date ee-dhmake-fullname ee-dhmake-email) "\
# Generated by:
# (ee-dhmake-build \"{stem}\" \"{c}\" \"{date}\")
#
rm -Rv ~/usrc/{stem}/
mkdir -p ~/usrc/{stem}/
mkdir ~/usrc/{stem}/{stem}-0.1.{date}/
# ln -s {stem}-0.1.{date} ~/usrc/{stem}/{stem}-0.1
ln -s {stem}-0.1.{date} {stem}-0.1
cd ~/usrc/{stem}/{stem}-0.1.{date}/
echo | \\
DEBFULLNAME=\"{ee-dhmake-fullname}\" \\
dh_make --email {ee-dhmake-email} \\
--copyright=gpl \\
--cdbs \\
--native
rm -v debian/README.Debian
rm -v debian/*.EX
rm -v debian/*.ex
cp -iv debian/control debian/control.orig
# (find-fline \"~/{stem}/debian/\")
# (find-sh0 \"rm -Rv ~/{stem}/debian/\")
mkdir -p ~/{stem}/debian/
if [ ! -e ~/{stem}/Makefile ]; then
echo Creating: ~/{stem}/Makefile
echo \"clean:\" > ~/{stem}/Makefile
fi
if [ ! -e ~/{stem}/debian/control ]; then
echo Creating: ~/{stem}/debian/control
cp -v debian/control ~/{stem}/debian/control
fi
if [ ! -e ~/{stem}/debian/rules ]; then
echo Creating: ~/{stem}/debian/rules
cp -v debian/rules ~/{stem}/debian/rules
echo \"build/{stem}::\" >> ~/{stem}/debian/rules
echo \"install/{stem}::\" >> ~/{stem}/debian/rules
fi
# (find-{c}dh \"debian/\")
# (find-{c}dh \"debian/control\")
# (find-{c}dh \"debian/rules\")
cp -v ~/{stem}/debian/* debian/
cp -v ~/{stem}/Makefile .
# (find-man \"1 dpkg-buildpackage\")
# dpkg-buildpackage -us -uc -rfakeroot 2>&1 | tee odb
dpkg-buildpackage -us -uc -b -rfakeroot 2>&1 | tee odb
# (find-{c}file \"odb\")
rm -Rv ~/usrc/{stem}/{stem}-unpacked/
mkdir ~/usrc/{stem}/{stem}-unpacked/
mkdir ~/usrc/{stem}/{stem}-unpacked/DEBIAN/
cd ~/usrc/{stem}/
ar p {stem}_*.deb control.tar.gz | tar -C {stem}-unpacked/DEBIAN/ -xvzf -
ar p {stem}_*.deb data.tar.gz | tar -C {stem}-unpacked/ -xvzf -
# (find-{c}unpfile \"\")
# (find-{c}unpfile \"DEBIAN/\")
# (find-{c}unpfile \"DEBIAN/control\")
# (find-{c}unpsh \"find * | sort\")"))
(defun find-dhmake-links (&optional stem c date &rest rest)
"Visit a temporary buffer containing hyperlinks for dhmake."
(interactive)
(setq stem (or stem "{stem}"))
(setq c (or c "{c}"))
(setq date (or date (format-time-string "%Y%m%d")))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-dhmake-links ,stem ,c ,date ,@rest)
(find-efunction 'find-dhmake-links)
;; Body:
""
;; (find-estring-elisp (ee-dhmake-codecds ,stem ,c ,date))
;; (find-estring (ee-dhmake-build ,stem ,c ,date))
;; (eev (ee-dhmake-build ,stem ,c ,date))
;; (find-fline "$EE")
;; (find-fline (format "~/%s/debian/" stem))
;; (find-sh0 ,(format "rm -Rv ~/%s/debian/" stem))
;; ""
,(ee-template `(stem c date) "\
# Set up the build script that `ee' will execute:
# (find-estring-elisp (ee-dhmake-codecds \"{stem}\" \"{c}\" \"{date}\"))
# (find-estring (ee-dhmake-build \"{stem}\" \"{c}\" \"{date}\"))
# (eev (ee-dhmake-build \"{stem}\" \"{c}\" \"{date}\"))
# (find-fline \"$EE\")
# Examine its main control files:
# (find-fline \"~/{stem}/debian/rules\")
# (find-fline \"~/{stem}/debian/control\")
# (find-fline \"~/{stem}/debian/\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
ee
cd ~/usrc/{stem}/
ls -lF *.deb
sudo dpkg -i {stem}*.deb
# sudo dselect update
# (find-status \"{stem}\")
# (find-vldifile \"{stem}.list\")
# (find-udfile \"{stem}/\")
# Upload to anggtwu.net.
# (THIS IS A HACK!)
# (find-twusfile \"debian/\")
* (eepitch-eshell)
cd ~/usrc/{stem}/
ls -l {stem}_0.1.{date}_all.deb
cp -v {stem}_0.1.{date}_all.deb (ee-twusfile \"debian/\")
ls -l (ee-twusfile \"debian/\")
# (find-twusfile \"debian/\")
* (eepitch-Twu)
cd ~/slow_html/debian/
mkdir -p dists/./main/binary-i386/
mkdir -p dists/./main/binary-amd64/
ls -lAF
apt-ftparchive packages .
apt-ftparchive packages . \\
| tee dists/./main/binary-i386/Packages \\
| gzip -c9 > dists/./main/binary-i386/Packages.gz
apt-ftparchive packages . \\
| tee dists/./main/binary-amd64/Packages \\
| gzip -c9 > dists/./main/binary-amd64/Packages.gz
")
) rest))
;; (find-dhmake-links)
;; (find-dhmake-links "{stem}" "{c}" "{date}")
;; (find-dhmake-links "foo-bar" "foobar")
;; (find-dhmake-links "eev" "eevbuild")
;; (find-dhmake-links "eev" "eevbuild" "20120404")
;; «find-dhmake-old-links» (to ".find-dhmake-old-links")
;; (find-angg ".emacs" "eev-puro")
;; (find-angg "debian/README")
;;
(defun find-dhmake-old-links (&optional stem c date &rest rest)
"Visit a temporary buffer containing hyperlinks for dhmake."
(interactive)
(setq stem (or stem "{stem}"))
(setq c (or c "{c}"))
(setq date (or date "{date}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-dhmake-old-links ,stem ,c ,date ,@rest)
;; Body:
""
,(ee-template `(stem c date) "\
# (find-angg \".emacs\" \"{stem}-deb\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/{stem}/
mkdir ~/usrc/{stem}/
mkdir ~/usrc/{stem}/{stem}-0.1.{date}/
# ln -s {stem}-0.1.{date} {stem}-0.1
ln -s {stem}-0.1.{date} ~/usrc/{stem}/{stem}-0.1
cd ~/usrc/{stem}/{stem}-0.1.{date}/
echo | \\
DEBFULLNAME=\"Eduardo Ochs\" \\
dh_make --email eduardoochs@gmail.com \\
--copyright=gpl \\
--cdbs \\
--native
rm -v debian/README.Debian
rm -v debian/*.EX
rm -v debian/*.ex
mv -iv debian/control debian/control.orig
# (find-angg \"{stem}/debian/\")
# (find-angg \"{stem}/debian/control\")
# (find-angg \"{stem}/debian/rules\")
cp -v ~/{stem}/debian/* debian/
cp -v ~/{stem}/Makefile .
# (find-man \"1 dpkg-buildpackage\")
# dpkg-buildpackage -us -uc -rfakeroot |& tee odb
dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb
# (find-{c}file \"odb\")
rm -Rv ~/usrc/{stem}/{stem}-unpacked/
mkdir ~/usrc/{stem}/{stem}-unpacked/
mkdir ~/usrc/{stem}/{stem}-unpacked/DEBIAN/
cd ~/usrc/{stem}/
ar p {stem}_*_all.deb control.tar.gz | tar -C {stem}-unpacked/DEBIAN/ -xvzf -
ar p {stem}_*_all.deb data.tar.gz | tar -C {stem}-unpacked/ -xvzf -
# (find-{c}unpfile \"\")
# (find-{c}unpfile \"DEBIAN/\")
# (find-{c}unpfile \"DEBIAN/control\")
# (find-{c}unpsh \"find * | sort\")
cd ~/usrc/{stem}/
# sudo dpkg -i {stem}_0.1.{date}_all.deb
sudo dpkg -i {stem}*.deb
sudo dselect update
# (find-status \"{stem}\")
# (find-vldifile \"{stem}.list\")
# (find-udfile \"{stem}/\")
# (find-es \"eev\" \"apt-ftparchive\")
# (find-es \"eev\" \"eev-deb-unpacked\")
# (find-fline \"~/usrc/eev/eev-unpacked/\")
# (find-eev \"debian/README.Debian\")
# (find-angg \"debian/README\")
# (find-twusfile \"debian/\")
# (ee-cp \"~/usrc/{stem}/{stem}_0.1.{date}_all.deb\" (ee-twusfile \"debian/{stem}_0.1.{date}_all.deb\") 'over)
# (find-twusfile \"debian/\")
* (eepitch-Twu)
cd ~/slow_html/debian/
mkdir -p dists/./main/binary-i386/
mkdir -p dists/./main/binary-amd64/
ls -lAF
apt-ftparchive packages .
apt-ftparchive packages . \\
| tee dists/./main/binary-i386/Packages \\
| gzip -c9 > dists/./main/binary-i386/Packages.gz
apt-ftparchive packages . \\
| tee dists/./main/binary-amd64/Packages \\
| gzip -c9 > dists/./main/binary-amd64/Packages.gz
;; (find-angg \".emacs\" \"{stem}-deb\")
;; <{stem}-deb>
\(code-c-d \"{c}\" \"~/usrc/{stem}/{stem}-0.1.{date}/\")
\(code-c-d \"{c}d\" \"~/usrc/{stem}/{stem}-0.1.{date}/debian/\")
\(code-c-d \"{c}dd\" \"~/usrc/{stem}/{stem}-0.1.{date}/debian/{stem}/\")
\(code-c-d \"{c}unp\" \"~/usrc/{stem}/{stem}-unpacked/\")
;; (find-{c}file \"\")
;; (find-{c}dfile \"\")
;; (find-{c}ddfile \"\")
;; (find-{c}unpfile \"\")
;; (find-{c}dsh \"find * | sort\")
;; (find-{c}ddsh \"find * | sort\")
;; (find-{c}unpsh \"find * | sort\")
;; (find-status \"{stem}-deb\")
;; (find-vldifile \"{stem}-deb.list\")
;; (find-udfile \"{stem}-deb-puro/\")
cd ~/usrc/{stem}/{stem}-0.1.{date}/
cat > debian/control <<'%%%'
Source: {stem}
Section: unknown
Priority: extra
Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
Build-Depends: cdbs, debhelper (>= 7.0.50~)
Standards-Version: 3.8.4
Homepage: http://anggtwu.net/{stem}.html
Package: {stem}
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
%%%
cat >> debian/rules <<'%%%'
# clean::
build/{stem}::
install/{stem}::
%%%
echo \"clean:\" > debian/Makefile
echo \"clean:\" > Makefile
# (find-angg \"{stem}/debian/\")
cp -iv debian/control ~/{stem}/debian/
cp -iv debian/rules ~/{stem}/debian/
")
) rest))
;; (define-key eev-mode-map "\M-h\M-u" 'find-dhmake-old-links)
;; Test:
;; (find-dhmake-old-links)
;; (find-dhmake-old-links "eev-puro" "eevpuro" "20111027")
;; (find-dhmake-old-links "eev" "eevbuild" "20110612")
;; (find-angg ".emacs" "eev-puro-deb")
;; «find-escript-links» (to ".find-escript-links")
;; (find-find-links-links "escript" "stem")
;; (find-efunction 'find-find-links-links)
;;
(defun find-escript-links (&optional stem &rest rest)
"Visit a temporary buffer containing hyperlinks for escript."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-escript-links ,stem ,@rest)
(kill-new ,stem)
(find-blogme3 "anggmake.lua" "escriptstems")
""
;; (wrobak 4 '(find-es ,stem))
(ee-copy-rest 2 '(find-es ,stem))
(find-es ,stem)
;; Body:
""
,(ee-template0 "\
#######
#
# E-scripts on {stem}.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
# (find-eev-quick-intro)
# http://anggtwu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://anggtwu.net/e/{stem}.e>
# or at <http://anggtwu.net/e/{stem}.e.html>.
# See also <http://anggtwu.net/emacs.html>,
# <http://anggtwu.net/.emacs[.html]>,
# <http://anggtwu.net/.zshrc[.html]>,
# <http://anggtwu.net/escripts.html>,
# and <http://anggtwu.net/>.
#
#######
\n\n\n\n
# Local Variables:
# coding: utf-8-unix
# End:\
")
) rest))
;; Test:
;; (find-escript-links)
;; (find-escript-links "foo")
;; «find-thttpd-links» (to ".find-thttpd-links")
;;
(defun find-thttpd-links (&optional dir &rest rest)
"Visit a temporary buffer containing hyperlinks for thttpd."
(interactive)
(setq dir (or dir "{dir}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-thttpd-links ,dir ,@rest)
(find-thttpd-links "~/usrc/varwww/" ,@rest)
(find-angg ".emacs.templates" "find-thttpd-links")
(find-es "http" "thttpd")
"# http://localhost:8080/"
(find-wget "http://localhost:8080/")
(find-sh "/sbin/ifconfig")
;; Body:
""
,(ee-template `(dir) "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
kill -9 $(cat {dir}pid); sleep 1
rm -Rv {dir}
mkdir -p {dir}
cd {dir}
/usr/sbin/thttpd -p 8080 \\
-d {dir} \\
-i {dir}pid \\
-nor -nos -c \"*\" -l /dev/null \\
-T iso-8859-1
cd {dir}
date > 1
date > 2
ln -s ~/TH/L .
# (find-sh \"/sbin/ifconfig\")
cd /etc/
sudo chmod 666 hosts
# (kill-new \"192.168.0.172 reef\")
# (find-file \"/etc/hosts\")
# http://reef:8080/
# http://reef:8080/L/e/tex.e.html
")
) rest))
;; (find-thttpd-links)
;; «find-gitclone-links» (to ".find-gitclone-links")
;; (find-find-links-links "gitclone" "url stem")
;; (find-efunction 'find-find-links-links)
;;
(defun find-gitclone-links (&optional url stem &rest rest)
"Visit a temporary buffer containing hyperlinks for gitclone."
(interactive)
(setq url (or url (car (browse-url-interactive-arg "URL: "))))
(message "%S" url)
(setq stem (or stem "{foo}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-gitclone-links ,url ,stem ,@rest)
;; Body:
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv /tmp/{stem}/
mkdir /tmp/{stem}/
cd /tmp/{stem}/
git clone {url}
tar -cvzf ~/tmp/{stem}-git.tgz *
rm -Rfv ~/usrc/{stem}/
tar -C ~/usrc/ -xvzf ~/tmp/{stem}-git.tgz
cd ~/usrc/{stem}/
")
) rest))
;; (find-find-links-links "newhost" "name ip VAR")
;; «find-newhost-links» (to ".find-newhost-links")
;; «find-newhost-links-old» (to ".find-newhost-links-old")
;; (find-eev "eev-template.el" "find-newhost-links")
;; (find-newhost-links)
;; (find-newhost-links "lugao" "192.168.0.198" "LU")
;; (find-newhost-links "varda" "192.168.1.100" "VA")
;; (find-newhost-links "gwen" "192.168.1.101" "GW")
;;
(defun find-newhost-links-old (&optional name ip VAR &rest rest)
"Visit a temporary buffer with hyperlinks for connecting to a new host."
(interactive)
(setq name (or name "{name}"))
(setq ip (or ip "{ip}"))
(setq VAR (or VAR "{VAR}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-newhost-links ,name ,ip ,VAR ,@rest)
(find-efunction 'find-newhost-links)
(kill-new ,ip ,name)
(find-fline "/etc/hosts" ,name)
;; Body:
""
,(ee-template `(name ip VAR) "\
;; Basic setup
;; (find-sh \"/sbin/ifconfig\")
;; (find-sh \"/sbin/ifconfig\" \"wlan0\")
;; (find-sh \"/sbin/ifconfig\" \"wlan0\" \"inet addr:\")
;; (find-sh \"/sbin/ifconfig wlan0\" \"inet addr:\")
;; (find-fline \"/etc/hosts\")
;; Low-level tests
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
ssh edrx@{name}
* (eepitch-kill)
;; (find-fline \"/scp:edrx@{name}:\")
;; <{name}>
\(code-c-d \"{name}\" \"/scp:edrx@{name}:/\")
;; (find-{name}file \"\")
\(defun eepitch-{name} () (interactive)
(eepitch '(find-comintprocess \"{name}\" \"ssh edrx@{name}\")))
* (eepitch-{name})
* (eepitch-kill)
* (eepitch-{name})
;; (setenv \"{VAR}\" \"/scp:edrx@{name}:\")
\(setenv \"LR\" \"/sudo::\")
\(setenv \"RE\" \"/ssh:edrx@{name}:\")
\(setenv \"RR\" \"/sudo:root@{name}:\")
\(ee-tramp-proxy \"{name}\" \"/sudo:%h:\")
\(code-c-d \"LR\" (ee-expand \"$LR/\"))
\(code-c-d \"RE\" (ee-expand \"$RE/\"))
\(code-c-d \"RR\" (ee-expand \"$RR/\"))
\(defun eepitch-RE () (interactive) (eepitch-comint \"{name}\" \"ssh edrx@{name}\"))
\(defun eepitch-RR () (interactive) (eepitch-comint \"{name}/R\" \"ssh edrx@{name}\"))
;; (find-LRfile \"\")
;; (find-REfile \"\")
;; (find-RRfile \"\")
;; (find-sh \"/sbin/ifconfig\" \"wlan\" \"inet addr:\")
;; (find-RR3 \"etc/hosts\")
;; (find-thttpd-links)
* (eepitch-RE)
wget -O - http://reef:8080/
;; (find-RR3 \"etc/apt/apt.conf.d/90apt-proxy.conf\")
;; (find-fline \"/sudo:{name}:\")
;; (find-fline \"/sudo:root@{name}:\")
\(ee-tramp-proxy \"{name}\" \"/ssh:%h:\")
\(ee-tramp-proxy \"{name}\" \"/ssh:%u@%h:\")
\(ee-tramp-proxy \"{name}\" \"/sudo:%h:\")
\(setq tramp-default-proxies-alist nil)
\(add-to-list 'tramp-default-proxies-alist
'(\"\\\\`{name}\\\\'\" \"\\\\`root\\\\'\" \"/ssh:%h:\"))
\(add-to-list 'tramp-default-proxies-alist
'(\"\\\\`{name}\\\\'\" \"\\\\`root\\\\'\" \"/ssh:%u@%h:\"))
\(add-to-list 'tramp-default-proxies-alist
'(\"\\\\`{name}\\\\'\" \"\\\\`root\\\\'\" \"/sudo:%h:\"))
;; (describe-variable 'tramp-default-proxies-alist)
")
) rest))
;; «find-prince-links» (to ".find-prince-links")
;; (to "find-htmlpdf-links")
;; (find-es "html" "princexml")
;; (find-es "prince" "princexml")
;; (find-THgrep "grep -nH -e find-prince-links *.blogme")
;; Tests: (find-prince-links "2011.1-GA")
;; (find-prince-links "2011.1-MD")
;; (find-prince-links "2011.2-GA")
;; (find-prince-links "2011.2-MD")
(defun find-prince-links (&optional stem GA size &rest rest)
"Visit a temporary e-script that runs princexml on a blogme3 file."
(interactive)
(setq stem (or stem "{stem}"))
(setq GA (or GA "GA"))
(setq size (or size "{size}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-prince-links ,stem ,GA ,size ,@rest)
(find-prince-links ,stem ,GA "8pt" ,@rest)
(find-efunction 'find-prince-links)
;; Body:
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat > /tmp/print.css <<'%%%'
body {<} font-size: {size} !important {>}
%%%
cd
lua51 blogme3/blogme3.lua \\
-e \"PRINCEPRINT=1\" \\
-o /tmp/{stem}.html \\
-i TH/{stem}.blogme
prince -s /tmp/print.css \\
-o /tmp/{stem}.pdf \\
/tmp/{stem}.html
# (find-pdf-page \"/tmp/{stem}.pdf\")
* (eepitch-shell)
mkdir /tmp/pen/
sudo mount -o uid=$UID /dev/sdb1 /tmp/pen/
cp -v /tmp/{stem}.pdf /tmp/pen/
# (find-sh \"dmesg | tail\")
# (find-fline \"/tmp/pen/\")
sudo umount /tmp/pen
sync
# (find-fline \"/tmp/\" \"{stem}.pdf\")
# (find-xpdfpage \"/tmp/{stem}.pdf\")
# (find-evincepage \"/tmp/{stem}.pdf\")
# file:///tmp/{stem}.html
# (ee-cp \"/tmp/{stem}.pdf\" (ee-twusfile \"{GA}/{stem}.pdf\") 'over)
# (ee-cp \"/tmp/{stem}.pdf\" (ee-twupfile \"{GA}/{stem}.pdf\") 'over)
# (find-twusfile \"{GA}/\")
# http://anggtwu.net/{GA}/{stem}.pdf
echo $TWUS/{GA}/{stem}.pdf
Scp-np /tmp/{stem}.pdf $TWUS/{GA}/{stem}.pdf
Scp-np /tmp/{stem}.pdf $TWUP/{GA}/{stem}.pdf
")
) rest))
;; «find-youtubedl-links-old» (to ".find-youtubedl-links-old")
;; (find-eev "eev-tlinks.el" "find-youtubedl-links")
;; (find-es "video" "youtube-dl")
;; (find-eev "eev-tlinks.el" "find-youtubedl-links")
;; (find-find-links-links "youtubedl" "dir title hash ext")
;; (find-youtubedl-links nil nil "vcXUrNSvjhU" ".flv")
;; (find-youtubedl-links "/sda5/videos/" "Prince_XML_Generating_High_Quality_PDFs_from_HTML_CSS" "vcXUrNSvjhU" ".flv" "princexml")
;; (find-es "video" "youtube-dl")
;; (find-es "html" "princexml-video")
;;
;; (find-fline "/sda5/videos/")
;; (find-sh "ls /sda5/videos | tr '.-' '\n\n'")
;; (find-sh "ls /sda5/videos | tr '.-' '\n\n' | awk 'length($1)==11'")
;; (find-sh "ls /sda5/videos/ | grep ZjiQQlgkBVM")
;; (find-sh "ls /sda5/videos/ | grep ZjiQQlgkBVM | awk -F . '{print substr($1, 1, length($1)-12)}'")
;; (find-sh "ls /sda5/videos/ | grep ZjiQQlgkBVM | awk -F . '{print $2}'")
;; (find-sh "ls /sda5/videos/ | grep ZjiQQlgkBVM | awk -F . '{print \".\" $2}'")
;; (find-fline "/sda5/videos/" "Marco_Baringer_s_SLIME_Tutorial_Video-_B_4vhsmRRI.flv")
;; (find-fline "/sda5/videos/" "Sun_Will_Set-l4WN9elfA9o.flv")
;; (ee-youtube-guess "/sda5/videos/" "l4WN9elfA9o" 'title)
;; (ee-youtube-guess "/sda5/videos/" "l4WN9elfA9o" 'ext)
;;
(defun ee-youtube-guess0 (dir hash prog)
(if (eq prog 'title) (setq prog "substr($1, 1, length($1)-12)"))
(if (eq prog 'ext) (setq prog "\".\" $2"))
(format "ls %s | grep -e %s | awk -F . '{print %s}'" dir hash prog))
(defun ee-youtube-guess (dir hash prog &optional default)
(let ((ans (find-sh0 (ee-youtube-guess0 dir hash prog))))
(if (and default (equal ans ""))
default
ans)))
(defun find-youtubedl-links-old (&optional dir title hash ext stem &rest rest)
"Visit a temporary buffer containing hyperlinks for youtube-dl."
(interactive)
(setq dir (or dir "{dir}"))
(setq title (or title "{title}"))
(setq hash (or hash "{hash}"))
(setq ext (or ext "{ext}"))
(setq stem (or stem "{stem}"))
(let* ((dirp (file-directory-p dir))
(hash-g (ee-no-properties (ee-stuff-around-point "-0-9A-Za-z_")))
(title-g (if dirp (ee-youtube-guess dir hash 'title)))
(ext-g (ee-youtube-guess dir hash 'ext))
)
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-youtubedl-links ,dir ,title ,hash ,ext ,stem ,@rest)
;;
(find-youtubedl-links ,dir ,title ,hash-g ,ext ,stem ,@rest)
(find-youtubedl-links "/sda5/videos/" ,title ,hash ,ext ,stem ,@rest)
,(if dirp `(find-youtubedl-links ,dir ,title-g ,hash ,ext-g ,stem ,@rest))
;; Body:
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
cd {dir}
youtube-dl -t 'http://www.youtube.com/watch?v={hash}'
# http://www.youtube.com/watch?v={hash}
# youtube-dl -F -t 'http://www.youtube.com/watch?v={hash}'
# youtube-dl -f 18 -t 'http://www.youtube.com/watch?v={hash}'
# (find-es \"video\" \"youtube-dl\")
# (find-fline \"{dir}\" \"{hash}\")
# (find-fline \"{dir}\" \"{title}-{hash}\")
# (find-fline \"{dir}\" \"{title}-{hash}{ext}\")
# (find-mplayer \"{dir}{title}-{hash}{ext}\")
# (find-mplayer \"{dir}{title}-{hash}{ext}.part\")
# (code-mplayer \"{stem}\" \"{dir}{title}-{hash}{ext}\")
# (code-mplayer \"{stem}\" \"{dir}{title}-{hash}{ext}.part\")
# (find-{stem})
")
) rest)))
;; «find-eepitch-def-links» (to ".find-eepitch-def-links")
;; (find-find-links-links "eepitch-def" "stem")
;;
(defun find-eepitch-def-links (&optional stem &rest rest)
"Visit a temporary buffer containing hyperlinks for eepitch-def."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-eepitch-def-links ,stem ,@rest)
;; Body:
""
,(ee-template `(stem) "\
\(defun eepitch-{stem} () (interactive) (eepitch-comint \"{stem}\" \"{stem}\"))
* (eepitch-{stem})
* (eepitch-kill)
* (eepitch-{stem})
")
) rest))
;; «find-wpa-links» (to ".find-wpa-links")
;; 2012apr26: scripts to connect and disconnect from net devices
;; semi-manually.
;; Written in collaboration with Jose Flavio Pereira Guimaraes.
;;
;; (find-wpa-links)
(defun find-wpa-links (&optional nomedoarquivo essid password &rest rest)
"Visit a temporary buffer containing hyperlinks for wpa."
(interactive)
(setq nomedoarquivo (or nomedoarquivo "{nomedoarquivo}"))
(setq essid (or essid "{essid}"))
(setq password (or password "{password}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-wpa-links ,nomedoarquivo ,essid ,password ,@rest)
(find-wpa-links "Casa" ,@rest)
(find-wpa-links "Lab2" ,@rest)
(find-wpa-links "LLaRC" ,@rest)
(find-wpa-links "Livre" "LIVRE" ,@rest)
(find-livre-links)
(find-fline "/home/Rede/")
(find-efunction 'find-wpa-links)
;; Body:
""
,(ee-template `(nomedoarquivo essid password) "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Modo rapido:
sudo ifconfig wlan0 up
sudo iwconfig wlan0 essid \"{essid}\"
sudo iwconfig wlan0 essid \"{essid}\" key \"{password}\"
sudo wpa_supplicant -D wext -i wlan0 -c /home/Rede/{nomedoarquivo}Rede -B
sudo kill -9 $(cat /var/run/dhcpcd.pid)
sudo dhcpcd
# Testes:
ifconfig
ifconfig wlan0
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
ifconfig wlan0
ifconfig
iwconfig wlan0
sudo iwconfig wlan0 essid \"{essid}\"
iwconfig wlan0
sudo dhcpcd
ps ax | grep dhcp
cat /var/run/dhcpcd.pid
echo kill -9 $(cat /var/run/dhcpcd.pid)
sudo kill -9 $(cat /var/run/dhcpcd.pid)
ps ax | grep dhcp
sudo dhcpcd
")
) rest))
;; (define-key eev-mode-map "\M-h\M-w" 'find-wpa-links)
;; «find-intro-links» (to ".find-intro-links")
;; (find-eev "eev-tlinks.el" "find-intro-links")
(defun find-mydvi-links (&optional c stem &rest rest)
"Visit a temporary buffer containing hyperlinks for mydvi."
(interactive)
(setq c (or c "{c}"))
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-mydvi-links ,c ,stem ,@rest)
(find-efunction 'find-mydvi-links)
;; Body:
""
,(ee-template `(c stem) "\
;; «.{c}» (to \"{c}\")
;; «{c}» (to \".{c}\")
\(code-c-d \"{c}\" \"~/LATEX/{stem}.tex\" :anchor)
\(code-dvi \"{c}\" \"~/LATEX/{stem}.dvi\")
\(code-pdftotext \"{c}\" \"~/LATEX/{stem}.pdf\")
;; (find-{c} \"\" \"lambda-intro\")
;; (find-{c}page 25 \"17. Objects of Line Type\")
;; (find-{c}text)
")
) rest))
;; «diagskel» (to ".diagskel")
;; Used to be here: (find-angg ".emacs-tex.el" "diagskel")
;;
(defun diagskel () (interactive)
(insert "
%D diagram ??
%D 2Dx 100
%D 2D 100
%D 2D
%D 2D +20
%D 2D
%D # ren ==>
%D
%D ((
%D
%D ))
%D enddiagram
%D
$$\\pu
\\diag{??}
$$
"))
;; «ee-latex-header» (to ".ee-latex-header")
(defun ee-latex-header (d/ stem)
(ee-template0 "\
% (find-angg \"{d/}{stem}.tex\")
% (find-dn4ex \"edrx08.sty\")
% (defun c () (interactive) (find-zsh \"cd ~/{d/} && latex {stem}.tex\"))
% (defun c () (interactive) (find-zsh \"cd ~/{d/} && pdflatex {stem}.tex\"))
% (eev \"cd ~/{d/} && Scp {stem}.pdf edrx@anggtwu.net:slow_html/{d/}\")
% (defun d () (interactive) (find-dvipage \"~/{d/}{stem}.dvi\"))
% (find-dvipage \"~/{d/}{stem}.dvi\")
% (find-pspage \"~/{d/}{stem}.ps\")
% (find-xpdfpage \"~/{d/}{stem}.pdf\")
% (find-evincepage \"~/{d/}{stem}.pdf\")
% (find-bgprocess \"evince ~/{d/}{stem}.pdf\")
% (find-zsh0 \"cd ~/{d/} && dvipdf {stem}.dvi {stem}.pdf\")
% (find-zsh0 \"cd ~/{d/} && dvips -D 300 -o {stem}.ps {stem}.dvi\")
% (find-zsh0 \"cd ~/{d/} && dvips -D 600 -P pk -o {stem}.ps {stem}.dvi && ps2pdf {stem}.ps {stem}.pdf\")
% (find-zsh0 \"cd ~/{d/} && dvips -D 300 -o tmp.ps tmp.dvi\")
% (find-pspage \"~/{d/}tmp.ps\")
% (ee-cp \"~/{d/}{stem}.pdf\" (ee-twupfile \"{d/}{stem}.pdf\") 'over)
% (ee-cp \"~/{d/}{stem}.pdf\" (ee-twusfile \"{d/}{stem}.pdf\") 'over)
% (find-twusfile \"{d/}\" \"{stem}\")
% http://anggtwu.net/{d/}{stem}.pdf
"))
;; (find-estring (ee-latex-header "quadradinho/" "quadradinho-a5"))
;; «find-tail-call-links» (to ".find-tail-call-links")
;; Orig skel: (find-find-links-links "\\M-P" "tail-call" "stem firstargs")
;; New skel: (find-find-links-links-new "tail-call" "stem firstargs" "")
;; Test:
(defun find-tail-call-links (&optional stem firstargs &rest rest)
"Visit a temporary buffer containing hyperlinks for tail-call."
(interactive)
(setq stem (or stem "{stem}"))
(setq firstargs (or firstargs "{firstargs}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-tail-call-links ,stem ,firstargs ,@rest)
(find-efunction 'find-tail-call-links)
(emacs-lisp-mode)
;; Body:
""
,(ee-template `(stem ("c fname" ,firstargs)) "\
;; (find-efunction 'code-{stem})
;; find-{stem}-page
;;
\(defalias 'find-{stem}page
'find-{stem}-page)
\(defun find-{stem}-page (fname &optional page &rest rest)
(find-bgprocess (ee-find-{stem}-page fname page)))
\(defvar ee-find-{stem}-page-args nil)
\(defun ee-find-{stem}-page (fname &optional page)
`(\"{stem}\" ,@ee-find-{stem}-page-args
,@(if page `(,(format \"--page=%d\" page)))
,fname))
;; code-{stem}: top-level functions
;;
\(defun code-{stem} ({c fname} &rest rest)
(eval (ee-read (apply 'ee-code-{stem} {c fname} rest))))
\(defun find-code-{stem} ({c fname} &rest rest)
(find-estring-elisp (apply 'ee-code-{stem} {c fname} rest)))
\(defun ee-code-{stem} ({c fname} &rest rest)
(concat (ee-template0 \"\\
(defun find-{c}page (&optional page &rest rest)
(find-{stem}-page fname page))
\") (ee-code-{stem}-rest rest)))
;; Support for extra arguments
;;
\(defun ee-code-{stem}-rest (rest)
(ee-tail-call \"ee-code-{stem}-%S\" rest))
\(defun ee-code-{stem}-:key (arg &rest rest)
(concat (ee-template0 \"\\
(defun find-{c}page () ...)
\") (ee-code-{stem}-rest rest)))
;; Test:
;; (find-code-{stem} \"{c}\" \"{fname}\" :key \"{foo}\" :key \"{bar}\")
")
) rest))
;; Tests:
;; (find-tail-call-links)
;; (find-tail-call-links "xpdf" "c fname")
;; (find-tail-call-links "xpdf" "c fname")
;; «find-pdflikedef-links» (to ".find-pdflikedef-links")
;; (find-find-links-links "pdflikedef" "stem firstargs")
(defun find-pdflikedef-links (&optional stem firstargs &rest rest)
"Visit a temporary buffer containing hyperlinks for pdflikedef."
(interactive)
(setq stem (or stem "{stem}"))
(setq firstargs (or firstargs "{firstargs}"))
(apply 'find-elinks-elisp `(
;; Convention: the first sexp always regenerates the buffer.
(find-pdflikedef-links ,stem ,firstargs ,@rest)
(find-pdflikedef-links ,stem "c fname" ,@rest)
(find-efunction 'find-pdflikedef-links)
;; Body:
""
,(ee-template0 "\
\(defun find-{stem}-page (fname &optional page &rest rest)
(find-bgprocess (ee-find-{stem}-page fname page)))
\(defvar ee-find-{stem}-page-options '())
\(defun ee-find-{stem}-page (fname &optional page)
`(\"{stem}\"
,@ee-find-{stem}-page-options
,@(if page `(,(format \"--page=%d\" page)))
,fname))
;; (find-efunction 'code-{stem})
;; find-{stem}page
;; find-{stem}-page
;; code-{stem}
;;
\(defalias 'find-{stem}page
'find-{stem}-page)
\(defun code-{stem} ({firstargs} &rest rest)
(eval (ee-read (apply 'ee-code-{stem} {firstargs} rest))))
\(defun find-code-{stem} ({firstargs} &rest rest)
(find-estring-elisp (apply 'ee-code-{stem} {firstargs} rest)))
\(defun ee-code-{stem} ({firstargs} &rest rest)
(concat (ee-template0 \"\\
\\(defun find-{<}c{>}page (&optional page &rest rest)
(find-{stem}-page {<}(ee-pp0 fname){>} page))
\") (ee-code-pdftext-rest rest)))
;; Tests:
;; (find-epp (ee-find-{stem}-page \"/tmp/foo.pdf\"))
;; (find-epp (ee-find-{stem}-page \"/tmp/foo.pdf\" 2))
;; (find-{stem}-page \"/tmp/foo.pdf\")
;; (find-{stem}-page \"/tmp/foo.pdf\" 2)
;;
;; (find-code-{stem} \"foo\" \"/tmp/foo.pdf\")
;; (code-{stem} \"foo\" \"/tmp/foo.pdf\")
;; (find-foopage)
;; (find-foopage 2)
;; (code-pdftotext \"foo\" \"/tmp/foo.pdf\")
")
) rest))
;; Tests:
;; (find-pdflikedef-links)
;; (find-pdflikedef-links "xpdf" "c fname")
;;
;; (find-epp (ee-find-xpdf-page "/tmp/foo.pdf"))
;; (find-epp (ee-find-xpdf-page "/tmp/foo.pdf" 2))
;; (find-xpdf-page "/tmp/foo.pdf")
;; (find-xpdf-page "/tmp/foo.pdf" 2)
;;
;; (find-code-xpdf "foo" "/tmp/foo.pdf")
;; (code-xpdf "foo" "/tmp/foo.pdf")
;; (find-foopage)
;; (find-foopage 2)
;; (code-pdftotext "foo" "/tmp/foo.pdf")
;; «find-eev-video-record-links» (to ".find-eev-video-record-links")
;; (find-find-links-links "<none>" "eev-video" "stem")
;; A test: (find-eev-video-record-links)
(defun find-eev-video-record-links-old (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks
`((find-eev-video-record-links ,stem ,@pos-spec-list)
(find-eev-video-record-links "2" ,@pos-spec-list)
(find-eev-video-record-links nil ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-eev-video-record-links)
,(ee-template0 "\
;; (emacs-lisp-mode)
;; (sh-mode)
# Edit
#
# (find-angg \".zshrc\" \"eev2-files\")
# (find-eev \"eev-readme.el\")
# (find-angg \"eev-videos/\")
# (find-angg \"eev-videos/0.sh\")
# (find-angg \"eev-videos/2.sh\")
# (find-angg \"eev-videos/2.el\")
# (eee)
# (find-zsh \"eev2-build-tgz; cp -v ~/eev-videos/2.el /tmp/\")
# (find-sh0 \"~/eev-videos/2.sh record\")
# Rehearse / record / upload
#
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
eev2-build-tgz; cp -v ~/eev-videos/2.el /tmp/
#eev2-upload -v; rm -v /tmp/eev2.tgz /tmp/2.el
~/eev-videos/2.sh record
killall avconv
# (find-mplayer \"/tmp/out.mp4\")
# Copy video and audio
# (find-fline \"~/eev-videos/\")
# (find-fline \"~/eev-videos/\" \"video{stem}-\")
# (find-fline \"/tmp/\")
# (find-fline \"/tmp/pen/VOICE/FOLDER01/\")
#
laf -h /tmp/out.mp4
cp -iv /tmp/out.mp4 ~/eev-videos/video{stem}-video.mp4
#
# (find-pen-links)
mkdir /tmp/pen/
sudo mount -o ro /dev/sdb1 /tmp/pen/
sudo mount -o ro /dev/sdc1 /tmp/pen/
sudo mount -o uid=$UID /dev/sdb1 /tmp/pen/
sudo mount -o uid=$UID /dev/sdc1 /tmp/pen/
# (find-fline \"/tmp/pen/\")
# (find-fline \"/tmp/pen/VOICE/FOLDER01/\")
#
A0=$('ls' /tmp/pen/VOICE/FOLDER01/* | tail -n 1)
echo $A0
laf -h $A0
cp -iv $A0 ~/eev-videos/video{stem}-audio.mp3
#
sudo umount /tmp/pen
sync
# Play
#
;; (eev-avadj-mode 0)
;; (eev-avadj-mode 1)
;; (find-fline \"~/eev-videos/\")
\(code-audio \"lastaudio\" \"~/eev-videos/video{stem}-audio.mp3\")
\(code-video \"lastvideo\" \"~/eev-videos/video{stem}-video.mp4\")
\(code-video \"lastall\" \"~/eev-videos/video{stem}.mp4\")
;; (find-lastaudio)
;; (find-lastvideo)
;; (find-lastall)
# Stick audio and video together
# (find-es \"ffmpeg\" \"adding-audio\")
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
cd ~/eev-videos/
avconv -i video{stem}-video.mp4 \\
-i video{stem}-audio.mp3 \\
-map 0 -map 1 -c copy \\
video{stem}.mp4
# Upload
# http://anggtwu.net/eev-videos/
# http://anggtwu.net/eev-videos/README.html
# http://anggtwu.net/eev-videos/video{stem}.mp4
# (find-twusfile \"eev-videos/\")
# (find-angg \"eev-videos/README\")
Scp-np ~/eev-videos/video{stem}.mp4 \\
edrx@anggtwu.net:/home/edrx/slow_html/eev-videos/
\(defun e () (interactive) (find-angg \"eev-videos/2.sh\"))
\(defun r () (interactive) (find-sh0 \"~/eev-videos/2.sh record\"))
\(defun k () (interactive) (message \"%s\" (find-sh0 \"killall -v ffmpeg\")))
;;
\(defun ev () (interactive)
(find-3L '(find-angg \"eev-videos/0.sh\") '(find-angg \"eev-videos/2.sh\")))
\(defun ee () (interactive)
(find-3L '(find-angg \"eev-videos/2.sh\") '(find-eev \"eev-readme.el\")))
\(defun eee () (interactive)
(find-wset '\"13_o2_o_o\"
'(find-angg \"eev-videos/2.sh\")
'(find-eev \"eev-readme.el\")
'(find-angg \"eev-videos/2.el\")
))
# (find-eev \"eev-readme.el\")
# (find-zsh0 \"eev2-build-tgz && cp -v ~/eev-videos/2.el /tmp/\")
# (find-angg \"eev-videos/0.sh\")
# (find-angg \"eev-videos/2.sh\")
# (find-angg \"eev-videos/2.el\")
# (find-es \"ffmpeg\" \"avconv\")
# Edit scripts
# (find-file \"~/eev-videos/video2-pt-video.mp4\")
# (find-fline \"/tmp/pen/VOICE/FOLDER01/\")
# (find-angg \"eev-videos/\")
# (find-mplayer \"/tmp/out.mp4\")
")
)
pos-spec-list))
;; A test: (find-eev-video-record-links "2pt")
;; «find-eev-create-tar-links» (to ".find-eev-create-tar-links")
;; Skel: (find-find-links-links-new "eev-create-tar" "date" "")
;; Test: (find-eev-create-tar-links)
;;
(defun find-eev-create-tar-links (&optional date &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for eev-create-tar."
(interactive)
(setq date (or date "{date}"))
(apply
'find-elinks
`((find-eev-create-tar-links ,date ,@pos-spec-list)
(find-eev-create-tar-links "20201022")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-eev-create-tar-links)
""
,(ee-template0 "\
# http://elpa.gnu.org/packages/eev.html
# http://elpa.gnu.org/packages/eev-20201013.tar
# (find-eev2-links)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv /tmp/eev-g
mkdir /tmp/eev-g/
cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git .
cd /tmp/eev-g/
git checkout UTF-8
rm -Rfv /tmp/eev-tar/
mkdir -p /tmp/eev-tar/eev-{date}/
cd /tmp/eev-tar/eev-{date}/
cp -iv /tmp/eev-g/* .
rm -v /tmp/eev-tar/eev-{date}/ChangeLog
cd /tmp/eev-tar/
tar -cvf /tmp/eev-tar/eev-{date}.tar eev-{date}/
Scp-np /tmp/eev-tar/eev-{date}.tar edrx@anggtwu.net:public_html/tmp/
# (find-fline \"/tmp/eev-tar/eev-{date}.tar\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -fv /tmp/eev-{date}.tar
cd /tmp/
wget http://anggtwu.net/tmp/eev-{date}.tar
# (package-install-file \"/tmp/eev-{date}.tar\")
")
)
pos-spec-list))
;; «find-screencast-links» (to ".find-screencast-links")
;; (find-find-links-links "{k}" "screencast" "geom")
;; A test: (find-screencast-links)
(defun find-screencast-links (&optional geom &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
;; (setq geom (or geom "{geom}"))
(setq geom (or geom (frame-width-height)))
(apply 'find-elinks
`((find-screencast-links ,geom ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-screencast-links)
""
(defalias 'r 'ee-scast-start)
(defalias 's 'ee-scast-stop)
(find-fline "/tmp/" "out.mp4")
(find-video "/tmp/out.mp4")
""
(frame-width--)
(frame-width++)
(frame-height--)
(frame-height++)
(frame-width-height)
(frame-width-height-set " 80c 37c")
(frame-width-height-set "167c 46c")
(frame-width-height-set "108c 37c")
)
pos-spec-list))
;; «find-angg-upload-links» (to ".find-angg-upload-links")
;; «find-blogme-upload-links» (to ".find-blogme-upload-links")
;; «find-escript-upload-links» (to ".find-escript-upload-links")
;; (find-find-links-links "<none>" "blogme-upload" "stem")
;; A test: (find-blogme-upload-links "2012.1")
;; (find-eapropos "suffix")
(defalias 'bup 'find-blogme-upload-links)
(defun find-blogme-upload-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
;; (ee-rmprefix "~/TH/" "~/THfname "")
(setq stem (or stem "{stem}"))
(apply 'find-elinks
`((find-blogme-upload-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-blogme-upload-links)
(find-TH ,stem)
,(ee-template0 "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# makeR
# touch ~/TH/{stem}.blogme
makeR1 {stem}.html
scp {stem}.html $LINP/{stem}.html
Scp-np {stem}.html $TWUP/{stem}.html
Scp-np TH/{stem}.blogme $TWUP/TH/{stem}.blogme
# http://anggtwu.net/{stem}.html
# file:///home/edrx/TH/R/{stem}.html")
)
pos-spec-list))
(defun find-angg-upload-links (&optional dir stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
;; (ee-rmprefix "~/TH/" "~/THfname "")
(setq dir (or dir "{stem}"))
(setq stem (or stem "{stem}"))
(apply 'find-elinks
`((find-angg-upload-links ,dir ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-angg-upload-links)
;; (find-angg ,stem)
,(ee-template0 "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# makeR
# touch ~/TH/{stem}.blogme
makeL1 {dir}{stem}.html
makeR1 {dir}{stem}.html
Scp-np {dir}{stem} {dir}{stem}.html $TWUP/{dir}
# http://anggtwu.net/{dir}{stem}.html
# http://anggtwu.net/{dir}{stem}
# file:///home/edrx/TH/L/{dir}{stem}.html
# file:///home/edrx/TH/R/{dir}{stem}.html")
)
pos-spec-list))
;; «find-a2html-upload-links» (to ".find-a2html-upload-links")
;; (find-blogme3 "options.lua" "dooptions")
;; (find-blogme3 "options.lua" "dooptions" "dooption_a2html")
;; (find-a2html-upload-links "blogme3/options.lua" "dooptions")
;;
(defalias 'aup 'find-a2html-upload-links)
(defun find-a2html-upload-links (&optional stem tag &rest pos-spec-list)
"Visit a temporary buffer containing a script to upload an ascii file to angg."
(interactive)
(setq stem (or stem
(ee-rmprefix "~/" (ee-fname-here))
"{stem}"))
(setq tag (or tag "{tag}"))
(apply 'find-elinks
`((find-a2html-upload-links ,stem ,tag ,@pos-spec-list)
(find-a2html-upload-links ,stem ,(ee-last-kill-matches "^[!-~]+$"))
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-a2html-upload-links)
(find-angg ,stem ,tag)
(find-angg ,stem)
,(ee-template0 "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# makeR
# touch ~/{stem}
makeR1 {stem}.html
scp {stem}.html $LINP/{stem}.html
scp {stem} $LINP/{stem}
Scp-np {stem}.html $TWUP/{stem}.html
Scp-np {stem} $TWUP/{stem}
* (eepitch-linode)
* (eepitch-kill)
* (eepitch-linode)
cd ~/public_html/
makepageindexhtmls
# http://anggtwu.net/{stem}.html
# file:///home/edrx/TH/R/{stem}.html
# http://anggtwu.net/{stem}.html#{tag}
# file:///home/edrx/TH/R/{stem}.html#{tag}
# (find-angg \"{stem}\" \"{tag}\")
# (find-anggwgeta \"{stem}\" \"{tag}\")
# (find-wget \"http://anggtwu.net/{stem}\")
# (find-wget-elisp \"http://anggtwu.net/{stem}\")
# (find-wgeta-elisp \"http://anggtwu.net/{stem}\")
# (find-wgeta-elisp \"http://anggtwu.net/{stem}\" \"{tag}\")
")
)
pos-spec-list))
;; «find-escript-upload-links» (to ".find-escript-upload-links")
;; (find-find-links-links "<none>" "escript-upload" "stem")
;; A test: (find-escript-upload-links "python")
(defalias 'eup 'find-escript-upload-links)
(defun find-escript-upload-links (&optional stem tag &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
;; (setq stem (or stem "{stem}"))
(setq stem (or stem
(ee-rmprefixsuffix "~/e/" ".e" (ee-fname-here))
"{stem}"))
(setq tag (or tag "{tag}"))
(apply 'find-elinks
`((find-escript-upload-links ,stem ,tag ,@pos-spec-list)
(find-escript-upload-links ,stem ,(ee-last-kill-matches "^[!-~]+$"))
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-escript-upload-links)
""
(find-es ,stem)
(find-es ,stem ,tag)
""
(find-blogme3 "sandwiches-defs.lua")
(find-blogme3 "sandwiches-defs.lua" "code_helponly2_lines")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeL; makeR
touch ~/e/{stem}.e
makeR1 e/{stem}.e.html
scp e/{stem}.e.html $LINP/e/{stem}.e.html
scp e/{stem}.e $LINP/e/{stem}.e
Scp-np e/{stem}.e.html $TWUP/e/{stem}.e.html
Scp-np e/{stem}.e $TWUP/e/{stem}.e
# http://anggtwu.net/e/{stem}.e.html
# file:///home/edrx/TH/R/e/{stem}.e.html
# http://anggtwu.net/e/{stem}.e.html#{tag}
# file:///home/edrx/TH/R/e/{stem}.e.html#{tag}
# (find-es \"{stem}\" \"{tag}\")
# (find-angg \"e/{stem}.e\" \"{tag}\")
# (find-anggwgeta \"e/{stem}.e\" \"{tag}\")
")
)
pos-spec-list))
;; «find-latex-upload-links» (to ".find-latex-upload-links")
;; (find-find-links-links "{k}" "latex-upload" "stem")
;; A test: (find-latex-upload-links "2015-2-GA-material")
(defun find-latex-upload-links (&optional stem dir)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(setq dir (or dir "/tmp/edrx-latex/"))
(find-elinks
`((find-latex-upload-links ,stem ,dir)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-latex-upload-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Upload pdf
cd ~/LATEX/
scp {stem}.pdf $LINP/LATEX/{stem}.pdf
scp {stem}.pdf $LINS/LATEX/{stem}.pdf
Scp-np {stem}.pdf $TWUP/LATEX/{stem}.pdf
Scp-np {stem}.pdf $TWUS/LATEX/{stem}.pdf
# Test the pdf (open the urls in a browser):
# (find-pdf-page \"~/LATEX/{stem}.pdf\")
# http://anggtwu.net/LATEX/{stem}.pdf
# file:///home/edrx/LATEX/{stem}.pdf
# Make .tgz and upload it
cd ~/LATEX/
flsfiles-tgz {stem}.fls {stem}.tgz
Scp-np {stem}.tgz $LINP/LATEX/{stem}.tgz
Scp-np {stem}.tgz $LINS/LATEX/{stem}.tgz
Scp-np {stem}.tgz $TWUP/LATEX/{stem}.tgz
Scp-np {stem}.tgz $TWUS/LATEX/{stem}.tgz
# http://anggtwu.net/LATEX/{stem}.tgz
# Make .zip and upload it
cd ~/LATEX/
flsfiles-zip {stem}.fls {stem}.zip
Scp-np {stem}.zip $LINP/LATEX/{stem}.zip
Scp-np {stem}.zip $LINS/LATEX/{stem}.zip
Scp-np {stem}.zip $TWUP/LATEX/{stem}.zip
Scp-np {stem}.zip $TWUS/LATEX/{stem}.zip
# http://anggtwu.net/LATEX/{stem}.zip
# Test the .tgz.
# The e-script below downloads, unpacks and compiles the .tgz in {dir}
#
rm -rfv /tmp/{stem}.tgz
rm -rfv {dir}
cd /tmp/
wget http://anggtwu.net/LATEX/{stem}.tgz
# curl -O http://anggtwu.net/LATEX/{stem}.tgz
# cp -v ~/LATEX/{stem}.tgz .
mkdir {dir}
tar -C {dir} -xvzf /tmp/{stem}.tgz
cd {dir}
lualatex {stem}.tex
# (find-fline \"{dir}\")
# (find-pdf-page \"{dir}{stem}.pdf\")
# (find-pdf-text \"{dir}{stem}.pdf\")
# Test the .zip.
# The e-script below downloads, unpacks and compiles the .zip in {dir}
#
rm -rfv /tmp/{stem}.zip
rm -rfv {dir}
cd /tmp/
wget http://anggtwu.net/LATEX/{stem}.zip
# cp -v ~/LATEX/{stem}.zip .
mkdir {dir}
unzip -d {dir} /tmp/{stem}.zip
cd {dir}
lualatex {stem}.tex
# (find-fline \"{dir}\")
# (find-pdf-page \"{dir}{stem}.pdf\")
# (find-pdf-text \"{dir}{stem}.pdf\")
% (defun u () (interactive) (find-latex-upload-links \"{stem}\"))
")
)))
;; «find-book-links» (to ".find-book-links")
;;
(defun ee-dired-to-fname0 ()
(and (eq major-mode 'dired-mode)
(file-name-nondirectory (ee-dired-to-fname))))
(defun find-book-links (&optional fmt dir fname author stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive (list nil nil (and (ee-dired-to-fname0))))
(setq fmt (or fmt "pdf"))
(setq dir (or dir "{dir}"))
(setq fname (or fname "{fname}"))
(setq author (or author "{author}"))
(setq stem (or stem "{stem}"))
(apply 'find-elinks
`((find-book-links ,fmt ,dir ,fname ,author ,stem)
(find-book-links "djvu" ,dir ,fname ,author ,stem)
(find-book-links ,fmt "__alg" ,fname ,author ,stem)
(find-book-links ,fmt "__etc" ,fname ,author ,stem)
(find-book-links ,fmt "__cats" ,fname ,author ,stem)
(find-book-links ,fmt "__comp" ,fname ,author ,stem)
(find-book-links ,fmt "__phil" ,fname ,author ,stem)
(find-book-links ,fmt "__wacs" ,fname ,author ,stem)
(find-book-links ,fmt "__logic" ,fname ,author ,stem)
(find-book-links ,fmt "__small" ,fname ,author ,stem)
(find-book-links ,fmt "__gender" ,fname ,author ,stem)
(find-book-links ,fmt "__physics" ,fname ,author ,stem)
(find-book-links ,fmt "__analysis" ,fname ,author ,stem)
(find-book-links ,fmt "__discrete" ,fname ,author ,stem)
(find-book-links ,fmt "__politics" ,fname ,author ,stem)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-book-links)
""
,(ee-template0 "\
# (find-efunction 'find-book-links)
# (find-books \"{dir}/{dir}.el\")
# (find-books \"{dir}/{dir}.el\" \"{author}\")
# (find-sh0 \"mv -iv {fname} ~/books/{dir}/\")
# (ee-copy-rest 1 ' (find-angg \"books/{dir}/{dir}.el\"))
;; <{author}>
;; (find-books \"{dir}/{dir}.el\" \"{author}\")
\(code-{fmt}-page \"{stem}\" \"~/books/{dir}/{fname}\")
\(code-{fmt}-text \"{stem}\" \"~/books/{dir}/{fname}\" 1)
;; (find-{stem}page)
;; (find-{stem}text \"\")
;; (find-{stem}text \"Contents\")
")
)
pos-spec-list))
;; (find-book-links)
;; «find-lua-links» (to ".find-lua-links")
;; (find-find-links-links "{k}" "lua" "fname")
;;
;; Test: (find-sh0 "rm -v /tmp/foo.lua")
;; (find-lua-links "/tmp/foo.lua")
;;
(defun find-lua-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq fname (or fname "{fname}"))
(let ((dir (file-name-directory fname))
(fname0 (file-name-nondirectory fname)))
(find-elinks
`((find-lua-links ,fname ,@pos-spec-list)
(find-lua-links "~/LUA/foo.lua")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lua-links)
""
(find-fline ,dir ,fname0)
(find-sh0 ,(format "touch %s && chmod 755 %s" fname fname))
""
(ee-copy-rest 1 '(find-fline ,fname))
""
,(ee-template0 "\
#!/usr/bin/env lua5.1
-- (defun c () (interactive) (find-sh \"cd {dir}; ./{fname0}\"))
-- (defun d () (interactive) (find-fline \"{dir}\"))
-- (defun e () (interactive) (find-fline \"{fname}\"))
--
-- (find-sh \"./{fname0} arg1 arg2\")
--
-- (find-lua51manual \"\")
-- (find-pil2page 8 \"Contents\")
-- (find-pil2text 8 \"Contents\")
-- (find-fline \"~/LUA/lua50init.lua\")
print(\"Hello from {fname}\")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{fname0}\"
--]]\
")
))))
;; Test: (find-lua-links "~/LUA/foo.lua")
(defun find-lua-links-old (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq fname (or fname "{fname}"))
(let ((fname- (file-name-nondirectory fname)))
(apply 'find-elinks
`((find-lua-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lua-links)
""
(kill-new ,fname)
(find-blogme3 "anggmake.lua" "anggtranslate")
""
(ee-copy-rest 1 '(find-angg ,fname))
""
,(ee-template0 "\
-- This file:
-- http://anggtwu.net/{fname}
-- http://anggtwu.net/{fname}.html
-- (find-angg \"{fname}\")
--
-- (find-lua51manualw3m \"\")
-- (find-books \"__comp/__comp.el\" \"ierusalimschy\")
-- (find-pil2page 8 \"Contents\")
-- (find-pil2text 8 \"Contents\")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{fname-}\"
--]]
-- Local Variables:
-- coding: raw-text-unix
-- End:
")
)
pos-spec-list)))
;; Test: (find-lua-links)
;; (find-lua-links "LUA/youtube.lua")
;; «find-scast-links» (to ".find-scast-links")
;; (find-find-links-links "{k}" "scast" "prep stem sexp")
;; A test: (find-scast-links "R=6" "git-animations" '(find-es "git" "git-animations"))
(defun find-scast-links (&optional prep stem sexp &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq prep (or prep "{prep}"))
(setq stem (or stem "{stem}"))
(setq sexp (or sexp "{sexp}"))
(apply 'find-elinks
`((find-scast-links ,prep ,stem ,sexp ,@pos-spec-list)
(find-scast-links "R=6;r" ,stem ,sexp ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-scast-links)
""
,(ee-template0 "\
\(scast \"k\")
\(progn
(scast \"R=6;c;g\")
{(ee-S sexp)}
)
\(scast \"k\")
# (find-video \"/tmp/out.mp4\")
# file:///tmp/out.mp4
#
# (find-fline \"~/screencasts/\" \"{stem}.mp4\")
# (find-sh0 \"cp -v /tmp/out.mp4 ~/screencasts/{stem}.mp4\")
# (find-video \"~/screencasts/{stem}.mp4\"
# file:///home/edrx/screencasts/{stem}.mp4
# http://anggtwu.net/screencasts/
# http://anggtwu.net/screencasts/{stem}.mp4
")
)
pos-spec-list))
;; Test: (find-scast-links ___)
;; «find-python-links» (to ".find-python-links")
;; (find-find-links-links "{k}" "python" "dir fname")
;; A test: (find-python-links ___)
(defun find-python-links (&optional dir fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq dir (or dir "{dir}"))
(setq fname (or fname "{fname}"))
(apply 'find-elinks
`((find-python-links ,dir ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-python-links)
""
(kill-new ,(concat " " dir fname "\n"))
(find-blogme3 "anggmake.lua" "anggtranslate")
(ee-copy-rest 1 '(find-angg ,(concat dir fname)))
""
,(ee-template0 "\
# vim: set fileencoding=latin-1 :
# This file:
# http://anggtwu.net/{dir}{fname}
# http://anggtwu.net/{dir}{fname}.html
# (find-angg \"{dir}{fname}\")
#
# Edrx:
# (defun p () (interactive) (find-angg \"{dir}{fname}\"))
# (defun pu () (interactive) (find-angg \"{dir}{fname}\" \"upload\"))
#
# Tau:
# (defun p () (interactive) (find-fline \"/tmp/{fname}\"))
# (defun d () (interactive) (find-sh \"cd /tmp/ && wget -O {fname} http://anggtwu.net/{dir}{fname}\"))
# (defun w () (interactive) (find-wget \"http://anggtwu.net/{dir}{fname}\"))
#
# file:///usr/share/doc/python2.7/html/howto/regex.html
# file:///usr/share/doc/python2.7/html/reference/executionmodel.html
\"\"\"
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile(\"{fname}\", globals())
\"\"\"
\"\"\"
# <upload>
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeR1 {dir}{fname}.html
Scp-np {dir}{fname}.html {dir}{fname} $TWUP/{dir}
# http://anggtwu.net/{dir}{fname}.html
\"\"\"
# Local Variables:
# coding: raw-text-unix
# End:
")
)
pos-spec-list))
;; Test: (find-python-links "foo/" "bar.py")
;; Test: (find-python-links "fbcache/" "q.py")
;; «find-fbc-links» (to ".find-fbc-links")
;; (find-find-links-links "{k}" "fbc" "id")
;; Test: (find-fbc-links "1412988905624743")
;;
(defun find-fbc-links (&optional id &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Python-fbcache."
(interactive "sId: ")
(setq id (or id "{id}"))
(apply 'find-elinks
`((find-fbc-links ,id)
(find-fbc-links "1412988905624743")
(find-fbcacheluafile ,id)
;; Convention: the first sexp always regenerates the buffer.
(find-angg "fbcache/urls.lua" "prubyks")
(find-angg ".pythonrc.py")
(find-efunction 'find-fbc-links)
""
,(ee-template0 "\
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
o = ggo(\"{id}\")
type(o)
o.keys()
o['description'][:1000]
o['message'][:1000]
")
)
pos-spec-list))
;; Test: (find-fbc-links "1412988905624743")
;; «find-lualatex-links» (to ".find-lualatex-links")
;; (find-find-links-links "{k}" "lualatex" "stem tla")
;; Tests: (find-lualatex-links)
;; (find-lualatex-links "2022yoneda-pseudocode" "yps")
(defun find-lualatex-links (&optional stem tla &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(setq tla (or tla "{tla}"))
(apply 'find-elinks
`((find-lualatex-links ,stem ,tla ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lualatex-links)
""
(kill-new ,(concat " LATEX/" stem ".tex\n"))
(find-blogme3 "anggmake.lua" "anggtranslate")
(find-blogme3 "anggmake.lua" "anggtranslate" "LATEX/")
(find-blogme3 "anggmake.lua" "anggtranslate" "LATEX/2019.mk")
""
(find-eeshortdefs)
(code-etex-tla ,tla ,stem)
""
(ee-copy-rest 1 '(find-LATEX ,(concat stem ".tex")))
""
,(ee-template0 "\
% (find-LATEX \"{stem}.tex\")
% (defun c () (interactive) (find-LATEXsh \"lualatex -record {stem}.tex\" :end))
% (defun C () (interactive) (find-LATEXSH \"lualatex {stem}.tex\" \"Success!!!\"))
% (defun D () (interactive) (find-pdf-page \"~/LATEX/{stem}.pdf\"))
% (defun d () (interactive) (find-pdftools-page \"~/LATEX/{stem}.pdf\"))
% (defun e () (interactive) (find-LATEX \"{stem}.tex\"))
% (defun u () (interactive) (find-latex-upload-links \"{stem}\"))
% (defun v () (interactive) (find-2a '(e) '(d)))
% (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g))
% (defun d0 () (interactive) (find-ebuffer \"{stem}.pdf\"))
% (code-eec-LATEX \"{stem}\")
% (find-pdf-page \"~/LATEX/{stem}.pdf\")
% (find-sh0 \"cp -v ~/LATEX/{stem}.pdf /tmp/\")
% (find-sh0 \"cp -v ~/LATEX/{stem}.pdf /tmp/pen/\")
% file:///home/edrx/LATEX/{stem}.pdf
% file:///tmp/{stem}.pdf
% file:///tmp/pen/{stem}.pdf
% http://anggtwu.net/LATEX/{stem}.pdf
% (find-LATEX \"2019.mk\")
% (find-lualatex-links \"{stem}\" \"{tla}\")")
;;
"
\\documentclass[oneside,12pt]{article}
\\usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es \"tex\" \"hyperref\")
\\usepackage{amsmath}
\\usepackage{amsfonts}
\\usepackage{amssymb}
\\usepackage{pict2e}
\\usepackage[x11names,svgnames]{xcolor} % (find-es \"tex\" \"xcolor\")
%\\usepackage{colorweb} % (find-es \"tex\" \"colorweb\")
%\\usepackage{tikz}
%
% (find-dn6 \"preamble6.lua\" \"preamble0\")
%\\usepackage{proof} % For derivation trees (\"%:\" lines)
%\\input diagxy % For 2D diagrams (\"%D\" lines)
%\\xyoption{curve} % For the \".curve=\" feature in 2D diagrams
%
\\usepackage{edrx21} % (find-LATEX \"edrx21.sty\")
\\input edrxaccents.tex % (find-LATEX \"edrxaccents.tex\")
\\input edrx21chars.tex % (find-LATEX \"edrx21chars.tex\")
\\input edrxheadfoot.tex % (find-LATEX \"edrxheadfoot.tex\")
\\input edrxgac2.tex % (find-LATEX \"edrxgac2.tex\")
%\\input 2017planar-has-defs.tex % (find-LATEX \"2017planar-has-defs.tex\")
%
%\\usepackage[backend=biber,
% style=alphabetic]{biblatex} % (find-es \"tex\" \"biber\")
%\\addbibresource{catsem-slides.bib} % (find-LATEX \"catsem-slides.bib\")
%
% (find-es \"tex\" \"geometry\")
\\begin{document}
\\catcode`\\^^J=10
\\directlua{dofile \"dednat6load.lua\"} % (find-LATEX \"dednat6load.lua\")
% %L dofile \"edrxtikz.lua\" -- (find-LATEX \"edrxtikz.lua\")
% %L dofile \"edrxpict.lua\" -- (find-LATEX \"edrxpict.lua\")
% \\pu
%\\printbibliography
\\GenericWarning{Success:}{Success!!!} % Used by `M-x cv'
\\end{document}
"
,(ee-template0 "\
% __ __ _
% | \\/ | __ _| | _____
% | |\\/| |/ _` | |/ / _ \\
% | | | | (_| | < __/
% |_| |_|\\__,_|_|\\_\\___|
%
% <make>
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-LATEXfile \"2019planar-has-1.mk\")
make -f 2019.mk STEM={stem} veryclean
make -f 2019.mk STEM={stem} pdf
% Local Variables:
% coding: utf-8-unix
% ee-tla: \"{tla}\"
% End:
")
) pos-spec-list))
;; «find-dlualatex-links» (to ".find-lualatex-links")
;; (find-find-links-links "{k}" "dlualatex" "stem")
;; A test: (find-dlualatex-links)
(defun find-dlualatex-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(apply 'find-elinks
`((find-dlualatex-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-dlualatex-links)
""
(kill-new ,(concat " dednat6/" stem ".tex\n"))
(find-blogme3 "anggmake.lua" "anggtranslate")
(find-blogme3 "anggmake.lua" "anggtranslate" " dednat6/")
(ee-copy-rest 1 '(find-dednat6 ,(concat stem ".tex")))
""
,(ee-template0 "\
% (find-angg \"dednat6/{stem}.tex\")
% (defun c () (interactive) (find-dednat6sh \"lualatex -record {stem}.tex\"))
% (defun d () (interactive) (find-pdf-page \"~/dednat6/{stem}.pdf\"))
% (defun e () (interactive) (find-dednat6 \"{stem}.tex\"))
% (defun u () (interactive) (find-latex-upload-links \"{stem}\"))
% (find-pdf-page \"~/dednat6/{stem}.pdf\")
% (find-sh0 \"cp -v ~/dednat6/{stem}.pdf /tmp/\")
% (find-sh0 \"cp -v ~/dednat6/{stem}.pdf /tmp/pen/\")
% file:///home/edrx/dednat6/{stem}.pdf
% file:///tmp/{stem}.pdf
% file:///tmp/pen/{stem}.pdf
% http://anggtwu.net/dednat6/{stem}.pdf")
;;
"\
\\documentclass[oneside]{book}
\\usepackage[colorlinks]{hyperref} % (find-es \"tex\" \"hyperref\")
\\usepackage{amsmath}
\\usepackage{amsfonts}
\\usepackage{amssymb}
\\usepackage{pict2e}
\\usepackage[x11names,svgnames]{xcolor} % (find-es \"tex\" \"xcolor\")
%\\usepackage{tikz}
%
% (find-dn6 \"preamble6.lua\" \"preamble0\")
%\\usepackage{proof} % For derivation trees (\"%:\" lines)
%\\input diagxy % For 2D diagrams (\"%D\" lines)
%\\xyoption{curve} % For the \".curve=\" feature in 2D diagrams
%
\\begin{document}
\\catcode`\\^^J=10
\\directlua{dofile \"dednat6load.lua\"} % (find-LATEX \"dednat6load.lua\")
\\end{document}
% Local Variables:
% coding: utf-8-unix
% End:"
) pos-spec-list))
;; «find-br-links» (to ".find-br-links")
;; (find-find-links-links "{key}" "br" "fun stem")
;; Test: (find-br-links "find-fline" "f")
(defun find-br-links (&optional fun stem)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq fun (or fun "{fun}"))
(setq stem (or stem "{stem}"))
(find-elinks
`((find-br-links ,fun ,stem)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-br-links)
""
,(ee-template0 "\
;; (find-code-brurl '{fun} :remote 'br{stem} :local 'br{stem}l :dired 'br{stem}d)
;; (find-code-brfile '{fun} :local 'br{stem}l)
\(code-brurl '{fun} :remote 'br{stem} :local 'br{stem}l :dired 'br{stem}d)
\(code-brfile '{fun} :local 'br{stem}l)
")
)))
;; «find-pastebin-links» (to ".find-pastebin-links")
;; (find-es "emacs" "pastebin")
;;
(defun find-pastebin-links (&optional a &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq a (or a "{a}"))
(apply 'find-elinks
`((find-pastebin-links ,a ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pastebin-links)
""
,(ee-template0 "\
# <ecbrown> edrx: ,,pastebin
# http://emacswiki.org/wiki/pastebin
# http://paste.lisp.org/new
# see also <lisppaste>, <pastebin.el>
# https://www.emacswiki.org/emacs/download/pastebin.el
")
)
pos-spec-list))
;; Test: (find-pastebin-links)
;; «find-matplotlib-links» (to ".find-matplotlib-links")
;; (find-find-links-links "{k}" "matplotlib" "subdir name")
;; (find-matplotlibexfile "mplot3d/")
;; Test: (find-matplotlib-links "mplot3d" "wire3d_animation_demo")
(defun find-matplotlib-links (&optional subdir name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for matplotlib."
(interactive)
(setq subdir (or subdir "{subdir}"))
(setq name (or name "{name}"))
(let* ((origfname (format "/usr/share/doc/python-matplotlib-doc/examples/%s/%s.py"
subdir name))
(bigstr (ee-read-file origfname))
)
(apply 'find-elinks
`((find-matplotlib-links ,subdir ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-matplotlib-links)
""
,(ee-template0 "\
# (ee-copy-rest 1 '(find-angg \"MATPLOTLIB/{name}.py\"))
# This file: (find-angg \"MATPLOTLIB/{name}.py\")
# (find-matplotlib-links \"{subdir}\" \"{name}\")
# (find-es \"python\" \"matplotlib-examples\")
# (find-matplotlibexfile \"{subdir}/\")
# (find-matplotlibexfile \"{subdir}/{name}.py\")
# file:///usr/share/doc/python-matplotlib-doc/html/gallery.html#{subdir}
# file:///usr/share/doc/python-matplotlib-doc/html/examples/{subdir}/{name}.html
* (eepitch-python3)
* (eepitch-kill)
* (eepitch-python3)
{bigstr}
")
)
pos-spec-list)
(python-mode)
))
;; Test: (find-matplotlib-links "mplot3d" "wire3d_animation_demo")
;; (defun ee-matplotlib-subdir (&optional fname)
;; (car (ee-matplotlib-split (or fname (ee-dired-to-fname)))))
;;
;; (defun ee-matplotlib-name (&optional fname)
;; (cadr (ee-matplotlib-split (or fname (ee-dired-to-fname)))))
(defun ee-matplotlib-subdir (&optional fname) (car (ee-matplotlib-split fname)))
(defun ee-matplotlib-name (&optional fname) (cadr (ee-matplotlib-split fname)))
(defun ee-matplotlib-split (fname)
(setq fname (replace-regexp-in-string "\\(\\.py\\|\\.html\\)$" "" fname))
(if (string-match "^.*/\\([^/]+\\)/\\([^/]+\\)$" fname)
(list (match-string 1 fname)
(match-string 2 fname))
(error "Not a matplotlib thing: %s fname")))
(defun find-matplotlib-file (fname)
(interactive (list (ee-dired-to-fname)))
(find-matplotlib-links (ee-matplotlib-subdir fname) (ee-matplotlib-name fname)))
(code-brfile 'find-matplotlib-file :dired 'brmpd)
;; Test: go here and type M-x brmpd on a file:
;; (find-matplotlibexfile "mplot3d/")
;; (setq mystr "/usr/share/doc/python-matplotlib-doc/examples/mplot3d/2dcollections3d_demo.py")
;; (ee-matplotlib-split mystr)
;; «find-C-links» (to ".find-C-links")
;; (find-find-links-links "{k}" "C" "fname")
;; (find-C-links)
(defun find-C-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
(interactive)
(setq stem (or stem "{stem}"))
(let* ((stem stem))
(apply 'find-elinks
`((find-C-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-C-links)
""
,(ee-template0 "\
# (find-C-links \"{stem}\")
# (find-C-links \"/tmp/test\")
# (ee-copy-rest 1 '(find-fline \"{stem}.c\"))
/*
// (defun c () (interactive) (find-sh \"gcc -o {stem} {stem}.c\"))
// (defun e () (interactive) (find-fline \"{stem}.c\"))
// (find-libcnode \"Function Index\" \" printf:\")
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{<}
return 0;
{>}
/*
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
gcc -o {stem} {stem}.c
*/
")
)
pos-spec-list)))
;; «find-luarocks-links» (to ".find-luarocks-links")
;; Test: (find-luarocks-links)
;; (find-luarocks-links "StackTracePlus")
;; (find-luarocks-links "ltcltk" "0.9-1")
;; (find-luarocks-links "lpeg" "0.10" "-2")
;; (find-luarocks-links "lposix" "20031107" "-1" "posix")
;; (find-luarocks-links "luamacro" "2.4" "-1" "macro")
;; (find-luarocks-links "penlight" "0.9.8" "-1" "pl???")
;; See: (find-TH "eev/find-luarocks-links")
;; (find-angg ".emacs" "luarocks")
;; (find-angg "LUA/lua50init.lua" "userocks")
;; (find-es "lua5" "luarocks")
;; Skel: (find-find-links-links-new "luarocks" "pkgname v s req" "")
;;
(defun find-luarocks-links (&optional pkgname v s req &rest rest)
"Visit a temporary buffer containing hyperlinks for luarocks."
(interactive (list (ee-stuff-around-point "a-z")))
(setq pkgname (or pkgname "{pkgname}"))
(setq v (or v "{ver}"))
(setq s (or s "{sub}"))
(setq req (or req pkgname))
(apply 'find-elinks `(
(find-luarocks-links ,pkgname ,@rest)
(find-luarocks-links ,pkgname ,v ,s ,req ,@rest)
;; (find-luarocks-links "ltcltk" "0.9-1")
(find-angg ".emacs.templates" "find-luarocks-links")
(find-efunction 'find-luarocks-links)
""
;; (find-angg ".emacs" "luarocks")
;; (find-angg "LUA/lua50init.lua" "userocks")
;; (find-es "lua5" "luarocks")
,(ee-template0 "\
** Search
** ======
** https://luarocks.org/search?q={pkgname}
** (find-sh \"luarocks list\")
** (find-sh \"luarocks list {pkgname}\")
** (find-sh \"luarocks search {pkgname}\")
** (find-sh \"luarocks install --local {pkgname}\")
** (find-fline \"~/.luarocks/lib/luarocks/rocks/\")
** (find-sh \"find ~/.luarocks/ ~/.cache/luarocks/ | sort\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
luarocks
luarocks help
luarocks help path
luarocks path
luarocks path --lr-path
luarocks path --lr-cpath
luarocks path --lr-bin
luarocks path --lr-path | tr ';' '\\n'
luarocks path --lr-cpath | tr ';' '\\n'
luarocks path --lr-bin | tr ';' '\\n'
** Reinstall luarocks
** ==================
** (find-status \"luarocks\")
** (find-vldifile \"luarocks.list\")
** (find-udfile \"luarocks/\")
** (find-sh \"find ~/.cache/luarocks/ ~/.luarocks/ | sort\")
** (find-sh \"rm -Rfv ~/.cache/luarocks/ ~/.luarocks/ | sort\")
** (find-angg \".zshrc\" \"luarocks\")
**
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
aptrm luarocks
apti luarocks
# 2014aug29:
https://rocks.moonscript.org/m/root
# Search (locally):
# (find-luarocksfile \"lib/lua/5.1/\")
# (find-luarocksfile \"share/lua/5.1/\")
# (find-luarocksfile \"lib/luarocks/rocks/\")
# (find-luarocksfile \"bin/\" \"{pkgname}\")
# (find-luarockssh \"find * | sort\")
# (find-luarocksfile \"\")
# (find-luarockssh \"bin/luarocks\")
# (find-luarockssh \"bin/luarocks list\")
# (find-luarockssh \"bin/luarocks list {pkgname}\")
# (find-luarockssh \"bin/luarocks show {pkgname}\")
# (find-luarockssh \"bin/luarocks help search\")
# (find-luarockssh \"bin/luarocks help list\")
# Search and download (from the internet):
# https://luarocks.org/search?q={pkgname}
# http://luarocks.org/repositories/rocks/
# http://luarocks.org/repositories/rocks/index.html#{pkgname}
# (find-luarockssh \"bin/luarocks search -all\")
# (find-luarockssh \"bin/luarocks search {pkgname}\")
# (find-luarockssh \"cd bin/; ./luarocks download {pkgname}\")
# Install (from the internet):
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
luarocks list {pkgname}
luarocks show {pkgname}
luarocks search {pkgname}
luarocks --local install {pkgname} |& tee olli-{pkgname}
cd ~/usrc/luarocks/bin/
./luarocks download {pkgname}
./luarocks build {pkgname} |& tee olb-{pkgname}
# (find-luarocksbinfile \"\")
# (find-luarocksbinfile \"olb-{pkgname}\")
#./luarocks install {pkgname} |& tee oli-{pkgname}
# Test:
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
userocks() -- (find-angg \"LUA/lua50init.lua\" \"userocks\")
require \"{req}\"
# Inspect:
# (find-luarocksrocksfile \"\")
# (find-luarocksrocksfile \"manifest\")
# (find-luarocksrocksfile \"{pkgname}/{v}{s}/\")
# Inspect and unpack:
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-luarocksfile \"bin/\" \"{pkgname}\")
# (find-luarocksfile \"bin/{pkgname}-{v}{s}.src.rock\")
unzip -l ~/usrc/luarocks/bin/{pkgname}-{v}{s}.src.rock
unzip -p ~/usrc/luarocks/bin/{pkgname}-{v}{s}.src.rock {pkgname}-{v}.tar.gz \\
| tar -tvzf -
rm -Rfv ~/usrc/{pkgname}-{v}/
unzip -p ~/usrc/luarocks/bin/{pkgname}-{v}{s}.src.rock {pkgname}-{v}.tar.gz \\
| tar -C ~/usrc/ -xvzf -
cd ~/usrc/{pkgname}-{v}/
;; (find-angg \".emacs\" \"luarocks\")
;; (find-luarocks-links \"{pkgname}\" \"{v}\" \"{s}\")
;; (find-{pkgname}file \"\")
\(code-c-d \"{pkgname}\" \"~/usrc/{pkgname}-{v}/\")
")
) rest))
;; Test: (find-luarocks-links)
;; (find-luarocks-links "ltcltk")
;; (find-luarocks-links "ltcltk" "0.9-1")
;; (find-luarocks-links "lpeg" "0.10" "-1")
;; (find-luarocks-links "lpeg" "0.12" "-1")
;; «find-luarocks-src-links» (to ".find-luarocks-src-links")
;; Skel: (find-find-links-links-new "luarocks-src" "pkgname dir c" "")
;; Test: (find-luarocks-src-links "lpeglabel")
;;
(defun ee-luarocks-src-dir1 ()
(find-sh0 "cd /tmp/rock/* && find * -maxdepth 0 -type d"))
(defun find-luarocks-src-links (&optional pkgname dir c &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for luarocks-src."
(interactive)
(setq pkgname (or pkgname "{pkgname}"))
(setq dir (or dir "{dir}"))
(setq c (or c pkgname "{c}"))
(apply
'find-elinks
`((find-luarocks-src-links ,pkgname ,dir ,c ,@pos-spec-list)
(find-luarocks-src-links ,pkgname (ee-luarocks-src-dir1) ,c ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-luarocks-src-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
luarocks search {pkgname} | tee /tmp/ols
# (find-fline \"/tmp/ols\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/rock/
mkdir /tmp/rock/
cd /tmp/rock/
luarocks unpack {pkgname}
# (find-luarocks-src-links \"{pkgname}\" (ee-luarocks-src-dir1) \"{c}\")
rm -Rv ~/usrc/{dir}/
cd /tmp/rock/
cd *
cp -Rv {dir} ~/usrc/
# (code-c-d \"{c}\" \"~/usrc/{dir}/\")
# (find-{c}file \"\")
")
)
pos-spec-list))
;; «find-math-b-links» (to ".find-math-b-links")
;; Skel: (find-find-links-links-new "math-b" "tag fnamestem" "")
;; Test: (find-math-b-links "2020-classifier" "2019classifier")
;;
(defun find-math-b-links (&optional tag fnamestem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for math-b."
(interactive)
(setq tag (or tag "{tag}"))
(setq fnamestem (or fnamestem "{fnamestem}"))
(apply
'find-elinks
`((find-math-b-links ,tag ,fnamestem ,@pos-spec-list)
(find-math-b-links ,(ee-last-kill) ,(ee-last-kill) ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-math-b-links)
""
,(ee-template0 "\
% (find-TH \"math-b\" \"{tag}\")
% http://anggtwu.net/math-b.html#{tag}
% file:///home/edrx/TH/L/math-b.html#{tag}
[# (find-math-b-links \"{tag}\" \"{fnamestem}\")
# (find-LATEX \"{fnamestem}.tex\")
# (find-pdf-page \"~/LATEX/{fnamestem}.pdf\")
# http://anggtwu.net/LATEX/{fnamestem}.pdf
#]
")
)
pos-spec-list))
;; «find-defcsprefix-links» (to ".find-defcsprefix-links")
;; Skel: (find-find-links-links-new "defcsprefix" "csprefix fullname" "")
;; Test: (find-defcsprefix-links "zha")
;; (find-defcsprefix-links "tcg")
;; (find-defcsprefix-links "mateight" "MATRIX 4x2")
;;
(defun find-defcsprefix-links (&optional csprefix fullname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for defcsprefix."
(interactive)
(setq csprefix (or csprefix "{csprefix}"))
(setq fullname (or fullname (upcase csprefix) "{fullname}"))
(apply
'find-elinks
`((find-defcsprefix-links ,csprefix ,fullname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-defcsprefix-links)
""
,(ee-template0 "\
% <def{csprefix}>
% Skel: (find-defcsprefix-links \"{csprefix}\" \"{fullname}\")
%
\\def\\def{csprefix}#1#2{<}\\expandafter\\def\\csname {csprefix}-#1\\endcsname{<}#2{>}{>}
\\def\\if{csprefix}undefined#1{<}\\expandafter\\ifx\\csname {csprefix}-#1\\endcsname\\relax{>}
\\def\\{csprefix}#1{<}\\if{csprefix}undefined{<}#1{>}
\\errmessage{<}UNDEFINED {fullname}: #1{>}
\\else
\\csname {csprefix}-#1\\endcsname
\\fi
{>}
")
)
pos-spec-list))
;; «find-debian-version-links» (to ".find-debian-version-links")
;; Skel: (find-find-links-links-new "debian-version" "" "")
;; Test: (find-debian-version-links)
;;
(defun find-debian-version-links (&rest pos-spec-list)
"Visit a temporary buffer containing a script for determining the Debian version."
(interactive)
(apply
'find-elinks
`((find-debian-version-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-debian-version-links)
;; ""
,(ee-template0 "\
# https://linuxconfig.org/check-what-debian-version-you-are-running-on-your-linux-system
# https://www.debian.org/releases/
# https://www.debian.org/doc/manuals/debian-faq/
# https://www.debian.org/doc/manuals/debian-faq/getting-debian.en.html#version
# https://en.wikipedia.org/wiki/Debian_version_history
# (find-es \"x\" \"which-window-manager\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat /etc/issue
cat /etc/debian_version
cat /etc/os-release
cat /etc/hostname
lsb_release -da
hostnamectl
wmctrl -m
echo $XDG_CURRENT_DESKTOP
echo $GDMSESSION
echo $SHELL
")
)
pos-spec-list))
;; «find-sound-debug-links» (to ".find-sound-debug-links")
;; Skel: (find-find-links-links-new "sound-debug" "" "")
;; Test: (find-sound-debug-links)
;;
(defun find-sound-debug-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for sound-debug."
(interactive)
(apply
'find-elinks
`((find-sound-debug-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-sound-debug-links)
""
"
logthis () { echo $*:; eval $* 2>&1; echo; echo; }
{
# (find-efunction 'find-debian-version-links)
logthis cat /etc/issue
logthis cat /etc/debian_version
logthis cat /etc/os-release
logthis lsb_release -da
logthis hostnamectl
# (find-es \"alsa\" \"aplay\")
logthis aplay -l
logthis aplay -L
# (find-es \"sound\" \"troubleshooting\")
logthis \"lspci -vvv | grep -A8 Audio\"
logthis \"lspci -knn | grep -A2 Audio\"
logthis groups
logthis \"rm -f /tmp/oac; /usr/sbin/alsactl -f /tmp/oac store; cat /tmp/oac\"
} \\
| tee ~/oalsa
"
,(ee-template0 "\
")
)
pos-spec-list))
;; «find-bradytdd-links» (to ".find-bradytdd-links")
;; Skel: (find-find-links-links-new "bradytdd" "fullfname" "shortfname stem")
;; Test: (find-bradytdd-links "~/IDRIS/brady/02/Average.idr")
;;
(defun find-bradytdd-links (&optional fullfname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for bradytdd."
(interactive)
(setq fullfname (or fullfname buffer-file-name))
(setq fullfname (or fullfname "{fullfname}"))
(let* ((shortfname (replace-regexp-in-string "^.*/IDRIS/" "" fullfname))
(stem (replace-regexp-in-string
"^.*/\\([-A-Za-z0-9_]*\\).idr$" "\\1" shortfname)))
(apply
'find-elinks
`((find-bradytdd-links ,fullfname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
;; `(find-efunction 'find-bradytdd-links)
(ee-copy-rest 1 '(find-fline ,fullfname))
""
,(ee-template0 "\
-- This file:
-- http://anggtwu.net/IDRIS/{shortfname}.html
-- http://anggtwu.net/IDRIS/{shortfname}
-- (find-angg \"IDRIS/{shortfname}\")
--
-- (find-bradytddfile \"Chapter2/\")
-- (find-books \"__comp/__comp.el\" \"brady\")
{<}-
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
idris {stem}
-{>}
")
)
pos-spec-list)))
;; «find-dednat4-convert-links» (to ".find-dednat4-convert-links")
;; Skel: (find-find-links-links-new "dednat4-convert" "fname" "stem")
;; Test:
;;
(defun find-dednat4-convert-links (&optional fname &rest pos-spec-list)
"Material for converting a .tex from dednat4 to dednat6."
(interactive)
(setq fname (or fname buffer-file-name))
(setq fname (or fname "{fname}"))
(let* ((stem (file-name-nondirectory fname)))
(setq stem (replace-regexp-in-string "\\.tex$" "" stem))
(setq stem (replace-regexp-in-string "\\-utf8$" "" stem))
(apply
'find-elinks
`((find-dednat4-convert-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-dednat4-convert-links)
""
(find-lualatex-links ,(concat stem "-utf8"))
(find-LATEX ,(concat stem ".tex"))
(find-LATEX ,(concat stem "-utf8.tex"))
"
\\catcode`\\^^O=13 \\def*{\\ensuremath{\\bullet}}
% (find-dednat6 \"dednat6/block.lua\" \"TexLines\")
\\directlua{tf:processuntil(texlines:nlines())}
"
,(ee-template0 "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v ~/LATEX/{stem}.tex /tmp/o
~/LUA/texcatcodes.lua -trans /tmp/o /tmp/o2
# (find-fline \"/tmp/o2\")
")
)
pos-spec-list)))
;; «find-psne-article-links» (to ".find-psne-article-links")
;; Skel: (find-find-links-links-new "psne-article" "url stem" "localurl localdir")
;;
(defun find-psne-article-links (&optional url stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for psne-article."
(interactive)
(setq url (or url "{url}"))
(setq stem (or stem "{stem}"))
(let* ((localurl (ee-url-to-fname0 url))
(localdir (file-name-directory localurl))
)
(apply
'find-elinks
`((find-psne-article-links ,url ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-psne-article-links)
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
mkdir -p {localdir}
cd {localdir}
wget -nc '{url}'
echo '{url}' >> ~/.psne.log
# (find-fline \"{localdir}\")
# (find-pdf-page \"{localurl}\")
# (find-pdf-text \"{localurl}\")
;; <{stem}>
;; {url}
;; (find-fline \"{localdir}\")
\(code-pdf-page \"{stem}\" \"{localurl}\")
\(code-pdf-text \"{stem}\" \"{localurl}\")
;; (find-{stem}page)
;; (find-{stem}text)
")
)
pos-spec-list)))
(code-brurl 'find-psne-article-links :remote 'brap)
;; «find-psne-arxiv-links» (to ".find-psne-arxiv-links")
;; Skel: (find-find-links-links-new "psne-arxiv" "url stem" "localurl localdir")
;; Test: (find-psne-arxiv-links "https://arxiv.org/pdf/1906.11236.pdf")
;;
(defun find-psne-arxiv-links (&optional url stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for psne-arxiv."
(interactive)
(setq url (or url "{url}"))
(setq stem (or stem "{stem}"))
(let* ((localurl (ee-url-to-fname0 url))
(localdir (file-name-directory localurl))
;;
(fname0 (file-name-nondirectory localurl))
(fname00 (replace-regexp-in-string ".pdf$" "" fname0))
(srcurl (format "https://arxiv.org/e-print/%s" fname00))
(srcfile (format "$S/https/arxiv.org/e-print/%s.tar" fname00))
(srcdir "$S/https/arxiv.org/e-print/")
(usrcdir (format "~/usrc/arxiv-%s/" stem))
)
(apply
'find-elinks
`((find-psne-arxiv-links ,url ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-psne-arxiv-links)
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
mkdir -p {localdir}
cd {localdir}
cp -iv /tmp/{(file-name-nondirectory localurl)} {localdir}
# wget -nc '{url}'
echo '{url}' >> ~/.psne.log
# (find-fline \"{localdir}\")
# (find-pdf-page \"{localurl}\")
# (find-pdf-text \"{localurl}\")
;; <{stem}>
;; https://arxiv.org/abs/{fname00}
;; {url}
\(code-pdf-page \"{stem}\" \"{localurl}\")
\(code-pdf-text \"{stem}\" \"{localurl}\")
;; (find-{stem}page)
;; (find-{stem}text)
# Download the source:
# https://arxiv.org/abs/{fname00}
# {url}
# {srcurl}
# (find-fline \"{srcfile}\")
# (find-fline \"{usrcdir}\")
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
mkdir -p {srcdir}
cp -v /tmp/{fname00} {srcfile}
rm -Rv {usrcdir}
mkdir {usrcdir}
cd {usrcdir}
tar -xvf {srcfile}
# (find-psne-arxiv-links \"{url}\" \"{stem}\")
# (find-booksgrep \"grep --color -nH --null -e {stem} */*.el\")
# (code-c-d \"{stem}\" \"~/usrc/arxiv-{stem}/\")
# (find-{stem}file \"\")
")
)
pos-spec-list)))
;; Test: (find-psne-arxiv-links "https://arxiv.org/pdf/1906.11236.pdf")
;; Test: (find-psne-arxiv-links "https://arxiv.org/pdf/1906.11236.pdf" "hughesfopws")
(code-brurl 'find-psne-arxiv-links :remote 'brarxp)
;; «find-book-grep-links» (to ".find-book-grep-links")
;; Skel: (find-find-links-links-new "book-grep" "str" "")
;; Test: (book-grep)
;;
(defalias 'book-grep 'find-book-grep-links)
(defun find-book-grep-links (&optional str0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for book-grep."
(interactive)
(setq str0 (or str0 "{str0}"))
(apply
'find-elinks
`((find-book-grep-links ,str0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-book-grep-links)
""
,(ee-template0 "\
# (find-booksgrep \"grep --color -nH --null -e {str0} */*.el\")
# (find-booksgrep \"grep --color -niH --null -e {str0} */*.el\")
")
)
pos-spec-list))
;; «find-my-this-file-links» (to ".find-my-this-file-links")
;; Skel: (find-find-links-links-new "my-this-file" "fname0 c" "fname pre post")
;; Test: (find-my-this-file-links)
;;
(defun find-my-this-file-links (&optional fname0 c pre post &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for my-this-file."
(interactive)
(setq fname0 (or fname0 (ee-shorten-file-name (buffer-file-name)) "{fname0}"))
(setq c (or c "%" "{c}"))
(let* ((fname (ee-replace-prefix "~/" "" fname0))
(pre (or pre ""))
(post (or post "")))
(apply
'find-elinks
`((find-my-this-file-links ,fname0 ,c ,@pos-spec-list)
(find-my-this-file-links ,fname0 "#")
(find-my-this-file-links ,fname0 "%")
(find-my-this-file-links ,fname0 "--")
(find-my-this-file-links ,fname0 ";;")
(find-my-this-file-links ,fname0 "//")
(find-my-this-file-links ,fname0 " *" "/*\n" "\n*/")
(find-my-this-file-links ,fname0 "--" "<!--\n" "\n-->")
(find-my-this-file-links ,fname0 "{c}")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-my-this-file-links)
""
,(ee-template0 "\
# (kill-new \" {fname}\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \" LEAN/\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \" LUA/\")
# (find-THfile \"Makefile\" \"dirs\")
# (ee-copy-rest 2 '(find-fline \"{fname0}\"))
# (ee-copy-rest0 1 nil)
{pre}\
{c} This file:
{c} http://anggtwu.net/{fname}.html
{c} http://anggtwu.net/{fname}
{c} (find-angg \"{fname}\")
{c} Author: Eduardo Ochs <eduardoochs@gmail.com>
{c}
{c} (defun e () (interactive) (find-angg \"{fname}\"))\
{post}
{pre}\
{c} Local Variables:
{c} coding: utf-8-unix
{c} End:\
{post}
")
)
pos-spec-list)))
;; Test: (find-my-this-file-links)
;; «find-ebook-convert-links» (to ".find-ebook-convert-links")
;; Skel: (find-find-links-links-new "ebook-convert" "fname" "dir fname- stem")
;;
(defun find-ebook-convert-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ebook-convert."
(interactive)
(setq fname (or fname (ee-dired-to-fname) "{fname}"))
(let* ((dir (file-name-directory fname))
(fname- (file-name-nondirectory fname))
(stem (replace-regexp-in-string ".epub$" "" fname-)))
(apply
'find-elinks
`((find-ebook-convert-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ebook-convert-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd {dir}
ebook-convert \\
{fname-} \\
{stem}.pdf \\
--base-font-size=12 \\
--pdf-page-numbers
cd {dir}
pandoc \\
-f epub \\
-t latex \\
-o my.pdf \\
--epub-chapter-level=1 \\
--pdf-engine=lualatex \\
{fname-}
# (find-pdf-page \"{dir}{stem}.pdf\")
# (find-pdf-text \"{dir}{stem}.pdf\")
# (cd \"{dir}\")
# (find-book-links \"pdf\" nil \"{stem}.pdf\")
")
)
pos-spec-list)))
(code-brfile 'find-ebook-convert-links :dired 'brecd)
;; (find-ebook-convert-links "/tmp/cheng__cakes_custard_and_category_theory.epub")
;; «find-lilypond-links» (to ".find-lilypond-links")
;; Skel: (find-find-links-links-new "lilypond" "stem" "")
;;
(defun find-lilypond-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for lilypond."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-lilypond-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lilypond-links)
""
,(ee-template0 "\
# (kill-new \" LILYPOND/{stem}.ly\\n\")
# (find-fline \"~/blogme3/anggmake.lua\" \"LILYPOND/\")
# (ee-copy-rest 1 '(find-fline \"~/LILYPOND/{stem}.ly\"))
% (defun c () (interactive) (find-sh \"cd ~/LILYPOND/ && lilypond {stem}.ly\"))
% (defun d () (interactive) (find-pdf-page \"~/LILYPOND/{stem}.pdf\"))
% (defun d () (interactive) (find-pdftools-page \"~/LILYPOND/{stem}.pdf\"))
% (defun e () (interactive) (find-fline \"~/LILYPOND/{stem}.ly\"))
% (defun v () (interactive) (find-2a '(e) '(d)) (g))
% (find-lilylearnpage 2 \"Table of Contents\")
% (find-lilylearntext 2 \"Table of Contents\")
% (find-books \"__comp/__comp.el\" \"lilypond\")
% (find-lilylearnpage (+ 5 1) \"1.1 Compiling a file\")
% (find-lilylearntext (+ 5 1) \"1.1 Compiling a file\")
\\version \"2.18.2\"
{<}
c' e' g' e'
{>}
")
)
pos-spec-list))
;; Test: (find-lilypond-links "a_new_ground")
;; «find-latexgimp-links» (to ".find-latexgimp-links")
;; Skel: (find-find-links-links-new "latexgimp" "fname" "fullfname fulldir")
;;
(defun find-latexgimp-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for latexgimp."
(interactive)
(setq fname (or fname "{fname}"))
(setq fname (or (ee-if-prefixp "~/LATEX/" "" fname 'fname+) fname))
(let* ((fullfname (concat "~/LATEX/" fname))
(fulldir (file-name-directory fullfname))
)
(apply
'find-elinks
`((find-latexgimp-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-latexgimp-links)
""
,(ee-template0 "\
% (find-fline \"{fulldir}\")
% (find-fline \"{fullfname}.png\")
% (kill-new \"{fullfname}.xcf\")
% (kill-new \"{fullfname}.png\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd {fulldir}
gimp {fullfname}.xcf
% (eek \"2*<right> C-SPC 3*<down> M-w\")
% (find-latexgimp-links \"{fname}\")
% (find-fline \"{fullfname}.png\")
\\includegraphics[width=2cm]{<}{fname}.png{>}
")
)
pos-spec-list)))
;; Test: (find-latexgimp-links "~/LATEX/GIMP/1")
;; «find-latexinkscape-links» (to ".find-latexinkscape-links")
;; Skel: (find-find-links-links-new "latexinkscape" "fname" "fullfname fulldir")
;;
(defun find-latexinkscape-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for latexinkscape."
(interactive)
(setq fname (or fname "{fname}"))
(setq fname (or (ee-if-prefixp "~/LATEX/" "" fname 'fname+) fname))
(let* ((fullfname (concat "~/LATEX/" fname))
(fulldir (file-name-directory fullfname)))
(apply
'find-elinks
`((find-latexinkscape-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-latexinkscape-links)
""
,(ee-template0 "\
% (find-fline \"{fulldir}\")
% (find-fline \"{fullfname}.svg\")
% (find-fline \"{fullfname}.pdf\")
% (find-pdf-page \"{fullfname}.pdf\")
% (kill-new \"{fullfname}.svg\")
% (kill-new \"{fullfname}.pdf\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# mkdir {fulldir}
cd {fulldir}
inkscape {fullfname}.svg
% (eek \"2*<right> C-SPC 3*<down> M-w\")
% (find-latexinkscape-links \"{fname}\")
% (find-fline \"{fullfname}.pdf\")
\\includegraphics[width=2cm]{<}{fname}.pdf{>}
")
)
pos-spec-list)))
;; «find-latexscan-links» (to ".find-latexscan-links")
;; Skel: (find-find-links-links-new "latexscan" "cn stem" "pdffname")
;; Test: (find-latexscan-links)
;;
(defun find-latexscan-links (&optional cn stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for latexscan."
(interactive)
(setq cn (or cn "{cn}"))
(setq stem (or stem "{stem}"))
(let* ((pdffname (ee-template0 "2024-2-{cn}/{stem}.pdf")))
(apply
'find-elinks
`((find-latexscan-links ,cn ,stem ,@pos-spec-list)
(find-latexscan-links "C3" "20201125_114928_poli_grau_5")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-latexscan-links)
""
,(ee-template0 "\
% (find-fline \"~/2024.2-{cn}/\")
% (find-fline \"~/LATEX/2024-2-{cn}/\")
% (find-LATEX \"2020-1-C3-aprox-2a-ordem-R2.tex\" \"scans\")
% (find-latexscan-links \"{cn}\" \"{stem}\")
% (find-xpdf-page \"~/LATEX/{pdffname}\")
\\includegraphics[height=8cm]{<}{pdffname}{>}
\\includegraphics[width=11cm]{<}{pdffname}{>}
")
)
pos-spec-list)))
;; «find-C2-aula-links» (to ".find-C2-aula-links")
;; Skel: (find-find-links-links-new "C2-aula" "stem n shortsuffix" "")
;; Test: (find-C2-aula-links)
;; (find-C2-aula-links "2020-1-C2-somas-2" "2" "somas2")
;;
(defun find-C2-aula-links (&optional stem n shortsuffix &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for C2-aula."
(interactive)
(setq stem (or stem "{stem}"))
(setq n (or n "{n}"))
(setq shortsuffix (or shortsuffix "{shortsuffix}"))
(apply
'find-elinks
`((find-C2-aula-links ,stem ,n ,shortsuffix ,@pos-spec-list)
(find-C2-aula-links "2020-1-C2-foo-bar" "42" "foobar")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-C2-aula-links)
""
,(ee-template0 "\
# (find-angg \".emacs\" \"2020-1-slides-aulas\")
(code-etex \"c2m201{shortsuffix}\" \"{stem}\")
(code-etex \"c2m{n}\" \"{stem}\")
# (find-lualatex-links \"{stem}\")
# (find-LATEX \"{stem}.tex\")
# (c2m201{shortsuffix}p)
# (c2m201{shortsuffix})
# (c2m{n}p)
# (c2m{n})
% (find-es \"tex\" \"geometry\")
\\usepackage[a6paper, landscape,
top=1.5cm, bottom=.25cm, left=1cm, right=1cm, includefoot
]{<}geometry{>}
%
% ee-tla: \"c2m201{shortsuffix}\"
(find-2a '(find-LATEX \"2020-1-C2-somas-1.tex\" \"defs\")
'(find-LATEX \"{stem}.tex\")
)
% (find-vscan-links \"{stem}\")
")
)
pos-spec-list))
;; «find-C3-aula-links» (to ".find-C3-aula-links")
;; Skel: (find-find-links-links-new "C3-aula" "stem n shortsuffix" "")
;; Test: (find-C3-aula-links)
;; (find-C3-aula-links "2020-1-C3-taylor-1" "2" "taylor1")
;;
(defun find-C3-aula-links (&optional stem n shortsuffix &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for C3-aula."
(interactive)
(setq stem (or stem "{stem}"))
(setq n (or n "{n}"))
(setq shortsuffix (or shortsuffix "{shortsuffix}"))
(apply
'find-elinks
`((find-C3-aula-links ,stem ,n ,shortsuffix ,@pos-spec-list)
(find-C3-aula-links "2020-1-C3-foo-bar" "42" "foobar")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-C3-aula-links)
""
,(ee-template0 "\
# (find-angg \".emacs\" \"2020-1-slides-aulas\")
(code-etex \"c3m201{shortsuffix}\" \"{stem}\")
(code-etex \"c3m{n}\" \"{stem}\")
# (find-lualatex-links \"{stem}\")
# (find-LATEX \"{stem}.tex\")
% (find-es \"tex\" \"geometry\")
\\usepackage[a6paper, landscape,
top=1.5cm, bottom=.25cm, left=1cm, right=1cm, includefoot
]{<}geometry{>}
%
% ee-tla: \"c3m201{shortsuffix}\"
(find-2a ;; ' (find-LATEX \"2020-1-C3-vetor-tangente.tex\" \"defs\")
' (find-LATEX \"2020-1-C3-taylor-3.tex\" \"defs\")
' (find-LATEX \"{stem}.tex\")
)
")
)
pos-spec-list))
;; «ee-template0-file» (to ".ee-template0-file")
;; Tests:
' (find-2a ' (find-fline "~/LATEX/2020-1-CN-template.tex")
' (find-estring
(let ((stem "*STEM*"))
(ee-template0-file "~/LATEX/2020-1-CN-template.tex"
"⟦\\([!-~]+\\)⟧"))))
' (find-2a ' (find-fline "~/LATEX/2022template.lagda.tex")
' (find-estring
(let ((stem "*STEM*"))
(ee-template0-file "~/LATEX/2022template.lagda.tex"))))
;;
(defvar ee-template0-file-re "⟦\\([!-~]+\\)⟧")
(defun ee-template0-file (fname &optional re)
(let ((ee-template00-re (or re ee-template0-file-re)))
(ee-template0 (ee-read-file fname))))
;;; ____ _ _ _
;;; / ___| \ | | __ _ _ _| | __ _
;;; | | | \| |_____ / _` | | | | |/ _` |
;;; | |___| |\ |_____| (_| | |_| | | (_| |
;;; \____|_| \_| \__,_|\__,_|_|\__,_|
;;;
;; «find-CN-aula-links» (to ".find-CN-aula-links")
;; Skel: (find-find-links-links-new "CN-aula" "stem N tlalong tla" "yys")
;; Tests: (find-CN-aula-links "2020-2-C5-foo-bar" "5" "c5mfoobar" "c5mfb")
;; (find-CN-aula-links "2020-2-C2-intro" "2" "c2m202intro" "c2m202i")
;;
(defun find-CN-aula-links (&optional stem N tlalong tla &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for CN-aula."
(interactive)
(setq stem (or stem "{stem}"))
(setq N (or N "{N}"))
(setq tlalong (or tlalong "{tlalong}"))
(setq tla (or tla "{tla}"))
(let* ((yys "{yys}"))
(apply
'find-elinks
`((find-CN-aula-links ,stem ,N ,tlalong ,tla ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-CN-aula-links)
""
,(ee-template0 "\
# (kill-new \" LATEX/{stem}.tex\\n\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/2023-1\")
# ^ Add to the makefile
;; ({tlalong}a \"title\")
(code-etex-tla \"{tla}\" \"{stem}\")
(code-etex-tla \"{tlalong}\" \"{stem}\")
;; ^ add to: (find-angg \".emacs\" \"c{N}-2023-1\")
[R http://anggtwu.net/LATEX/{stem}.pdf PDF].
[# ({tlalong}p 1 \"index\")
# ({tlalong}a \"index\")
#]
# ^ copy to: (find-TH \"2023.1-C{N}\")
% ({tlalong}a \"title\")
\\incl{<}{stem}{>}
% ^ copy to: (find-LATEX \"2023-1-C{N}-tudo.tex\" \"parts\")
# (ee-copy-rest 3 '(find-LATEX \"{stem}.tex\"))
")
;; (find-LATEX "2023-1-CN-template.tex")
;; (find-LATEX "2022-2-CN-template.tex")
;; (find-LATEX "2022-1-CN-template.tex")
;; (find-LATEX "2021-2-CN-template.tex")
,(ee-template0-file "~/LATEX/2023-1-CN-template.tex"
"⟦\\([!-~]+\\)⟧")
)
pos-spec-list)))
;;; __ __ __ __ _
;;; | \/ | \/ | __ _ _ _| | __ _
;;; | |\/| | |\/| |_____ / _` | | | | |/ _` |
;;; | | | | | | |_____| (_| | |_| | | (_| |
;;; |_| |_|_| |_| \__,_|\__,_|_|\__,_|
;;;
;; «find-MM-aula-links» (to ".find-MM-aula-links")
;; Skel: (find-find-links-links-new "MM-aula" "stem M tlalong tla" "")
;; Test: (find-MM-aula-links "2024-1-C3-teste-niv" "3" "c3m241testeniv" "c3tn")
;;
(defun find-MM-aula-links (&optional stem M tlalong tla &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for MM-aula."
(interactive)
(setq stem (or stem "{stem}"))
(setq M (or M "{M}"))
(setq tlalong (or tlalong "{tlalong}"))
(setq tla (or tla "{tla}"))
(apply
'find-elinks
`((find-MM-aula-links ,stem ,M ,tlalong ,tla ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-MM-aula-links)
(find-LATEX "2025-1-MM-template.tex")
""
,(ee-template0 "\
# (kill-new \" LATEX/{stem}.tex\\n\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/2025-1\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/2025-2\")
# ^ Add to the makefile
;; ({tlalong}a \"title\")
(code-etex-tla \"{tla}\" \"{stem}\")
(code-etex-tla \"{tlalong}\" \"{stem}\")
;; ^ add to: (find-angg \".emacs\" \"c{M}-2025-1\")
;; ^ add to: (find-angg \".emacs\" \"c{M}-2025-2\")
;; update: (find-blogme3 \"code-etex-tlas.lua\")
% ({tlalong}a \"title\")
\\incl{<}{stem}{>}
% ^ copy to: (find-LATEX \"2025-1-C{M}-tudo.tex\" \"parts\")
% ^ copy to: (find-LATEX \"2025-2-C{M}-tudo.tex\" \"parts\")
[s_ ({tla}p)]
% ^ copy to: (find-TH \"2025.1-C{M}\" \"executado\")
% ^ copy to: (find-TH \"2025.2-C{M}\" \"executado\")
# (ee-copy-rest 1 '(find-LATEX \"{stem}.tex\"))
")
;; (find-LATEX "2023-1-CN-template.tex")
;; (find-LATEX "2023-1-MM-template.tex")
;; (find-LATEX "2023-2-MM-template.tex")
;; (find-LATEX "2024-1-MM-template.tex")
;; (find-LATEX "2024-2-MM-template.tex")
;; (find-LATEX "2025-1-MM-template.tex")
;; (find-LATEX "2025-2-MM-template.tex")
,(ee-template0-file "~/LATEX/2025-2-MM-template.tex"
"⟦\\([!-~]+\\)⟧")
)
pos-spec-list))
;; ;; «find-MM-aula-2023-2-links» (to ".find-MM-aula-2023-2-links")
;; ;; Skel: (find-find-links-links-new "MM-aula" "stem MM tlalong tla" "yys mm")
;; ;; Test: (find-MM-aula-links "2023-1-LA-intro" "LA" "lam231intro" "lami")
;; ;;
;; (defun find-MM-aula-links (&optional stem MM tlalong tla &rest pos-spec-list)
;; "Visit a temporary buffer containing hyperlinks for MM-aula."
;; (interactive)
;; (setq stem (or stem "{stem}"))
;; (setq MM (or MM "{MM}"))
;; (setq tlalong (or tlalong "{tlalong}"))
;; (setq tla (or tla "{tla}"))
;; (let* ((yys "{yys}")
;; (mm (downcase MM)))
;; (apply
;; 'find-elinks
;; `((find-MM-aula-links ,stem ,MM ,tlalong ,tla ,@pos-spec-list)
;; ;; Convention: the first sexp always regenerates the buffer.
;; (find-efunction 'find-MM-aula-links)
;; (find-LATEX "2023-2-MM-template.tex")
;; ""
;; ,(ee-template0 "\
;;
;; # (kill-new \" LATEX/{stem}.tex\\n\")
;; # (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
;; # (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/2023-2\")
;; # ^ Add to the makefile
;;
;; ;; ({tlalong}a \"title\")
;; (code-etex-tla \"{tla}\" \"{stem}\")
;; (code-etex-tla \"{tlalong}\" \"{stem}\")
;; ;; ^ add to: (find-angg \".emacs\" \"{mm}-2023-2\")
;;
;; [R http://anggtwu.net/LATEX/{stem}.pdf PDF].
;; [# ({tlalong}p 1 \"index\")
;; # ({tlalong}a \"index\")
;; #]
;;
;; # ^ copy to: (find-TH \"2023.2-{MM}\")
;;
;; % ({tlalong}a \"title\")
;; \\incl{<}{stem}{>}
;;
;; % ^ copy to: (find-LATEX \"2023-2-{MM}-tudo.tex\" \"parts\")
;;
;; # (ee-copy-rest 3 '(find-LATEX \"{stem}.tex\"))
;;
;;
;; ")
;; ;; (find-LATEX "2023-1-CN-template.tex")
;; ;; (find-LATEX "2023-1-MM-template.tex")
;; ;; (find-LATEX "2023-2-MM-template.tex")
;; ,(ee-template0-file "~/LATEX/2023-2-MM-template.tex"
;; "⟦\\([!-~]+\\)⟧")
;; )
;; pos-spec-list)))
;; «find-MM-tudo-links» (to ".find-MM-tudo-links")
;; Skel: (find-find-links-links-new "MM-tudo" "yy s MM" "mm")
;; Test: (find-MM-tudo-links "23" "1" "LA")
;; (find-MM-tudo-links "24" "2" "C2")
;;
(defun find-MM-tudo-links (&optional yy s MM &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for MM-tudo."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(let* ((M (substring MM 1))
(mm (downcase MM))
(stem (ee-template0 "20{yy}-{s}-{MM}-tudo"))
(tlalong (ee-template0 "{mm}m{yy}{s}tudo"))
(tla (ee-template0 "{mm}tu")))
(apply
'find-elinks
`((find-MM-tudo-links ,yy ,s ,MM ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-MM-tudo-links)
(find-LATEX "2023-2-MM-tudo-template.tex")
""
,(ee-template0 "\
# (kill-new \" LATEX/20{yy}-{s}-{MM}-tudo.tex\\n\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/20{yy}-{s}-{MM}\")
# ^ Add to the makefile
;; ({tlalong}a \"title\")
(code-etex-tla \"{tla}\" \"{stem}\")
(code-etex-tla \"{tlalong}\" \"{stem}\")
;; ^ add to: (find-angg \".emacs\" \"{mm}-2024-2\")
;; ^ add to: (find-angg \".emacs\" \"{mm}-20{yy}-{s}\")
# (ee-copy-rest 1 '(find-LATEX \"20{yy}-{s}-{MM}-tudo.tex\"))
")
;; (find-LATEX "2023-1-MM-tudo-template.tex")
;; (find-LATEX "2023-2-MM-tudo-template.tex")
,(ee-template0-file "~/LATEX/2023-2-MM-tudo-template.tex"
"⟦\\([!-~]+\\)⟧")
)
pos-spec-list)))
(defun ee-1stclassvideos-add (entry)
(setq ee-1stclassvideos-info
(ee-areplace ee-1stclassvideos-info (car entry) (cdr entry))))
;;;
;;; ___ ___ _ __
;;; / __/ __| '__|
;;; \__ \__ \ |
;;; |___/___/_|
;;;
;; «find-ssr-links» (to ".find-ssr-links")
;; Skel: (find-find-links-links-new "ssr" "stem c hash" "")
;; Test: (find-ssr-links "nam" "nameofthevideofile")
;;
(defun find-ssr-links (&optional c stem hash time &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for SimpleScreenRecorder."
(interactive)
(setq stem (or stem "{stem}"))
(setq c (or c "{c}"))
(setq hash (or hash "{hash}"))
(setq time (or time "{time}"))
(apply
'find-elinks
`((find-ssr-links ,c ,stem ,hash ,time ,@pos-spec-list)
(find-ssr-links "nam" "nameofthevideofile" ,@pos-spec-list)
(find-ssr2-links ,c ,stem ,hash)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ssr-links)
""
,(ee-template0 "\
# (find-es \"xfce\" \"keyboard-shortcuts\")
# Alt-F1 -> Multimedia -> SimpleScreenRecorder
# Alt-F9 = hide_window_key
# SSR hotkey (record/stop): super-R
# Play:
# (find-fline \"/tmp/\" \"ssr.mp4\")
# (find-video \"/tmp/ssr.mp4\")
http://anggtwu.net/eev-videos/{stem}.mp4
https://www.youtube.com/watch?v={hash}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
scp ssr.mp4 $LINP/eev-videos/{stem}.mp4
scp ssr.mp4 $LINS/eev-videos/{stem}.mp4
Scp-np ssr.mp4 $TWUP/eev-videos/{stem}.mp4
Scp-np ssr.mp4 $TWUS/eev-videos/{stem}.mp4
# http://anggtwu.net/eev-videos/{stem}.mp4
# (find-linpfile \"eev-videos/\" \"{stem}\")
# (find-linsfile \"eev-videos/\" \"{stem}\")
# (find-twupfile \"eev-videos/\" \"{stem}\")
# (find-twusfile \"eev-videos/\" \"{stem}\")
# cp -v /tmp/ssr.mp4 $S/http/anggtwu.net/eev-videos/{stem}.mp4
mkdir -p $S/http/anggtwu.net/eev-videos/
cd $S/http/anggtwu.net/eev-videos/
wget -nc 'http://anggtwu.net/eev-videos/{stem}.mp4'
echo 'http://anggtwu.net/eev-videos/{stem}.mp4' >> ~/.psne.log
# (find-fline \"$S/http/anggtwu.net/eev-videos/\")
# (find-fline \"$S/http/anggtwu.net/eev-videos/\" \"{stem}.mp4\")
# (find-video \"http://anggtwu.net/eev-videos/{stem}.mp4\")
# (find-video \"$S/http/anggtwu.net/eev-videos/{stem}.mp4\")
# Upload to youtube:
# (kill-new \"/home/edrx/snarf/anggtwu.net/eev-videos/{stem}.mp4\")
# (find-sh0 \"cp -v $S/http/anggtwu.net/eev-videos/{stem}.mp4 /tmp/\")
# (setq ee-subs-c \"{c}\")
# (setq ee-subs-hash \"{hash}\")
# (setq ee-subs-mp4stem \"{stem}\")
# (setq ee-subs-length \"{time}\")
# (find-subs-links \"{c}\")
videos [R http://anggtwu.net/eev-videos/{stem}.mp4 1]
([R https://www.youtube.com/watch?v={hash} YT])
# https://www.youtube.com/watch?v={hash}
# https://www.youtube.com/watch?v={hash}#t=0m00s
# (code-video \"{c}video\" \"$S/http/anggtwu.net/eev-videos/{stem}.mp4\")
% (find-ssr-links \"{c}\" \"{stem}\" \"{hash}\")
% (code-eevvideo \"{c}\" \"{stem}\" \"{hash}\")
% (code-eevlinksvideo \"{c}\" \"{stem}\" \"{hash}\")
% (find-1stclassvideolsubs \"{c}\")
% (find-{c}video \"0:00\")
;; Info: (find-1stclassvideo-links \"{c}\")
;; (find-eev \"eev-videolinks.el\" \"{c}\")
;; (find-eev \"eev-videolinks.el\" \"eev2021\")
;;
(ee-1stclassvideos-add '
;;
;; <{c}>
;; Play: (find-{c}video \"0:00\")
;; Index: (find-1stclassvideoindex \"{c}\")
(\"{c}\"
:title \"TITLE\"
:mp4 \"http://anggtwu.net/eev-videos/{stem}.mp4\"
:yt \"http://www.youtube.com/watch?v={hash}\"
:page \"http://anggtwu.net/PAGE.html\"
:lang \"portuguese\"
:date \"DATE\"
:length \"{time}\"
:subs \".vtt\"
:comment \"COMMENT\")
)
;; (find-code-1stclassvideos)
(code-1stclassvideos)
code_eevshortvideo(\"{c}\", \"{stem}\", \"{hash}\")
# ^ copy to: (find-blogme3 \"sandwiches-defs.lua\" \"code_eevshortvideos\")
[\"{c}\"] = \"{hash}\",
# ^ copy to: (find-blogme3 \"videoindex.lua\")
# (find-sshot-links \"5\" \"{stem}\")
def [[ PLEFT 1 body \"<p align=\\\"left\\\">$body</p>\" ]]
def [[ FIG 2 target,img \"<a href=\\\"$target\\\"><IMG SRC=\\\"$img\\\"></a>\" ]]
[PLEFT
[FIG http://anggtwu.net/eev-videos/{stem}.mp4
IMAGES/{stem}-small.png]
]
# (find-subtitles3-links \"{c}\" \"{stem}\" \"{hash}\")
# (find-yttranscript-links \"{c}\" \"{stem}\" \"{hash}\")
# (find-editeevsubtitles-links-1 \"{c}\")
# (find-blogme3-legendas-links \"{c}\" \"{stem}\" \"{hash}\")
{<}\\footnotesize
\\url{<}http://anggtwu.net/eev-videos/{stem}.mp4{>}
\\url{<}https://www.youtube.com/watch?v={hash}{>}
{>}
")
)
pos-spec-list))
;; ,(ee-find-psne-core (format "http://anggtwu.net/eev-videos/%s.mp4" stem) "-nc")
;;; ___ _
;;; / _ \| |__ ___
;;; | | | | '_ \/ __|
;;; | |_| | |_) \__ \
;;; \___/|_.__/|___/
;;;
;; «find-obs-links» (to ".find-obs-links")
;; Skel: (find-find-links-links-new "obs" "stem c hash" "")
;; Test: (find-obs-links "2022test0" "test0")
;;
(defun find-obs-links (&optional stem c hash &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for obs."
(interactive)
(setq stem (or stem "{stem}"))
(setq c (or c "{c}"))
(setq hash (or hash "{hash}"))
(apply
'find-elinks
`((find-obs-links ,stem ,c ,hash ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-obs-links)
""
,(ee-template0 "\
# (find-es \"xfce\" \"keyboard-shortcuts\")
# Alt-F1 -> Multimedia -> SimpleScreenRecorder
# Alt-F9 = hide_window_key
# SSR hotkey (record/stop): super-R
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Rename:
# (find-fline \"/tmp/\" \" Screen\")
cd /tmp/
ls -lAF /tmp/Screen*.mov
ls -lAF /tmp/Screen*.mov
#mv -iv /tmp/Screen*.mov /tmp/obs.mov
mv -v /tmp/Screen*.mov /tmp/obs.mov
# Convert:
ffmpeg -i obs.mov -vcodec h264 obs.mp4
# Play:
# (find-fline \"/tmp/\" \"obs.mov\")
# (find-fline \"/tmp/\" \"obs.mp4\")
# (find-video \"/tmp/obs.mov\")
# (find-video \"/tmp/obs.mp4\")
# Upload:
# (Scp-np is my script to run scp with no password - please change)
Scp-np {stem}.mp4 marc@0branch.com:snippets/eev-videos/{stem}.mp4
# Check with tramp:
# (find-fline \"/scp:marc@0branch.com:~/public_html/eev-videos/\")
# (find-fline \"/scp:marc@0branch.com:~/public_html/eev-videos/\" \"{stem}.mp4\")
# Psne it:
mkdir -p $S/https/0branch.com/snippets/eev-videos/
cd $S/https/0branch.com/snippets/eev-videos/
wget -nc 'https://0branch.com/snippets/eev-videos/{stem}.mp4'
echo 'https://0branch.com/snippets/eev-videos/{stem}.mp4' >> ~/.psne.log
# Verify and play the local copy:
# (find-fline \"$S/https/0branch.com/snippets/eev-videos/\" \"{stem}.mp4\")
# (find-video \"$S/https/0branch.com/snippets/eev-videos/{stem}.mp4\")
# (code-video \"{c}video\" \"$S/https/0branch.com/snippets/eev-videos/{stem}.mp4\")
# (find-{c}video \"0:00\")
")
)
pos-spec-list))
;; «find-emacs-test-links» (to ".find-emacs-test-links")
;; Skel: (find-find-links-links-new "emacs-test" "stem" "")
;; Test: (find-emacs-test-links)
;;
(defun find-emacs-test-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for emacs-test."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-emacs-test-links ,stem ,@pos-spec-list)
(find-emacs-test-links "empty")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-emacs-test-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
EMACSFONT=\"Monospace 14\"
EMACSFONT=\"6x13\"
function emacs-with-big-font () {<}
~/bigsrc/emacs27/src/emacs -fg bisque -bg black -fn \"$EMACSFONT\" $*
{>}
# (find-fline \"~/.emacs\")
# (find-fline \"~/.emacs.d/\")
# (find-fline \"~/.emacs.d/elpa/\")
# (find-fline \"~/.emacs-orig\")
# (find-fline \"~/.emacs-orig.d/\")
# (find-fline \"~/.emacs-orig.d/elpa/\")
# (find-fline \"~/.emacs-{stem}\")
# (find-fline \"~/.emacs-{stem}.d/\")
# (find-fline \"~/.emacs-{stem}.d/elpa/\")
cd; mv -ivT .emacs .emacs-orig
cd; mv -ivT .emacs.d .emacs-orig.d
cd; mv -ivT .emacs-{stem} .emacs
cd; mv -ivT .emacs-{stem}.d .emacs.d
# (require 'package)
# (package-initialize)
# (package-install 'eev)
# (eev-beginner)
# (add-to-list 'package-archives '(\"melpa\" . \"https://melpa.org/packages/\"))
emacs-with-big-font
cd; mv -ivT .emacs .emacs-{stem}
cd; mv -ivT .emacs.d .emacs-{stem}.d
cd; mv -ivT .emacs-orig .emacs
cd; mv -ivT .emacs-orig.d .emacs.d
")
)
pos-spec-list))
;; «find-vimeodl-links» (to ".find-vimeodl-links")
;; (find-fline "/sda5/videos/__shibari/")
;;
(defvar ee-vimeodl-dir "/sda5/videos/")
(defvar ee-vimeodl-dir2 "/sda5/videos/__shibari/")
(defvar ee-vimeodl-command "youtube-dl")
(defun ee-vimeodl-hash-around-point () (ee-stuff-around-point "0-9"))
;; (find-efunction 'find-youtubedl-links)
;; Test: (find-vimeodl-links nil nil "193478557")
;;
(defun find-vimeodl-links (&optional dir title hash ext- stem &rest rest)
"Visit a temporary buffer containing hyperlinks for vimeo-dl."
(interactive)
(setq dir (or dir ee-vimeodl-dir "{dir}"))
(setq hash (or hash (ee-vimeodl-hash-around-point) "{hash}"))
;; (setq title (or title (ee-vimeodl-guess-title dir hash) "{title}"))
;; (setq ext- (or ext- (ee-vimeodl-guess-ext- dir hash) "{ext-}"))
(setq title (or title "{title}"))
(setq ext- (or ext- "{ext-}"))
(setq stem (or stem "{stem}"))
(apply 'find-elinks `(
;; Convention: the first sexp always regenerates the buffer.
(find-vimeodl-links ,dir ,title ,hash ,ext- ,stem)
(find-vimeodl-links ,dir nil ,hash nil ,stem)
""
(find-vimeodl-links ,ee-vimeodl-dir nil ,hash nil ,stem)
(find-vimeodl-links ,ee-vimeodl-dir2 nil ,hash nil ,stem)
;; (find-vimeodl-links ,ee-vimeodl-dir3 nil ,hash nil ,stem)
;; (find-vimeodl-links ,ee-vimeodl-dir4 nil ,hash nil ,stem)
(setq ee-vimeodl-dir "/sda5/sda5/videos/__shibari/")
(find-efunction 'find-vimeodl-links)
;;
;; (find-vimeodl-links ee-vimeodl-dir ,title ,hash ,ext- ,stem)
;; (setq ee-vimeodl-dir ,ee-vimeodl-dir)
""
;; (find-ydbgrep ,(format "grep --color -nH -e %s db.lua" hash))
;;
;; Body:
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
# https://vimeo.com/{hash}
# http://www.vimeo.com/watch?v={hash}#t=0h00m00s
cd {dir}
{ee-vimeodl-command} -f http-540p 'https://vimeo.com/{hash}'
# Or:
{ee-vimeodl-command} -F 'https://vimeo.com/{hash}'
{ee-vimeodl-command} 'https://vimeo.com/{hash}'
# (find-es \"video\" \"vimeo-dl\")
# (find-fline \"{dir}\" \"{hash}\")
# (find-fline \"{dir}\" \"{title}-{hash}\")
# (find-fline \"{dir}\" \"{title}-{hash}{ext-}\")
# (find-video \"{dir}{title}-{hash}{ext-}\")
# (find-video \"{dir}{title}-{hash}{ext-}.part\")
# (code-video \"{stem}video\" \"{dir}{title}-{hash}{ext-}\")
# (code-video \"{stem}video\" \"{dir}{title}-{hash}{ext-}.part\")
# (find-{stem}video)
# (find-{stem}video \"0:00\")
# Error messages (for the player):
# (find-ebuffer \"*Messages*\")
")
) rest))
;; «find-repl-lualatex-links» (to ".find-repl-lualatex-links")
;; Skel: (find-find-links-links-new "repl-lualatex" "" "")
;; Test: (find-repl-lualatex-links)
;;
(defun find-repl-lualatex-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for repl-lualatex."
(interactive)
(apply
'find-elinks
`((find-repl-lualatex-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-repl-lualatex-links)
""
,(ee-template0 "\
% (find-LATEX \"tmp.tex\")
\\catcode`\\^^J=10
\\directlua{<}dofile \"dednat6load.lua\"{>} % (find-LATEX \"dednat6load.lua\")
\\def\\repl{<}\\directlua{<}print(); REPL = Repl:new(); REPL:repl(){>}{>}
\\repl
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-es \"luatex\" \"show\")
cd ~/LATEX/
lualatex tmp.tex
mt = function (s) tok = token.create(s); print(tok) end
ma = function (s) print(token.get_macro(s)) end
me = function (s) print(token.get_meaning(s)) end
md = function (s)
local meaning = token.get_meaning(s)
local a,b = meaning:match\"^(.-)%->(.*)$\"
print(\"\\\\\"..s..a..\"\\n -> \"..b)
end
ma \"break\"
me \"break\"
ma \"section\"
ma \"@startsection\"
md \"thmsubsection\"
md \"@thm\"
md \"@xthm\"
md \"@begintheorem\"
md \"@endtheorem\"
md \"end\"
")
)
pos-spec-list))
;; «find-classroom-trab-links» (to ".find-classroom-trab-links")
;; Skel: (find-find-links-links-new "classroom-trab" "name" "dir len")
;; Test: (find-classroom-trab-links "Alexandre Dos Santos Goncalves Junior")
;;
(defun find-classroom-trab-links (&optional name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for classroom-trab."
(interactive)
(setq name (or name "{name}"))
(let* ((dir ee-classroom-dir)
(len (length name)))
(apply
'find-elinks
`((find-classroom-trab-links ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-classroom-trab-links)
""
(setq ee-classroom-dir "~/2020.1-C2/P1/C1/")
(setq ee-classroom-dir "~/2020.1-C2/P1/E1/")
(setq ee-classroom-dir "~/2020.1-C3/P1/")
(find-fline ,ee-classroom-dir)
""
,(ee-template0 "\
# (kill-new \"{name}\")
# (find-fline \"{dir}\")
# (find-fline \"{dir}\" \"{name}\")
# (kill-new \"{dir}{name}.pdf\")
# (kill-new \"{dir}{name}_1.jpg\")
# (kill-new \"{dir}{name}_2.jpg\")
# (kill-new \"{dir}{name}_3.jpg\")
# (kill-new \"{dir}{name}_4.jpg\")
# (find-fline \"{dir}{name}.pdf\")
# (find-fline \"{dir}{name}_all.pdf\")
# (find-fline \"{dir}{name}_corr.pdf\")
# (find-pdf-page \"{dir}{name}.pdf\")
# (find-pdf-page \"{dir}{name}_all.pdf\")
# (find-pdf-page \"{dir}{name}_corr.pdf\")
# (find-xournalpp \"{dir}{name}.pdf\")
# (find-xournalpp \"{dir}{name}_all.pdf\")
# (find-xournalpp \"{dir}{name}_corr.pdf\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd {dir}
laf \"{name}\"*
convert \"{name}\"*.jpg \"{name}_all\".pdf
laf \"{name}\"*
laf \"{name}\"*_small.jpg
rm -v \"{name}\"*_small.jpg
laf \"{name}\"*.jpg
ls \"{name}\"*.jpg
ls \"{name}\"*.jpg | cut -b{(+ 2 len)}-
ls \"{name}\"*.jpg | cut -b{(+ 2 len)}- | rev | cut -b5- | rev | tee /tmp/o
for i in 01 02 03 04 05 06 07 08 09 10; do
convert \"{name}\"_$i.jpg \\
-scale 50% \"{name}\"_${<}i{>}_small.jpg
done
laf \"{name}\"*
convert \"{name}\"*small.jpg \"{name}_all\".pdf
laf \"{name}\"*
# (find-fline \"{dir}\" \"{name}\")
cp -v {dir}\"{name}\".pdf /tmp/a.pdf
#
rm -Rv /tmp/pdf-jpg-pdf/
mkdir /tmp/pdf-jpg-pdf/
cd /tmp/pdf-jpg-pdf/
pdftoppm -jpeg -jpegopt quality=80 -r 150 /tmp/a.pdf b
convert b*.jpg /tmp/b.pdf
# (find-fline \"/tmp/pdf-jpg-pdf/\")
# (find-fline \"/tmp/\" \"a.pdf\")
# (find-fline \"/tmp/\" \"b.pdf\")
#
cp -v /tmp/b.pdf {dir}\"{name}\"_small.pdf
")
)
pos-spec-list)))
(setq ee-classroom-dir "~/2020.1-C2/P1/C1/")
;; «find-emacsdevel-links» (to ".find-emacsdevel-links")
;; Skel: (find-find-links-links-new "emacsdevel" "yyyy-mm nnnn" "")
;; Test: (find-emacsdevel-links)
;;
(defalias 'find-eml-links 'find-emacsdevel-links)
(defun find-emacsdevel-links (&optional yyyy-mm nnnn &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for emacsdevel."
(interactive)
(setq yyyy-mm (or yyyy-mm "2025-04"))
(setq yyyy-mm (or yyyy-mm "{yyyy-mm}"))
(setq nnnn (or nnnn "{nnnn}"))
(apply
'find-elinks
`((find-emacsdevel-links ,yyyy-mm ,nnnn ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-emacsdevel-links)
(find-efunction 'find-eml-links)
""
,(ee-template0 "\
# http://lists.gnu.org/archive/html/help-gnu-emacs/
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=help-gnu-emacs
# http://lists.gnu.org/archive/html/emacs-devel/
# https://lists.gnu.org/archive/html/emacs-devel/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/emacs-devel/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-devel/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/emacs-devel/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-devel/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=emacs-devel
# http://lists.gnu.org/archive/html/bug-gnu-emacs/
# https://lists.gnu.org/archive/html/bug-gnu-emacs/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/bug-gnu-emacs/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/bug-gnu-emacs/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/bug-gnu-emacs/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/bug-gnu-emacs/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=bug-gnu-emacs
# http://lists.gnu.org/archive/html/emacs-orgmode/
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/html/eev/
# https://lists.gnu.org/archive/html/eev/{yyyy-mm}/
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=emacs-orgmode
# https://lists.gnu.org/archive/html/info-gnu-emacs/
# https://lists.gnu.org/archive/html/info-gnu-emacs/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/info-gnu-emacs/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-tangents/{yyyy-mm}/
# https://lists.gnu.org/archive/html/emacs-tangents/{yyyy-mm}/msg{nnnn}.html
")
)
pos-spec-list))
;; «find-helpgnuemacs-links» (to ".find-helpgnuemacs-links")
;; Skel: (find-find-links-links-new "helpgnuemacs" "yyyy-mm nnnn" "")
;; Test: (find-helpgnuemacs-links)
;;
(defun find-helpgnuemacs-links (&optional yyyy-mm nnnn &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for helpgnuemacs."
(interactive)
(setq yyyy-mm (or yyyy-mm "2021-12"))
(setq yyyy-mm (or yyyy-mm "{yyyy-mm}"))
(setq nnnn (or nnnn "{nnnn}"))
(apply
'find-elinks
`((find-helpgnuemacs-links ,yyyy-mm ,nnnn ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-helpgnuemacs-links)
""
,(ee-template0 "\
# http://lists.gnu.org/archive/html/help-gnu-emacs/
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/help-gnu-emacs/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=help-gnu-emacs
")
)
pos-spec-list))
;; «find-emacsorgmode-links» (to ".find-emacsorgmode-links")
;; Skel: (find-find-links-links-new "emacsorgmode" "yyyy-mm nnnn" "")
;; Test: (find-emacsorgmode-links)
;;
(defun find-emacsorgmode-links (&optional yyyy-mm nnnn &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for emacsorgmode."
(interactive)
(setq yyyy-mm (or yyyy-mm "2021-01"))
(setq yyyy-mm (or yyyy-mm "{yyyy-mm}"))
(setq nnnn (or nnnn "{nnnn}"))
(apply
'find-elinks
`((find-emacsorgmode-links ,yyyy-mm ,nnnn ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-emacsorgmode-links)
""
,(ee-template0 "\
# http://lists.gnu.org/archive/html/emacs-orgmode/
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/index.html
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/index.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/threads.html
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/threads.html#{nnnn}
# https://lists.gnu.org/archive/html/emacs-orgmode/{yyyy-mm}/msg{nnnn}.html
# https://lists.gnu.org/archive/cgi-bin/namazu.cgi?idxname=emacs-orgmode
")
)
pos-spec-list))
;; «find-vscan-links» (to ".find-vscan-links")
;; Skel: (find-find-links-links-new "vscan" "fname" "thisfname")
;; Test: (find-vscan-links "2020-1-C3-P2")
;;
(defun find-vscan-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for vscan."
(interactive)
(setq fname (or fname "{fname}"))
(let* ((thisfname (buffer-file-name)))
(apply
'find-elinks
`((find-vscan-links ,fname ,@pos-spec-list)
(find-vscan-links ,thisfname ,@pos-spec-list)
(find-vscan-links "2020-1-C3-P2")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-vscan-links)
""
,(ee-template0 "\
# (ee-copy-rest 1 '(find-LATEX \"{fname}.tex\"))
% <videos>
% (find-ssr-links \"2020_videoname\" \"videoc\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v ~/LATEX/{fname}.pdf /tmp/
cd /tmp/
xournalpp {fname}.pdf
% <scans>
% (find-LATEX \"2020-1-C3-aprox-2a-ordem-R2.tex\" \"scans\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"~/2020.1-C2/\")
# (find-fline \"~/2020.1-C3/\")
# (find-fline \"~/LATEX/2020-1-C2/\")
# (find-fline \"~/LATEX/2020-1-C3/\")
# (find-fline \"/tmp/qc3/\")
# (find-fline \"/tmp/\")
cd /tmp/qc3/
cd /tmp/
for i in *.jpg; do echo f $(basename $i .jpg); done
f () {<} rm -fv $1.png $1.pdf; djvuize $1.pdf {>}
f () {<} rm -fv $1.png $1.pdf; djvuize WHITEBOARDOPTS=\"-m 0.5\" $1.pdf; xpdf $1.pdf {>}
f () {<} rm -fv $1.png $1.pdf; djvuize WHITEBOARDOPTS=\"-m 0.25\" $1.pdf; xpdf $1.pdf {>}
f () {<} cp -fv $1.png $1.pdf ~/2020.1-C3/ {>}
f () {<} cp -fv $1.pdf ~/LATEX/2020-1-C3/ {>}
f () {<} cp -fv $1.png $1.pdf ~/2020.1-C2/
cp -fv $1.pdf ~/LATEX/2020-1-C2/
cat <<%%%
% (find-latexscan-links \"C2\" \"$1\")
%%%
{>}
f 20201202_substtrig_grande
f 20201202_substtrig_ids_e_blocos
")
)
pos-spec-list)))
;; «find-LATEXpdf-links» (to ".find-LATEXpdf-links")
;; Skel: (find-find-links-links-new "LATEXpdf" "stem n" "")
;; Test: (find-LATEXpdf-links "2020-1-C2-P1" "10")
;; (c2mp1p 10)
;;
(defun find-LATEXpdf-links (&optional stem n &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for LATEXpdf."
(interactive)
(setq stem (or stem "{stem}"))
(setq n (or n 1))
(setq n (or n "{n}"))
(apply
'find-elinks
`((find-LATEXpdf-links ,stem ,n ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-LATEXpdf-links)
""
,(ee-template0 "\
# (find-xpdf-page \"~/LATEX/{stem}.pdf\" {n})
# (find-fline \"~/LATEX/{stem}.tex\")
# (kill-new \"http://anggtwu.net/LATEX/{stem}.pdf#page={n}\")
# (brg \"http://anggtwu.net/LATEX/{stem}.pdf#page={n}\")
")
)
pos-spec-list))
;; «find-pdfpages-links» (to ".find-pdfpages-links")
;; Skel: (find-find-links-links-new "pdfpages" "pages" "")
;; Test: (find-pdfpages-links "7,11-16,175-185")
;;
(defun find-pdfpages-links (&optional pages &rest pos-spec-list)
"Generate an e-script for extracting pages with the pdfpages package in latex."
(interactive)
(setq pages (or pages "{pages}"))
(apply
'find-elinks
`((find-pdfpages-links ,pages ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pdfpages-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-pdf-page \"/tmp/inp.pdf\")
# (find-pdf-page \"/tmp/out.pdf\")
cd /tmp/
cat > /tmp/out.tex <<'---'
\\documentclass[oneside]{<}book{>}
\\usepackage{<}pdfpages{>}
\\begin{<}document{>}
\\includepdf[pages={<}{pages}{>}]{<}inp.pdf{>}
\\end{<}document{>}
---
lualatex out.tex
# (find-pdf-page \"/tmp/inp.pdf\")
# (find-pdf-page \"/tmp/out.pdf\")
")
)
pos-spec-list))
;; «find-pdfpages2-links» (to ".find-pdfpages2-links")
;; Skel: (find-find-links-links-new "pdfpages2" "dir stem suffix opts" "")
;; Test: (find-pdfpages2-links)
;; Test: (find-pdfpages2-links "~/LATEX/" "2024-1-C2-P1")
;; Test: (find-pdfpages2-links "~/LATEX/" "2024-1-C2-P1" "-pp")
;; Test: (find-pdfpages2-links "~/LATEX/" "2024-1-C2-P1" "-pp" "fitpaper")
;; Test: (find-pdfpages2-links "~/LATEX/" "2024-1-C2-P1" "-pp" "pages=1-last,angle=90")
;; See: (find-es "tex" "pdfpages")
;; (find-es "ps" "pdfinfo")
;;
(defun find-pdfpages2-links (&optional dir stem suffix opts &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for pdfpages2."
(interactive)
(setq dir (or dir "{dir}"))
(setq stem (or stem "{stem}"))
(setq suffix (or suffix "{suffix}"))
(setq opts (or opts "{opts}"))
(apply
'find-elinks
`((find-pdfpages2-links ,dir ,stem ,suffix ,opts ,@pos-spec-list)
(find-pdfpages2-links ,dir ,stem "-pp" "pages=1-,fitpaper")
(find-pdfpages2-links ,dir ,stem "-pp" "pages=1-,fitpaper,landscape=true")
(find-pdfpages2-links ,dir ,stem)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pdfpages2-links)
""
,(ee-template0 "\
% (find-es \"tex\" \"pdfpages\")
%%% (ee-copy-rest-3m nil \"%%%-- end\" \"{dir}{stem}{suffix}.tex\")
\\documentclass[oneside,a4paper,landscape]{<}article{>}
\\usepackage{<}pdfpages{>}
\\begin{<}document{>}
\\includepdf[{opts}]{<}{stem}.pdf{>}
\\end{<}document{>}
%%%-- end
(find-sh \"cd {dir} && lualatex {stem}{suffix}.tex\" :end)
(find-pdf-page \"{dir}{stem}{suffix}.pdf\")
(find-sh0 \"cp -v {dir}{stem}{suffix}.pdf /tmp/\")
(find-pdf-page \"/tmp/{stem}{suffix}.pdf\")
")
)
pos-spec-list))
;; «find-sshot-links» (to ".find-sshot-links")
;; Skel: (find-find-links-links-new "sshot" "nsecs" "")
;; Test: (find-sshot-links)
;; See: (find-es "paste" "scrot-imgbb")
;; https://lists.gnu.org/archive/html/help-gnu-emacs/2021-07/msg00882.html
;; (find-angg ".emacs" "sshot-run")
;;
(defun find-sshot-links (&optional nsecs stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks taking a screenshot."
(interactive)
(setq stem (or stem "{stem}"))
(setq nsecs (or nsecs "5"))
(setq nsecs (or nsecs "{nsecs}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-sshot-links*")))
(apply
'find-elinks
`((find-sshot-links ,nsecs ,stem ,@pos-spec-list)
(find-sshot-links "{nsecs}")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-sshot-links)
""
(find-es "x" "scrot")
(find-angg "bin/scrxpp")
(find-es "tcl" "screenshooter")
(find-cp-angg-links "sshot.png" "/tmp/" "tmp/")
(find-bgprocess "tclsh ~/usrc/screenshooter/screenshooter.tcl")
""
,(ee-template0 "\
\(find-sh0 \"rm -v /tmp/sshot*.png\")
\(eev \"sleep {nsecs} && scrot -o --select /tmp/sshot.png\")
\(find-bgprocess '(\"sh\" \"-c\" \"sleep {nsecs} && scrot -o /tmp/sshot.png\"))
\(find-bgprocess '(\"sh\" \"-c\" \"sleep {nsecs} && scrot -o --select /tmp/sshot.png\"))
\(find-bgprocess '(\"sh\" \"-c\" \"sleep {nsecs} && scrot -o --select /tmp/sshot.png && scrxpp\"))
\(find-bgprocess '(\"sh\" \"-c\" \"sleep {nsecs} && scrot -o --border --select /tmp/sshot.png\"))
\(find-bgprocess \"xzgv /tmp/sshot.png\")
\(find-bgprocess \"gimp /tmp/sshot.png\")
\(find-fline \"/tmp/\" \"sshot.png\")
\(find-fline \"/tmp/sshot.png\")
\(imgbb-upload \"/tmp/sshot.png\")
# (find-fline \"~/blogme3/anggmake.lua\" \"2022tikz-exercises.png\")
# (find-fline \"~/blogme3/anggmake.lua\" \"2023-ELpeg2\")
# (find-fline \"~/IMAGES/\" \"2022tikz-exercises.png\")
# (find-fline \"~/IMAGES/\" \"2023-ELpeg2\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v /tmp/sshot.png /tmp/{stem}.png
convert /tmp/{stem}.png -scale 25% /tmp/{stem}-small.png
laf /tmp/*.png
convert /tmp/{stem}.png /tmp/{stem}.jpg
convert /tmp/{stem}.png -scale 25% /tmp/{stem}-small.jpg
laf /tmp/*.png /tmp/*.jpg
# (find-fline \"/tmp/\" \"{stem}.png\")
# (find-fline \"/tmp/{stem}.png\")
# (find-fline \"/tmp/{stem}-small.png\")
# (xz \"/tmp/{stem}.png\")
# (xz \"/tmp/{stem}.jpg\")
# (xz \"/tmp/{stem}-small.png\")
# (xz \"/tmp/{stem}-small.jpg\")
cp -v /tmp/{stem}-small.png ~/IMAGES/
cp -v /tmp/{stem}.png ~/IMAGES/
cp -v /tmp/{stem}-small.jpg ~/IMAGES/
cp -v /tmp/{stem}.jpg ~/IMAGES/
# (find-fline \"~/IMAGES/{stem}.png\")
# (find-fline \"~/IMAGES/{stem}-small.png\")
# (kill-new \" IMAGES/{stem}.png\")
# (kill-new \" IMAGES/{stem}-small.png\")
# (kill-new \" IMAGES/{stem}-small.jpg\")
# (find-blogme3file \"anggmake.lua\" \"IMAGES/2022tikz\")
# (find-blogme3file \"anggmake.lua\" \"IMAGES/2024-find-luaso\")
makeL
makeR
cd /tmp/
scp {stem}.png \\
{stem}-small.png $LINP/IMAGES/
scp {stem}.png $LINS/IMAGES/
# (find-linodesfile \"IMAGES/\")
# (find-linodesfile \"IMAGES/\" \"{stem}\")
# http://anggtwu.net/IMAGES/{stem}.png
Scp-np {stem}.png \\
{stem}-small.png $TWUP/IMAGES/
[PLEFT [FIG IMAGES/{stem}.png
IMAGES/{stem}-small.png]
]
")
)
pos-spec-list)))
(defalias 'sshot 'find-sshot-links)
;; «find-eevvideopage-links» (to ".find-eevvideopage-links")
;; Skel: (find-find-links-links-new "eevvideopage" "title pagestem c mp4stem hash" "")
;;
(defun find-eevvideopage-links (&optional title pagestem c mp4stem hash &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for eevvideopage."
(interactive)
(setq title (or title "{title}"))
(setq pagestem (or pagestem "{pagestem}"))
(setq c (or c "{c}"))
(setq mp4stem (or mp4stem "{mp4stem}"))
(setq hash (or hash "{hash}"))
(apply
'find-elinks
`((find-eevvideopage-links ,title ,pagestem ,c ,mp4stem ,hash ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-eevvideopage-links)
""
,(ee-template0 "\
(find-angg \".emacs.templates\" \"eev-videos-data\")
(find-angg \".emacs.templates\" \"eev-videos-data\" \"{c}\")
' (find-eevvideopage-links
\"{title}\"
\"{pagestem}\"
\"{c}\" \"{mp4stem}\" \"{hash}\")
(find-eev \"eev-audiovideo.el\" \"video-tutorials\" \"find-{c}video\")
(find-efunction 'find-videos-intro \"1. Some videos\")
(find-videos-intro \"1. Some videos\")
_. \"{title}\":
http://anggtwu.net/{pagestem}.html
http://anggtwu.net/{pagestem}.html#code-video
http://anggtwu.net/eev-videos/{mp4stem}.mp4
http://www.youtube.com/watch?v={hash}
(find-angg \".emacs.videos\" \"{c}\")
;; \"{title}\":
;; (find-TH \"{pagestem}\")
;; http://anggtwu.net/{pagestem}.html
;; http://anggtwu.net/eev-videos/{mp4stem}.mp4
;; (find-eevvideo-links \"{c}\" \"{pagestem}\" \"{hash}\")
;; (find-code-eevvideo \"{c}\" \"{pagestem}\" \"{hash}\")
' (code-eevvideo \"{c}\" \"{pagestem}\" \"{hash}\")
;; (find-angg \".emacs.templates\" \"eev-videos-data\" \"{c}\")
;; (find-eev \"eev-audiovideo.el\" \"video-tutorials\" \"find-{c}video\")
;; (find-videos-intro \"1. Some videos\" \"{c}\")
;; (find-TH \"{pagestem}\")
;; http://anggtwu.net/{pagestem}.html
;; (find-code-eevvideo \"{c}\" \"{pagestem}\" \"{hash}\")
;; (code-eevvideo \"{c}\" \"{pagestem}\" \"{hash}\")
;; (find-eevvideo-links \"{c}\" \"{mp4stem}\" \"{hash}\")
;; (code-video \"{c}video\" \"$S/http/anggtwu.net/eev-videos/{mp4stem}.mp4\")
;; (find-{c}video)
;; (ee-use-find-eevvideo-links)
;; (ee-use-find-youtube-video)
;; (setq ee-find-youtube-video-program 'find-googlechrome)
;; (setq ee-find-youtube-video-program 'find-firefox)
;; (code-eevvideo \"{c}\" \"{mp4stem}\" \"{hash}\")
;; (find-{c}video \"\")
")
)
pos-spec-list))
;; «find-eevvideopage-linkss» (to ".find-eevvideopage-linkss")
;; «eev-videos-data» (to ".eev-videos-data")
;; (find-videos-intro "1. Some videos")
;; This is obsolete!
;; See: (find-video-links-intro "9. First-class videos")
' (find-eevvideopage-links
"How to record executable notes with eev - and how to play them back"
"emacsconf2019"
"eev2019" "emacsconf2019" "86yiRG8YJD0")
' (find-eevvideopage-links
"On why most of the best features in eev look like 5-minute hacks"
"emacsconf2020"
"eev2020" "emacsconf2020" "hOAqBc42Gg8")
' (find-eevvideopage-links
"Some template-based functions of eev that are not five-minute hacks"
"2020-some-template-based"
"eevtempl" "2020-some-template-based" "91-9YfRPsuk")
' (find-eevvideopage-links
"How to install eev with M-x list-packages and how to navigate its tutorials"
"2020-list-packages-eev-nav"
"eevnav" "M-x-list-packages-eev-nav" "kxBjiUo88_U")
' (find-eevvideopage-links
"How to create hyperlinks to \"here\" with `find-here-links'"
"2020-find-here-links"
"eevfherel" "2020-find-here-links" "8jtiBlaDor4")
' (find-eevvideopage-links
"Using test blocks in eev"
"2021-test-blocks"
"testbls" "2020-test-blocks-1" "fpsF_M55W4o")
' (find-eevvideopage-links
"Short videos about workflows - and how to upload them"
"2021-ssr"
"2020ssr" "2020-short-find-ssr-links-2" "_0_NLXTVhBk")
' (find-eevvideopage-links
"How to use the `[Video links:]' blocks in the `intro's of eev"
"2021-video-links"
"vlinks" "2021-video-links" "xQqWufQgzVY")
;; Videos in Portuguese:
;; (find-eevvideo-links "eev2021pe" "2021projeto-de-ensino" "OW6WRnSQwc0")
' (find-eevvideopage-links
"Introdução ao Software Livre: Python, shell, Lua e eev"
"2021projeto-de-ensino"
"eev2021pe" "2021projeto-de-ensino" "OW6WRnSQwc0")
' (find-eevvideopage-links
"Como instalar o eev no Emacs"
"2021-oficina"
"eevnov2021a" "2021-oficina-1" "acFPMuZ5Jf4")
;; «code-youtube» (to ".code-youtube")
;; Tests: (code-youtube "chavosoband" "5Si7_LaxRkM" "A esquerda defende bandido?")
;; (code-youtube "hstocore" "fty9QL4aSRc" "Haskell to Core")
;; (find-hstocorevideo "0:00")
;;
(defun code-youtube (c0 hash &rest rest)
(let ((fname (car (ee-youtubedl-guess** hash)))
(c (concat c0 "video")))
(if fname
(code-video c fname)
(find-elinks
`((code-youtube ,c ,hash ,@rest)
,(ee-H "")
,(ee-H "Local copy not found! Run:")
(find-youtubedl-links nil nil ,hash nil ,c)
)))))
;; Test: (find-eppp (ee-youtubedl-guess** "fty9QL4aSRc" nil "Haskell to Core"))
;; See: (find-eev "eev-tlinks.el" "find-youtubedl-links" "(defun ee-youtubedl-guess*")
(defun ee-youtubedl-guess** (hash &optional dirs &rest rest)
"Return all the files containg HASH in DIRS.
HASH is usually a 11-character string.
When DIRS is nil use (cons ee-youtubedl-dir ee-youtubedl-dirs)."
(setq dirs (or dirs (cons ee-youtubedl-dir ee-youtubedl-dirs)))
(apply 'append
(mapcar
(lambda (dir) (ee-youtubedl-guess* dir hash))
dirs)))
;; «find-fossil-update-srf-links» (to ".find-fossil-update-srf-links")
;; Skel: (find-find-links-links-new "fossil-update-srf" "" "")
;;
(defun find-fossil-update-srf-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for fossil-update-srf."
(interactive)
(apply
'find-elinks
`((find-fossil-update-srf-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-fossil-update-srf-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/usrc/srf/
fossil up
fossil branch
fossil checkout trunk
fossil checkout multiline-comments
* (cd \"~/usrc/srf/eg/\")
* (eepitch-srf)
* (eepitch-kill)
* (eepitch-srf)
* (eek \"M-K M-K <up>\")
-- (find-srffile \"ports/lua/\")
-- (find-srffile \"eg/\")
-- (find-fline \"~/.srfrc\")
")
)
pos-spec-list))
(defun fus () (interactive) (find-fossil-update-srf-links 13))
;; «find-code-xxx-links» (to ".find-code-xxx-links")
;; Skel: (find-find-links-links-new "code-xxx" "xxx basicargs keywordargs" "")
;; Test: (find-code-xxx-links "eec-LATEX" "stem" "")
;;
(defun find-code-xxx-links (&optional xxx basicargs keywordargs &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for code-xxx."
(interactive)
(setq xxx (or xxx "{xxx}"))
(setq basicargs (or basicargs "{basicargs}"))
(setq keywordargs (or keywordargs "{keywordargs}"))
(let* (({vars} "{{vars}}"))
(apply
'find-elinks-elisp
`(;; Convention: the first sexp always regenerates the buffer.
,(ee-template0 "\
;; (find-code-xxx-links \"{xxx}\" \"{basicargs}\" \"{keywordargs}\")
;; (find-efunction 'find-code-xxx-links)
(defun code-{xxx} ({basicargs})
(eval (ee-read (ee-code-{xxx} {basicargs}))))
(defun find-code-{xxx} ({basicargs})
(find-estring-elisp (ee-code-{xxx} {basicargs})))
(defun ee-code-{xxx} ({basicargs})
(ee-template0 \"\\
;; (find-code-{xxx} \\\"C\\\" \\\"FNAME\\\")
;; (code-{xxx} \\\"C\\\" \\\"FNAME\\\")
\"))
")
)
pos-spec-list)))
;; «code-eec-LATEX» (to ".code-eec-LATEX")
;; Skel: (find-code-xxx-links "eec-LATEX" "stem" "")
;; Test: (find-code-eec-LATEX "2020-2-C3-taylor")
;; (code-eec-LATEX "2020-2-C3-taylor")
;;
(defun code-eec-LATEX (stem)
(eval (ee-read (ee-code-eec-LATEX stem))))
(defun find-code-eec-LATEX (stem)
(find-estring-elisp (ee-code-eec-LATEX stem)))
(defun ee-code-eec-LATEX (stem)
(ee-template0 "\
\(setq eec-stem \"{stem}\")
\(setq eec-pbname \"{stem}.pdf\")
\(setq eec-pfname (ee-LATEXfile eec-pbname))
\(setq eec-cmd \"lualatex -record {stem}.tex\")
\(setq eec-cbname (format \"cd %s\\n%s\" ee-LATEXdir eec-cmd))
\(defun e () (interactive) (find-LATEX \"{stem}.tex\"))
\(defun d () (interactive) (find-pdftools-page eec-pfname))
\(defun eec-cbkill () (interactive) (ee-kill-buffer eec-cbname))
\(defun eec-cbview () (interactive) (find-ebuffer eec-cbname :end))
\(defun eec-cbrun0 () (interactive) (find-LATEXsh eec-cmd \"Success!!!\"))
\(defun eec-pview0 ()
(interactive)
(if (get-buffer eec-pbname)
(find-ebuffer eec-pbname)
(find-estring \"(no PDF)\")))
\(defun eec-comp () (interactive) (e) (save-buffer) (eec-cbkill) (eec-cbrun0))
\(defun eec-view-ok () (interactive) (find-2a '(e) '(progn (d) (g))))
\(defun eec-view-err ()
(interactive)
(find-wset \"132_o_o_o\" '(e) '(eec-cbview) '(eec-pview0)))
\(defun ce ()
(interactive)
(condition-case nil
(progn (eec-comp)
(eec-view-ok))
(error (eec-view-err))))
"))
(defun ee-code-eec-LATEX (stem)
(ee-code-eec-dir "LATEX" stem))
;; «code-eec-dir» (to ".code-eec-dir")
;; Test: (find-code-eec-dir "LATEX" "2020-2-C3-taylor")
(defun code-eec-dir (c stem)
(eval (ee-read (ee-code-eec-dir c stem))))
(defun find-code-eec-dir (c stem)
(find-estring-elisp (ee-code-eec-dir c stem)))
(defun ee-code-eec-dir (c stem)
(ee-template0 "\
\(setq eec-stem \"{stem}\")
\(setq eec-pbname \"{stem}.pdf\")
\(setq eec-pfname (ee-{c}file eec-pbname))
\(setq eec-cmd \"lualatex -record {stem}.tex\")
\(setq eec-cbname (format \"cd %s\\n%s\" ee-{c}dir eec-cmd))
\(defun e () (interactive) (find-{c} \"{stem}.tex\"))
\(defun d () (interactive) (find-pdftools-page eec-pfname))
\(defun eec-cbkill () (interactive) (ee-kill-buffer eec-cbname))
\(defun eec-cbview () (interactive) (find-ebuffer eec-cbname :end))
\(defun eec-cbrun0 () (interactive) (find-{c}sh eec-cmd \"Success!!!\"))
\(defun eec-pview0 ()
(interactive)
(if (get-buffer eec-pbname)
(find-ebuffer eec-pbname)
(find-estring \"(no PDF)\")))
\(defun eec-comp () (interactive) (e) (save-buffer) (eec-cbkill) (eec-cbrun0))
\(defun eec-view-ok () (interactive) (find-2a '(e) '(progn (d) (g))))
\(defun eec-view-err ()
(interactive)
(find-wset \"132_o_o_o\" '(e) '(eec-cbview) '(eec-pview0)))
\(defun ce ()
(interactive)
(condition-case nil
(progn (eec-comp)
(eec-view-ok))
(error (eec-view-err))))
"))
;; «find-cp-angg-links» (to ".find-cp-angg-links")
;; Skel: (find-find-links-links-new "cp-angg" "fname localdir anggdir" "")
;;
(defun find-cp-angg-links (&optional fname localdir anggdir &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cp-angg."
(interactive)
(if (eq major-mode 'dired-mode)
(let* ((full0 (ee-shorten-file-name (ee-dired-to-fname)))
(dir0 (file-name-directory full0))
(fname0 (file-name-nondirectory full0))
(anggdir0 (replace-regexp-in-string "~/" "" dir0)))
(setq fname (or fname fname0))
(setq localdir (or localdir dir0))
(setq anggdir (or anggdir anggdir0))))
(setq fname (or fname "{fname}"))
(setq localdir (or localdir "{localdir}"))
(setq anggdir (or anggdir "{anggdir}"))
(apply
'find-elinks
`((find-cp-angg-links ,fname ,localdir ,anggdir ,@pos-spec-list)
(find-cp-angg-links ,fname ,localdir "tmp/" ,@pos-spec-list)
(find-cp-angg-links ,fname ,localdir "2022.2-C2/" ,@pos-spec-list)
(find-cp-angg-links ,fname ,localdir "2022.2-C3/" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cp-angg-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd {localdir}
scp -v {fname} $LINP/{anggdir}
scp -v {fname} $LINS/{anggdir}
# cp -v {fname} ~/{anggdir}
# (find-linpfile \"{anggdir}\" \"{fname}\")
# (find-linsfile \"{anggdir}\" \"{fname}\")
# (find-twupfile \"{anggdir}\" \"{fname}\")
# (find-twusfile \"{anggdir}\" \"{fname}\")
# http://anggtwu.net/{anggdir}{fname}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd {localdir}
Scp-np {fname} $TWUP/{anggdir}
Scp-np {fname} $TWUS/{anggdir}
# (find-twupfile \"{anggdir}\" \"{fname}\")
# (find-twusfile \"{anggdir}\" \"{fname}\")
# http://angg.twu.net/{anggdir}{fname}
")
)
pos-spec-list))
;; «find-eevshortvideo-links» (to ".find-eevshortvideo-links")
;; Moved to: (find-eev "eev-tlinks.el" "find-eevshortvideo-links")
;; «find-telegram-save-log-links» (to ".find-telegram-save-log-links")
;; Superseded by:
;; (to "find-princetelegram-links")
;; Skel: (find-find-links-links-new "telegram-save-log" "yyyy s cn tt" "")
;; Test: (find-telegram-save-log-links "2021" "1" "C2" "C1")
;; (find-telegram-save-log-links "2021" "1" "C2" "E1")
;; (find-telegram-save-log-links "2021" "1" "C3" "M1")
;;
;; (code-pdf-page "20211C2C1" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf")
;; (code-pdf-text "20211C2C1" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf")
;; (find-20211C2C1page)
;; (find-20211C2C1text)
;; (code-pdf-page "20211C2E1" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
;; (code-pdf-text "20211C2E1" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
;; (brg "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
;; (find-20211C2E1page)
;; (find-20211C2E1text)
;; (find-20211C2E1page 36 "jeito esperto")
;; (find-20211C2E1text 36 "jeito esperto")
;; (code-pdf-page "20211C3M1" "~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf")
;; (code-pdf-text "20211C3M1" "~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf")
;; (find-20211C3M1page)
;; (find-20211C3M1text)
;;
(defun find-telegram-save-log-links (&optional yyyy s cn tt &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for telegram-save-log."
(interactive)
(setq yyyy (or yyyy "{yyyy}"))
(setq s (or s "{s}"))
(setq cn (or cn "{cn}"))
(setq tt (or tt "{tt}"))
(apply
'find-elinks
`((find-telegram-save-log-links ,yyyy ,s ,cn ,tt ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-telegram-save-log-links)
""
,(ee-template0 "\
# (find-fline \"~/Downloads/Telegram Desktop/\" \"ChatExport\")
# (kill-new \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"~/{yyyy}.{s}-{cn}/\")
# (find-fline \"~/{yyyy}.{s}-{cn}/\" \"{cn}-{tt}-RCN-PURO-{yyyy}.{s}\")
# (find-fline \"/tmp/\" \"{cn}-{tt}-RCN-PURO-{yyyy}.{s}\")
# For tests:
# (find-sh0 \"mv -iv ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s} /tmp/\")
cat > /tmp/print.css <<'%%%'
body {<} font-size: 12 !important {>}
@page {<}
@bottom {<}
content: counter(page);
{>}
{>}
%%%
cd /tmp/
rm -v /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.zip
zip -r /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.zip {cn}-{tt}-RCN-PURO-{yyyy}.{s}/
prince -s /tmp/print.css \\
-o /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf \\
/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/messages.html
prince -s /tmp/print.css \\
-o /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf \\
/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/messages2.html
prince -s /tmp/print.css \\
-o /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf \\
/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/messages3.html
prince -s /tmp/print.css \\
-o /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf \\
/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/messages4.html
prince -s /tmp/print.css \\
-o /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf \\
/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/messages5.html
# (find-pdf-page \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf\")
# (find-pdf-text \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf\")
# (find-pdf-page \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf\")
# (find-pdf-text \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf\")
# (find-pdf-page \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf\")
# (find-pdf-text \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf\")
# (find-pdf-page \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf\")
# (find-pdf-text \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf\")
# (find-pdf-page \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf\")
# (find-pdf-text \"/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf\")
rm -Rv ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}*
mv -iv /tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}* ~/{yyyy}.{s}-{cn}/
# (find-fline \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/\")
# (find-fline \"~/{yyyy}.{s}-{cn}/\" \"{cn}-{tt}-RCN-PURO-{yyyy}.{s}\")
#Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf $TWUP/{yyyy}.{s}-{cn}/
# http://anggtwu.net/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf
# http://anggtwu.net/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf#page=1
# (find-twupfile \"{yyyy}.{s}-{cn}/\" \"{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf\")
Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf $TWUP/tmp/
Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf $TWUP/tmp/
Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf $TWUP/tmp/
Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf $TWUP/tmp/
Scp-np ~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf $TWUP/tmp/
# http://anggtwu.net/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf
# http://anggtwu.net/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf
# http://anggtwu.net/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf
# http://anggtwu.net/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf
# http://anggtwu.net/tmp/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf
# (find-fline \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/\" \"messages.html\")
# (find-fline \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}/\" \"messages2.html\")
# (code-pdf-page \"{yyyy}{s}{cn}{tt}\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf\")
# (code-pdf-text \"{yyyy}{s}{cn}{tt}\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}.pdf\")
# (code-pdf-page \"{yyyy}{s}{cn}{tt}2\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf\")
# (code-pdf-text \"{yyyy}{s}{cn}{tt}2\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-2.pdf\")
# (code-pdf-page \"{yyyy}{s}{cn}{tt}3\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf\")
# (code-pdf-text \"{yyyy}{s}{cn}{tt}3\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-3.pdf\")
# (code-pdf-page \"{yyyy}{s}{cn}{tt}4\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf\")
# (code-pdf-text \"{yyyy}{s}{cn}{tt}4\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-4.pdf\")
# (code-pdf-page \"{yyyy}{s}{cn}{tt}5\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf\")
# (code-pdf-text \"{yyyy}{s}{cn}{tt}5\" \"~/{yyyy}.{s}-{cn}/{cn}-{tt}-RCN-PURO-{yyyy}.{s}-5.pdf\")
# (find-{yyyy}{s}{cn}{tt}page)
# (find-{yyyy}{s}{cn}{tt}text)
# (find-{yyyy}{s}{cn}{tt}2page)
# (find-{yyyy}{s}{cn}{tt}2text)
# (find-{yyyy}{s}{cn}{tt}3page)
# (find-{yyyy}{s}{cn}{tt}3text)
# (find-{yyyy}{s}{cn}{tt}4page)
# (find-{yyyy}{s}{cn}{tt}4text)
# (find-{yyyy}{s}{cn}{tt}5page)
# (find-{yyyy}{s}{cn}{tt}5text)
")
)
pos-spec-list))
;; «find-build-for-arxiv-links» (to ".find-build-for-arxiv-links")
;; Skel: (find-find-links-links-new "build-for-arxiv" "stem" "")
;;
(defun find-build-for-arxiv-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for build-for-arxiv."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-build-for-arxiv-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-build-for-arxiv-links)
""
,(ee-template0 "\
% (find-LATEX \"2020favorite-conventions.tex\" \"make-for-arxiv\")
% _ _
% / \\ _ ____ _(_)_ __
% / _ \\ | '__\\ \\/ / \\ \\ / /
% / ___ \\| | > <| |\\ V /
% /_/ \\_\\_| /_/\\_\\_| \\_/
%
% <arxiv>
% (find-build-for-arxiv-links \"{stem}\")
% (find-LATEX \"2020favorite-conventions.tex\" \"make-for-arxiv\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LATEX/
#export PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH
export PATH=/usr/local/texlive/2019/bin/x86_64-linux:$PATH
#export PATH=/usr/local/bin:$PATH
which biber
biber --version
make -f 2019.mk STEM={stem} veryclean
lualatex {stem}.tex
biber {stem}
pdflatex -record {stem}.tex
# (find-LATEXfile \"{stem}.fls\" \"biblatex/\")
cd ~/LATEX/
flsfiles-zip {stem}.fls {stem}.zip
rm -rfv /tmp/{stem}.zip
rm -rfv /tmp/edrx-latex/
cd /tmp/
cp -v ~/LATEX/{stem}.zip .
mkdir /tmp/edrx-latex/
unzip -d /tmp/edrx-latex/ /tmp/{stem}.zip
cd /tmp/edrx-latex/
pdflatex {stem}.tex
pdflatex {stem}.tex
cp -v {stem}.pdf /tmp/
# (find-fline \"/tmp/edrx-latex/\")
# (find-fline \"/tmp/edrx-latex/{stem}.bbl\" \"bbl format version\")
# (find-pdf-page \"/tmp/edrx-latex/{stem}.pdf\")
# (find-pdf-text \"/tmp/edrx-latex/{stem}.pdf\")
# (find-fline \"/tmp/{stem}.zip\")
")
)
pos-spec-list))
;; «find-mygitrepo-links» (to ".find-mygitrepo-links")
;; Skel: (find-find-links-links-new "mygitrepo" "stem" "")
;; Tests: (find-mygitrepo-links "edrxrepl")
;; (find-mygitrepo-links "emacs-lua")
;; (find-mygitrepo-links "shelisp")
;; (find-mygitrepo-links "luatree")
;;
(defun find-mygitrepo-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for mygitrepo."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-mygitrepo-links ,stem ,@pos-spec-list)
(find-mygitrepo-links "emacs-lua" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mygitrepo-links)
""
,(ee-template0 "\
# Initialize:
# (find-fline \"~/{stem}/\")
# (find-fline \"~/{stem}/README.org\")
# (magit-status \"~/{stem}/\")
# (find-gitk \"~/{stem}/\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/{stem}/
laf
rm -Rf ~/{stem}/.git/
git init
git add README.org
git commit -m \"first commit\"
git branch -M main
git remote add origin https://github.com/edrx/{stem}.git
git push -u origin main
# (ee-copy-rest 1 '(find-angg \"{stem}/README.org\"))
# This file:
# https://github.com/edrx/{stem}
# http://anggtwu.net/{stem}/README.org.html
# http://anggtwu.net/{stem}/README.org
# (find-angg \"{stem}/README.org\")
# (find-angg \"{stem}/\")
# Author: Eduardo Ochs <eduardoochs@gmail.com>
#
# Some eev-isms:
# (defun c () (interactive) (eek \"C-c C-e h h\"))
# (defun o () (interactive) (find-angg \"{stem}/README.org\"))
# (defun v () (interactive) (brg \"~/{stem}/README.html\"))
# (defun cv () (interactive) (c) (v))
#
# Skel: (find-mygitrepo-links \"{stem}\")
# (find-efunction 'find-mygitrepo-links)
# See: (find-angg \"pict2e-lua/README.org\")
#
# (find-orgnode \"Table of Contents\")
#+OPTIONS: toc:nil num:nil
#+OPTIONS: org-html-postamble:nil
#+begin_comment
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/{stem}/
laf
rm -v *~
rm -v *.html
# (find-fline \"~/{stem}/\")
# (magit-status \"~/{stem}/\")
# (find-gitk \"~/{stem}/\")
#
# (s)tage all changes
# (c)ommit -> (c)reate
# (P)ush -> (p)ushremote
# https://github.com/edrx/{stem}
#
#+end_comment
# Local Variables:
# coding: utf-8-unix
# modes: (org-mode fundamental-mode)
# org-html-postamble: nil
# End:
")
)
pos-spec-list))
;; «find-rcirc-quick-links» (to ".find-rcirc-quick-links")
;; Skel: (find-find-links-links-new "rcirc-quick" "nick passwd" "")
;; Test: (find-rcirc-quick-links)
;;
(defun find-rcirc-quick-links (&optional nick passwd &rest pos-spec-list)
"Super-quick configuration for rcirc on eev."
(interactive)
(setq nick (or nick "{nick}"))
(setq passwd (or passwd "{passwd}"))
(apply
'find-elinks-elisp
`((find-rcirc-quick-links ,nick ,passwd ,@pos-spec-list)
(find-rcirc-quick-links "edrx" "MyP4ssw0rd" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-rcirc-quick-links)
""
,(ee-template0 "\
;; See:
;; (find-rcirc-intro)
;; (find-rcirc-intro \"1. The example that I use in workshops\")
;; (find-rcirc-intro \"4. Commands with very short names\")
\(setq rcirc-default-nick \"{nick}\")
\(defun e2 () (interactive) (find-libera-2a \"#eev\"))
\(defun e3 () (interactive) (find-libera-3a \"#eev\"))
\(defun m2 () (interactive) (find-libera-2a \"#emacs\"))
\(defun m3 () (interactive) (find-libera-3a \"#emacs\"))
\(setq rcirc-authinfo '((\"libera\" nickserv \"{nick}\" \"{passwd}\")
))
")
)
pos-spec-list))
;; «find-anggwget-links» (to ".find-anggwget-links")
;; Skel: (find-find-links-links-new "anggwget" "" "")
;; Test: (find-anggwget-links)
;; Use this instead: (find-angg-es-links)
;; (find-efunction 'find-angg-es-links)
;; «find-find-angg-links» (to ".find-find-angg-links")
;; Skel: (find-find-links-links-new "find-angg" "fname rest" "url findwget")
;; Tests (use `M-x efi'on the last one):
;; (find-find-angg-links "e/bullseye.e")
;; (find-find-angg-links "e/bullseye.e" "2021aug16")
;; (find-find-angg-links "e/bullseye.e" "2021aug16" "asroot")
;; (find-angg "e/bullseye.e" "2021aug16" "asroot")
;;
(defun find-find-angg-links (&optional fname &rest rest)
"Visit a temporary buffer containing hyperlinks for find-angg."
(interactive)
(setq fname (or fname "{fname}"))
(let* ((url0 (format "http://anggtwu.net/%s" fname))
(url1 (format "http://anggtwu.net/%s.html" fname))
(url2 (if (car rest) (format "%s#%s" url1 (car rest))))
(findwget `(find-wgeta ,url0 ,@rest)))
(apply
'find-elinks
`((find-find-angg-links ,fname ,@rest)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-find-angg-links)
""
""
,url0
,url1
,url2
,(ee-S `(find-wgeta ,url0 ,@rest))
,(ee-S `(find-wgeta-elisp ,url0 ,@rest))
""
,(ee-S `(find-angg ,fname ,@rest))
,(ee-template0 "\
")
)
nil ;; pos-spec-list
)))
(defalias 'find-find-angg 'find-find-angg-links)
;; «find-find-es-links» (to ".find-find-es-links")
;; Skel: (find-find-links-links-new "find-es" "fname rest" "url findwget")
;; Tests (use `M-x efi'on the last one):
;; (find-find-es-links "bullseye")
;; (find-find-es-links "bullseye" "2021aug16")
;; (find-find-es-links "bullseye" "2021aug16" "asroot")
;; (find-es "bullseye" "2021aug16" "asroot")
;;
(defun find-find-es-links (&optional fname &rest rest)
"Visit a temporary buffer containing hyperlinks for find-es."
(interactive)
(setq fname (or fname "{fname}"))
(let* ((url0 (format "http://anggtwu.net/e/%s.e" fname))
(url1 (format "http://anggtwu.net/e/%s.e.html" fname))
(url2 (if (car rest) (format "%s#%s" url1 (car rest))))
(findwget `(find-wgeta ,url0 ,@rest)))
(apply
'find-elinks
`((find-find-es-links ,fname ,@rest)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-find-es-links)
""
""
,url0
,url1
,url2
,(ee-S `(find-wgeta ,url0 ,@rest))
;; ,(ee-S `(find-wgeta-elisp ,url0 ,@rest))
""
,(ee-S `(find-es ,fname ,@rest))
,(ee-template0 "\
")
)
nil ;; pos-spec-list
)))
(defalias 'find-find-es 'find-find-es-links)
;; «find-maclanemoerdijk-links» (to ".find-maclanemoerdijk-links")
;; Skel: (find-find-links-links-new "maclanemoerdijk" "page comment" "pmain pmain3")
;; Test: (find-maclanemoerdijk-links (+ 11 26) "This makes y into a functor")
;; Used in: (find-LATEX "2021sgl.tex")
;;
(defun find-maclanemoerdijk-links (&optional page comment suffix &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for maclanemoerdijk."
(interactive)
(setq page (or page 226))
(setq comment (or comment "{comment}"))
(setq suffix (or suffix "{s}"))
(let* ((pmain (- page 11))
(pmain3 (format "%03d" pmain)))
(apply
'find-elinks
`((find-maclanemoerdijk-links ,page ,comment ,suffix ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-maclanemoerdijkpage (+ 11 ,pmain) ,comment ,suffix ,@pos-spec-list)
(find-angg "PYTHON/onepagepdftopng.py")
(find-es "ps" "mupdf")
(find-efunction 'find-maclanemoerdijk-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
SGL=$HOME/books/__cats/maclane_moerdijk__sheaves_in_geometry_and_logic.pdf
mutool draw -o ~/LATEX/2021sgl/p{pmain3}.pdf $SGL {page}
mutool info ~/LATEX/2021sgl/p{pmain3}.pdf
~/PYTHON/onepagepdftopng.py \\
~/LATEX/2021sgl/p{pmain3}.pdf \\
~/LATEX/2021sgl/p{pmain3}.png
# (find-pdf-page \"~/LATEX/2021sgl/p{pmain3}.pdf\")
# (find-gimp \"~/LATEX/2021sgl/p{pmain3}.png\")
# (find-fline \"~/LATEX/2021sgl/p{pmain3}.png\")
# (find-fline \"~/LATEX/2021sgl/\" \"p{pmain3}.png\")
# (kill-new \"~/LATEX/2021sgl/p{pmain3}{suffix}.png\")
# (find-fline \"~/LATEX/2021sgl/p{pmain3}{suffix}.png\")
# (find-pdf-page \"~/LATEX/2021sgl/p{pmain3}{suffix}.pdf\")
cd ~/LATEX/2021sgl/
convert p{pmain3}{suffix}.png p{pmain3}{suffix}.pdf
$% (find-pdf-page \"~/LATEX/2021sgl/p{pmain3}{suffix}.pdf\")
\\incgr{<}width=6cm{>}{<}2021sgl/p{pmain3}{suffix}.pdf{>}
$
")
)
pos-spec-list)))
;; «find-cwm-links» (to ".find-cwm-links")
;; Skel: (find-find-links-links-new "cwm" "page comment suffix" "pmain pmain3")
;; Test: (find-cwm-links (+ 13 45) "6. Comma Categories")
;; Used in: (find-LATEX "2020cwm.tex")
;;
(defun find-cwm-links (&optional page comment suffix &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cwm."
(interactive)
(setq page (or page 226))
(setq comment (or comment "{comment}"))
(setq suffix (or suffix "{s}"))
(let* ((pmain (- page 13))
(pmain3 (format "%03d" pmain)))
(apply
'find-elinks
`((find-cwm-links ,page ,comment ,suffix ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-cwm2page (+ 13 ,pmain) ,comment ,suffix ,@pos-spec-list)
(find-angg "PYTHON/onepagepdftopng.py")
(find-es "ps" "mupdf")
(find-efunction 'find-cwm-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
CWM=$HOME/books/__cats/maclane__cwm_springer_2nd_ed.pdf
mutool draw -o ~/LATEX/2021cwm/p{pmain3}.pdf $CWM {page}
mutool info ~/LATEX/2021cwm/p{pmain3}.pdf
~/PYTHON/onepagepdftopng.py \\
~/LATEX/2021cwm/p{pmain3}.pdf \\
~/LATEX/2021cwm/p{pmain3}.png
# (find-pdf-page \"~/LATEX/2021cwm/p{pmain3}.pdf\")
# (find-gimp \"~/LATEX/2021cwm/p{pmain3}.png\")
# (find-fline \"~/LATEX/2021cwm/p{pmain3}.png\")
# (find-fline \"~/LATEX/2021cwm/\" \"p{pmain3}.png\")
# (kill-new \"~/LATEX/2021cwm/p{pmain3}{suffix}.png\")
# (find-fline \"~/LATEX/2021cwm/p{pmain3}{suffix}.png\")
# (find-pdf-page \"~/LATEX/2021cwm/p{pmain3}{suffix}.pdf\")
cd ~/LATEX/2021cwm/
convert p{pmain3}{suffix}.png p{pmain3}{suffix}.pdf
$% (find-pdf-page \"~/LATEX/2021cwm/p{pmain3}{suffix}.pdf\")
\\incgr{<}width=6cm{>}{<}2021cwm/p{pmain3}{suffix}.pdf{>}
$
")
)
pos-spec-list)))
;; «find-emacs28-bisect-by-hand-links» (to ".find-emacs28-bisect-by-hand-links")
;; Skel: (find-find-links-links-new "emacs28-bisect-by-hand" "n" "")
;; See: (find-es "git" "git-bisect-by-hand")
;; Test: (find-emacs28-bisect-by-hand-links "42")
;;
(defun find-emacs28-bisect-by-hand-links (&optional n &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for emacs28-bisect-by-hand."
(interactive)
(setq n (or n "{n}"))
(apply
'find-elinks
`((find-emacs28-bisect-by-hand-links ,n ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-emacs28-bisect-by-hand-links)
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
# (find-fline \"~/bigsrc/emacs28_{n}/\")
rm -Rfv ~/bigsrc/emacs28_{n}/
mkdir ~/bigsrc/emacs28_{n}/
cd ~/bigsrc/emacs28_{n}/
cd ~/bigsrc/emacs/
cp -a .* * ~/bigsrc/emacs28_{n}/
cd ~/bigsrc/emacs28_{n}/
export PAGER=cat
git branch --list -a
git for-each-ref
git log --oneline --graph --all -20
# (find-gitk \"~/bigsrc/emacs28_{n}/\")
# (magit-status \"~/bigsrc/emacs28_{n}/\")
# (find-fline \"~/bigsrc/emacs28_{n}/\")
git checkout master~{n}
./autogen.sh 2>&1 | tee oa
# ./configure 2>&1 | tee oc
./configure --with-modules 2>&1 | tee oc
make 2>&1 | tee om
cat > /tmp/foo.el <<'%%%'
(progn
(add-to-list 'load-path \"~/eev-current\")
(require 'eev-beginner)
)
%%%
~/bigsrc/emacs28_{n}/src/emacs -T emacs28_{n} -fg bisque -bg black -fn $EMACSFONT /tmp/foo.el
~/bigsrc/emacs28_{n}/src/emacs -T emacs28_{n} -fg bisque -bg black -fn $EMACSFONT -Q /tmp/foo.el
")
)
pos-spec-list))
;; «find-agda-links» (to ".find-agda-links")
;; Skel: (find-find-links-links-new "agda" "" "")
;; Test: (find-agda-links)
;;
(defun fal () (interactive) (find-2a nil '(find-agda-links)))
;;
(defun find-agda-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for agda."
(interactive)
(apply
'find-elinks-elisp
`((find-agda-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-agda-links)
""
(find-angg ".emacs.agda" "recordstutorial")
(find-es "agda" "agda2-mode-map")
(find-es "agda" "selinger")
(find-agdamodeelfile "agda-input.el")
(eejump-554)
""
(find-my-mode-links)
(define-key my-mode-map (kbd "M-,") 'ee-compose-pair)
(define-key my-mode-map (kbd "M-,") nil)
""
";; For Agda:"
";; (keymap-unset eev-mode-map \"M-,\" 'remove)"
";; (ee-composes-do ee-composes-bigstr-math '(ee-composes-do-remove-face))"
""
";; For non-Agda:"
";; (define-key eev-mode-map (kbd \"M-,\") 'ee-compose-pair)"
";; (ee-composes-do ee-composes-bigstr-math)"
;; (find-es "agda" "M-,")
;;
;; (eek "M-h M-k C-c C-l ;; agda2-load - replace question mark with hole")
;; (eek "M-h M-k C-c C-SPC ;; agda2-give - fill in hole")
;; (eek "M-h M-k C-c C-a ;; agda2-auto-maybe-all - automatically fill in hole")
;; (eek "M-h M-k M-. ;; agda2-goto-definition-keyboard")
;; (eek "M-h M-k M-, ;; agda2-go-back")
;; (eek "M-h M-k C-c C-c ;; agda2-make-case - case split")
;; (eek "M-h M-k C-c C-r ;; agda2-refine - refine with constructor")
;; (eek "M-h M-k C-c C-, ;; agda2-goal-and-context - goal type and context")
;; (eek "M-h M-k C-c C-. ;; agda2-goal-and-context-and-inferred - ...type")
;; (eek "M-h M-k C-c C-d ;; agda2-infer-type-maybe-toplevel")
;; (eek "M-h M-k C-c C-n ;; agda2-compute-normalised-maybe-toplevel")
;; (eek "M-h M-k C-c C-w ;; agda2-why-in-scope-maybe-toplevel")
""
(find-agdausermanualpage (+ 4 12) "2.5 Quick Guide to Editing")
(find-agdausermanualtext (+ 4 12) "2.5 Quick Guide to Editing")
(find-agdausermanualpage (+ 4 186) "4.4 Emacs Mode")
(find-agdausermanualtext (+ 4 186) "4.4 Emacs Mode")
""
(eek "M-h M-k C-c C-l ;; load or reload file")
(eek "M-h M-k C-c C-SPC ;; give: fill hole")
(eek "M-h M-k C-c C-a ;; automatically fill in hole")
(eek "M-h M-k M-. ;; go to definition")
(eek "M-h M-k M-, ;; go back")
(eek "M-h M-k C-c C-c ;; case split")
(eek "M-h M-k C-c C-r ;; refine with constructor")
(eek "M-h M-k C-c C-, ;; goal type and context")
(eek "M-h M-k C-c C-. ;; goal type, context, inferred type")
(eek "M-h M-k C-c C-d ;; infer type")
(eek "M-h M-k C-c C-n ;; compute normalized")
(eek "M-h M-k C-c C-w ;; why in scope")
""
,(ee-template0 "\
(defun ph1p (&optional n a b c d)
(interactive)
(find-2a nil '(find-pdftools-page \"~/LATEX/2017planar-has-1.pdf\" n)))
(defun excp (&optional n a b c d)
(interactive)
(find-2a nil '(find-pdftools-page \"~/LATEX/2021excuse.pdf\" n)))
")
)
pos-spec-list))
;; «find-agdafile-links» (to ".find-agdafile-links")
;; Skel: (find-find-links-links-new "agdafile" "stem" "")
;; Test: (find-agdafile-links)
;;
(defun find-agdafile-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for agdafile."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-agdafile-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-agdafile-links)
""
,(ee-template0 "\
# (kill-new \" AGDA/{stem}.agda\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"AGDA/\")
# (ee-copy-rest 1 '(find-angg \"AGDA/{stem}.agda\"))
-- This file:
-- http://anggtwu.net/AGDA/{stem}.agda.html
-- http://anggtwu.net/AGDA/{stem}.agda
-- (find-angg \"AGDA/{stem}.agda\")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
-- Version: {(date-as-string 5)}
-- Public domain.
--
-- ;; (find-angg \"AGDA/find-agdatype.el\")
-- (load \"~/AGDA/find-agdatype.el\")
--
-- (find-eev \"eev-pdflike.el\" \"change-default-viewer\")
-- (defalias 'find-pdf-page 'find-pdftoolsr-page)
-- (defalias 'find-pdf-page 'find-xpdf-page)
--
-- (defun a () (interactive) (find-angg \"AGDA/{stem}.agda\"))
module {stem} where
-- Local Variables:
-- coding: utf-8-unix
-- End:
")
)
pos-spec-list))
;; «find-fvwmdoc-links» (to ".find-fvwmdoc-links")
;; Skel: (find-find-links-links-new "fvwmdoc" "str" "")
;; Test: (find-fvwmdoc-links)
;;
(defun find-fvwmdoc-links (&optional word &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for fvwmdoc."
(interactive)
(setq word (or word "{word}"))
(apply
'find-elinks
`((find-fvwmdoc-links ,word ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-fvwmdoc-links)
""
,(ee-template0 "\
# (find-fvwm3file \"doc/\" 1 '(eek \"% m txt RET t k\"))
# (find-fvwm3grep \"grep --color=auto -nRH --null -e {word} doc/*.txt\")
# (find-fvwm3grep \"grep --color=auto -nRH --null -e '{word}' doc/*.txt\")
# (find-fvwm3grep \"grep --color=auto -niRH --null -e {word} doc/*.txt\")
# (find-fvwm3grep \"grep --color=auto -niRH --null -e '{word}' doc/*.txt\")
# (find-fvwm3grep \"grep --color=auto -niRH --null -e {word} doc/*.adoc\")
# (find-fvwm3grep \"grep --color=auto -nRH --null -e {word} doc/*.adoc\")
# (find-fvwm3file \"doc/\")
# (find-angg \".fvwm/doc_Makefile\")
# (find-angg \".fvwm/config\")
# (find-angg \".emacs.fvwm\")
")
)
pos-spec-list))
;; «find-agdalatex-links» (to ".find-agdalatex-links")
;; Skel: (find-find-links-links-new "agdalatex" "stem" "fname fullfname")
;; Test: (find-agdalatex-links "2022AgdaTest")
;; (find-agdalatex-links "2022Cats3")
;;
(defun find-agdalatex-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for agdalatex."
(interactive)
(setq stem (or stem "{stem}"))
(let* ((fname (format "%s.lagda.tex" stem))
(fullfname (format "~/LATEX/%s.lagda.tex" stem)))
(apply
'find-elinks
`((find-agdalatex-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-agdalatex-links)
(find-LATEX "2022template.lagda.tex")
;; (find-2a nil '(find-LATEX "2022template.lagda.tex"))
""
,(ee-template0 "\
# (kill-new \" LATEX/{fname}\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/2022agda\")
# (find-2a nil '(find-LATEX \"2022template.lagda.tex\"))
# (ee-copy-rest 1 '(find-LATEX \"{fname}\"))
")
,(ee-template0-file "~/LATEX/2022template.lagda.tex")
)
pos-spec-list)))
;; «find-fsbot-links» (to ".find-fsbot-links")
;; Skel: (find-find-links-links-new "fsbot" "word" "fsbotnick")
;; Test: (find-fsbot-links)
;;
(defun find-fsbot-links (&optional word &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for fsbot."
(interactive)
(setq word (or word "{word}"))
(let* ((fsbotnick "fsbot"))
(apply
'find-elinks
`((find-fsbot-links ,word ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-fsbot-links)
""
(find-es "emacs" "fsbot")
(find-efunction 'eepitch-libera)
""
,(ee-template0 "\
* (eepitch-libera \"#emacs\")
/query {fsbotnick}
**
**
* (eepitch-libera \"{fsbotnick}\")
help erbot
**
{word}
forget {word} all
{word} is def1
{word} is also def2
{word}
")
)
pos-spec-list)))
;; «find-mvideo-links» (to ".find-mvideo-links")
;; Skel: (find-find-links-links-new "mvideo" "fname" "fname-")
;; Test: (find-mvideo-links "20220302squeakdemo")
;;
(defun find-mvideo-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for mvideo."
(interactive)
(setq fname (or fname (ee-mvideo-name-here)))
(let* ((fname- (file-name-sans-extension fname)))
(apply
'find-elinks
`((find-mvideo-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mvideo-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mv -iv {fname} ~/mvideos/
cp -iv {fname} ~/mvideos/
# (find-fline \"~/mvideos/\" \"{fname}\")
# (find-video \"~/mvideos/{fname}\")
# (find-mvideo \"{fname-}\" \"0:00\")
")
)
pos-spec-list)))
(defun ee-mvideo-name-here ()
(if (eq major-mode 'dired-mode)
(file-name-nondirectory (ee-dired-to-fname))
(ee-stuff-around-point "-_0-9A-Za-z")))
(defun find-mvideo (stem &optional time &rest rest)
(find-video (format "~/mvideos/%s.mp4" stem) time))
;; «find-princeurl-links» (to ".find-princeurl-links")
;; Skel: (find-find-links-links-new "princeurl" "url outdir" "")
;; Test: (brprinceurl "https://ocaml.org/learn/tutorials/a_first_hour_with_ocaml.html")
;; See: (find-efunction 'ee-find-psne-core)
;; (to "find-htmlpdf-links")
;;
(code-brurl 'find-princeurl-links
:remote 'brprinceurl :dired 'brprinceurld)
;; Skel: (find-find-links-links-new "princeurl" "url outdir" "")
;; Test: (find-princeurl-links)
;;
(defun find-princeurl-links (&optional url outdir &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for princeurl."
(interactive)
(setq url (or url "{url}"))
(setq outdir (or outdir "{outdir}"))
(apply
'find-elinks
`((find-princeurl-links ,url)
(brprinceurl ,url)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-princeurl-links)
""
,(ee-findprinceurl-core url)
)
pos-spec-list))
(defun ee-findprinceurl-core (url &optional outdir)
(let* ((fname0 (ee-url-to-fname0 url))
(fnamepdf (replace-regexp-in-string ".html$" ".pdf" fname0))
(localdir (or outdir (file-name-directory fnamepdf)))
(stempdf (file-name-nondirectory fnamepdf)))
(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# {url}
# (find-fline \"{localdir}\" \"{stempdf}\")
# (find-pdf-page \"{fnamepdf}\")
cat > /tmp/print.css <<'%%%'
body {<} font-size: 12pt {>}
@page {<} size: A4 {>}
@page {<} @bottom-center {<} content: counter(page); {>} {>}
%%%
# @page {<}
# @bottom {<}
# content: counter(page);
# {>}
# {>}
mkdir -p {localdir}
cd {localdir}
prince --media=print \\
-s /tmp/print.css \\
-o {fnamepdf} \\
{url}
")))
;; «find-luademo-links» (to ".find-luademo-links")
;; Skel: (find-find-links-links-new "luademo" "fname" "fname-")
;; Test: (find-luademo-links "LUA/BlogMe3.lua")
;;
(defun find-luademo-links (&optional fname tag &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for luademo."
(interactive)
(setq tag (or tag "{tag}"))
(setq fname (or fname
(ee-rmprefix "~/" (ee-fname-here))
"{fname}"))
(let* ((fname- (file-name-nondirectory fname)))
(apply
'find-elinks
`((find-luademo-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-luademo-links)
(ee-use-red-bullets)
(ee-use-red-stars)
(setenv "LUA_INIT" "@/home/edrx/LUA/lua50init.lua")
""
,(ee-adjust-red-stars (ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeR
makeR1 {fname}.html
scp {fname} $LINP/{fname}
scp {fname}.html $LINP/{fname}.html
scp LUA/lua50init.lua $LINP/LUA/lua50init.lua
scp LUA/lua50init.lua.html $LINP/LUA/lua50init.lua.html
Scp-np {fname} $TWUP/{fname}
Scp-np {fname}.html $TWUP/{fname}.html
Scp-np LUA/lua50init.lua $TWUP/LUA/lua50init.lua
Scp-np LUA/lua50init.lua.html $TWUP/LUA/lua50init.lua.html
# http://anggtwu.net/{fname}
# http://anggtwu.net/{fname}.html
# http://anggtwu.net/{fname}.html#{tag}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/luademo/
mkdir /tmp/luademo/
cd /tmp/luademo/
wget http://anggtwu.net/LUA/lua50init.lua
wget http://anggtwu.net/{fname}
# (find-fline \"/tmp/luademo/\")
* (setenv \"LUA_INIT\" \"@/tmp/luademo/lua50init.lua\")
* (find-anchor \"/tmp/luademo/{fname-}\")
* (find-anchor \"/tmp/luademo/{fname-}\" \"{tag}\")
"))
)
pos-spec-list)))
;; «find-emlua-links» (to ".find-emlua-links")
;; Skel: (find-find-links-links-new "emlua" "" "")
;; Test: (find-emlua-links)
;;
(defun find-emlua-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for emlua."
(interactive)
(apply
'find-elinks
`((find-emlua-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-emlua-links)
""
,(ee-template0 "\
* (add-to-list 'load-path \"~/emlua/\")
* (require 'emlua-repl)
* (emlua-init)
* (code-c-d \"emlua\" \"~/emlua/\" :anchor)
")
;;
(find-emlua "emlua-repl.el")
(find-emlua "emlua-repl.el" "eepitch-emlua")
(find-emlua "emlua-repl.el" "eepitch-emlua" "test block")
)
pos-spec-list))
;; «find-pict2elua-links» (to ".find-pict2elua-links")
;; Skel: (find-find-links-links-new "pict2elua" "" "")
;; Test: (find-pict2elua-links)
;;
(defun find-pict2elua-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for pict2elua."
(interactive)
(apply
'find-elinks
`((find-pict2elua-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pict2elua-links)
""
(find-1stclassvideo-links "2022pict2elua")
(find-yttranscript-links "2022pict2elua" "hiHsUhGVLGM")
(find-TH "pict2e-lua")
(find-angg "pict2e-lua/README.org")
(find-angg "LUA/Pict2e1.lua")
(find-angg "LUA/Pict2e1-1.lua")
""
,(ee-template0 "\
")
)
pos-spec-list))
(defalias 'pil 'find-pict2elua-links)
;; «find-maxima-links» (to ".find-maxima-links")
;; Skel: (find-find-links-links-new "maxima" "name" "")
;; Test: (find-maxima-links)
;; (find-maxima-links "demo")
;;
(defun find-maxima-links (&optional name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for maxima."
(interactive)
(setq name (or name "{name}"))
(apply
'find-elinks
`((find-maxima-links ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-maxima-links)
""
(find-maxima-links "coeff")
""
,(ee-template0 "\
# (find-maximanode \"{name}\")
# (kill-new \"{name}\")
# (find-maximanode \"Function and Variable Index\" \"{name}\")
# (find-maximagitfile \"\")
# (find-maximagitgrep \"grep --color=auto -nH --null -e {name} $(cat .files.mac)\")
# (find-maximagitgrep \"grep --color=auto -nH --null -e {name} $(cat .files.lisp)\")
# (find-maximagitgrep \"grep --color=auto -niH --null -e {name} $(cat .files.mac)\")
# (find-maximagitgrep \"grep --color=auto -niH --null -e {name} $(cat .files.lisp)\")
# (find-maximagitgrep \"grep --color=auto -nH --null -e {name} $(find * | sort | grep 'mac$')\")
# (find-maximagitgrep \"grep --color=auto -nH --null -e {name} $(find * | sort | grep 'lisp$')\")
# (find-maximagitgrep \"grep --color=auto -niH --null -e {name} $(find * | sort | grep 'mac$')\")
# (find-maximagitgrep \"grep --color=auto -niH --null -e {name} $(find * | sort | grep 'lisp$')\")
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
? {name}
?? {name}
none
fundef({name});
grind(fundef({name}));
properties({name});
:lisp (describe '${name})
:lisp (symbol-plist '${name})
:lisp (get '${name} 'lineinfo)
** (find-try-sly-intro \"8. Inspect Maxima with Sly\")
* (eepitch-sly)
* (eepitch-kill)
* (eepitch-sly)
*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load(\"startsly\");
*
* (sly-connect \"localhost\" 56789)
* (eepitch-sly)
(describe '${name})
;; Now go to the sly-mrepl buffer, put the point
;; on the \"MAXIMA::$<name>\", and type `M-.'. Or:
* (sly-edit-definition \"${name}\")
* (sly-edit-definition \"MAXIMA::${name}\")
")
)
pos-spec-list))
(defalias 'grim 'ee-grim)
;; «find-maximaindex-links» (to ".find-maximaindex-links")
;; Skel: (find-find-links-links-new "maximaindex" "names" "lines")
;; Tests: (find-maximaindex-links)
;; (find-maximaindex-links "draw gr2d")
;; (ee-find-maximaindex-lines "foo bar")
;;
(defun find-maximaindex-links (&optional names &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for maximaindex."
(interactive)
(setq names (or names ""))
(let* ((lines (ee-find-maximaindex-lines names)))
(apply
'find-elinks
`((find-maximaindex-links ,names ,@pos-spec-list)
(find-maximaindex-links "lambda subst" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-maximaindex-links)
""
,(ee-template0 "\
# (find-maximaindex)
{lines}
")
)
pos-spec-list)))
(defun ee-find-maximaindex-lines (names)
(let* ((f1 (lambda (name rest)
(format "# (find-maximaindex \"%s\"%s)\n" name rest)))
(f2 (lambda (name)
(format "%s%s"
(funcall f1 name "")
(funcall f1 name " :RET")))))
(mapconcat f2 (split-string names) "")))
(defun fmi () (interactive) (find-maximaindex-links))
;; «find-maximamsg-links» (to ".find-maximamsg-links")
;; «find-maximamsg» (to ".find-maximamsg")
;; Moved to: (find-eev "eev-tlinks.el" "find-maximamsg-links")
;; (find-eev "eev-tlinks.el" "find-maximamsg")
;; «find-Maxima2-links» (to ".find-Maxima2-links")
;; Skel: (find-find-links-links-new "Maxima2" "sa" "")
;; Test: (find-Maxima2-links)
;; (find-Maxima2-links "blockname")
;;
(defun find-Maxima2-links (&optional sa &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Maxima2."
(interactive)
(setq sa (or sa "{sa}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-Maxima2-links*")))
(apply
'find-elinks
`((find-Maxima2-links ,sa ,@pos-spec-list)
(find-Maxima2-links "blockname")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-Maxima2-links)
""
(find-angg "LUA/Maxima2.lua" "show2-tests")
""
,(ee-template0 "\
** 2024dec18:
* (setq last-kbd-macro (kbd \"C-a %M SPC C-a <down>\"))
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
** (find-myqdraw \"myqdraw3.mac\")
load_myqdraw();
load(\"/usr/share/emacs/site-lisp/maxima/emaxima.lisp\")$
:lisp (setf (get '$display2d 'assign) nil)
display2d:'emaxima$
/* [topdf_a,topdf_b,topdf_c,topdf_n] : [\"~/LATEX/\", \"2024-2-C3/\", \"P1-Q2\", 0]; */
myqdrawp_to_screen (); myps(s):=ps(s);
myqdrawp_to_new_pdf(); myps(s):=ps(s/5);
linel : 115;
linenum:0;
* (setq last-kbd-macro (kbd \"C-a %M SPC C-a <down>\"))
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load(\"/usr/share/emacs/site-lisp/maxima/emaxima.lisp\")$
load(\"~/MAXIMA/barematrix1.mac\")$
load(\"~/MAXIMA/myqdraw1.mac\")$
myQdraw([args]) := apply('myQdraw_draw, args)$ myps(s):=ps(s);
myQdraw([args]) := apply('myQdraw_pdf, args)$ myps(s):=ps(s/5);
:lisp (setf (get '$display2d 'assign) nil)
display2d:'emaxima$
linenum:0;
% (find-Deps1-cps \"Maxima2\")
%L dofile \"Maxima2.lua\" -- (find-angg \"LUA/Maxima2.lua\")
\\pu
%M (%i1) 2*3;
%M (%o1) 5
%L maximahead:sa(\"{sa}\", \"\")
\\pu
\\vspace*{<}0cm{>}
\\def\\hboxthreewidth {<}14cm{>}
\\ga{<}{sa}{>}
** Debug:
** (find-angg \"LUA/Maxima2.lua\" \"MaximaHead-tests\")
** (find-angg \"LUA/Show2.lua\" \"texbody\")
* (show2-use \"~/LATEX/Show2.tex\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
Path.prependtopath \"~/LUA/?.lua\"
require \"Maxima2\" -- (find-angg \"LUA/Maxima2.lua\")
bigstr = [=[
(%i1) 2*3;
(%o1) 5
(%i2) 2*3;
(%o2) 5
]=]
mios = MaximaIOs_parse(bigstr)
= mios
= mios:debug()
= maximahead:set_maxima_lines(bigstr)
= maximahead:show00 {<}scale=0.9{>}
= maximahead:show0 {<}scale=0.9{>}
= maximahead:show {<}scale=0.9{>}
* (etv)
")
)
pos-spec-list)))
(defun maxima2 () (interactive) (find-2a nil '(find-Maxima2-links)))
;; «find-qdraw-links» (to ".find-qdraw-links")
;; Moved to: (find-eev "eev-tlinks.el" "find-qdraw-links")
;; «find-stream-links» (to ".find-stream-links")
;; Skel: (find-find-links-links-new "stream" "" "")
;; Test: (find-stream-links)
;;
(defun find-stream-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for stream."
(interactive)
(apply
'find-elinks
`((find-stream-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-stream-links)
""
,(ee-template0 "\
* (eepitch-shell3)
* (eepitch-kill)
* (eepitch-shell3)
streamlink --player=/usr/bin/mpv https://live-hls-web-aje.getaj.net/AJE/03.m3u8 best
# Aljazeera live news
# xdg-open -new-tab https://www.aljazeera.com/live/ &
# streamlink --player=/usr/bin/mpv https://www.aljazeera.com/live/ 540p &
# or 420p
# streamlink --player=/usr/bin/mpv https://live-hls-web-aje.getaj.net/AJE/03.m3u8 best &
# if you define the player here, it will not open in another user
# workspace. So that, it is better not to define it. Then streamlink will
# pick up another available player
# streamlink https://live-hls-web-aje.getaj.net/AJE/index.m3u8
# if you want to master the video resolution
# or use the command above
")
)
pos-spec-list))
;; «code-etv» (to ".code-etv")
;; Skel: (find-code-xxx-links "etv" "dir" "")
;; Test: (find-code-etv "~/LATEX/")
;;
(defun code-etv (dir)
(eval (ee-read (ee-code-etv dir))))
(defun find-code-etv (dir)
(find-estring-elisp (ee-code-etv dir)))
(defun ee-code-etv (dir)
(ee-template0 "\
;; (find-code-etv \"{dir}\")
;; (code-etv \"{dir}\")
(defun eb () (interactive) (find-fline \"{dir}2022pict2e-body.tex\"))
(defun et () (interactive) (find-fline \"{dir}2022pict2e.tex\"))
(defun etl () (interactive) (find-fline \"{dir}2022pict2e.lua\"))
(defun v () (interactive) (find-pdftools-page \"{dir}2022pict2e.pdf\"))
(defun tb () (interactive) (find-ebuffer (eepitch-target-buffer)))
(defun etv () (interactive) (find-wset \"13o2_o_o\" '(tb) '(v)))
(setenv \"PICT2ELUADIR\" \"{dir}\")
"))
;; «find-cabal-links» (to ".find-cabal-links")
;; Skel: (find-find-links-links-new "cabal" "pkg" "")
;; Test: (find-cabal-links)
;; Test: (find-cabal-links "hoogle")
;;
(defun find-cabal-links (&optional pkg &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cabal."
(interactive)
(setq pkg (or pkg "{pkg}"))
(apply
'find-elinks
`((find-cabal-links ,pkg ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cabal-links)
""
,(ee-template0 "\
# (find-fline \"~/bin/eev-cabal\")
# (find-sh \"eev-cabal ghc_list\")
# (find-sh \"eev-cabal ghc_list {pkg}\")
# (find-sh \"eev-cabal ghc_describe {pkg}\")
# (find-sh \"eev-cabal ghc_field {pkg} homepage\")
# (find-sh \"eev-cabal ghc_field {pkg} library-dirs\")
# (find-sh \"eev-cabal cabal_tgz {pkg}\")
# (find-sh \"eev-cabal cabal_tgz_b {pkg}\")
# (find-sh \"eev-cabal cabal_tgz_unpack {pkg}\")
# (find-fline \"~/.cabal/packages/hackage.haskell.org/{pkg}/\")
# (find-sh \"find ~/.cabal/packages/hackage.haskell.org/ | sort\")
# (find-sh \"cabal --help\")
# (find-sh \"cabal list --installed\")
# (find-fline \"~/.cabal/\")
# (find-fline \"~/.cabal/config\")
# (find-fline \"~/.cabal/packages/hackage.haskell.org/\")
# (find-fline \"~/.cabal/packages/hackage.haskell.org/{pkg}/\")
# (find-fline \"~/.cabal/store/ghc-8.8.4/\")
# (find-fline \"~/.cabal/store/ghc-8.8.4/\" \" {pkg}\")
# https://cabal.readthedocs.io/en/stable/
# https://hackage.haskell.org/package/{pkg}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cabal install {pkg}
cabal install --lib {pkg}
# (find-cabal-unpack \"{pkg}\")
")
)
pos-spec-list))
;; «find-cabal-unpack-links» (to ".find-cabal-unpack-links")
;; Skel: (find-find-links-links-new "cabal-unpack" "name1 name2 name3" "")
;; Test: (find-cabal-unpack-links)
;;
(defun find-cabal-unpack-links (&optional name1 name2 name3 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cabal-unpack."
(interactive)
(setq name1 (or name1 "{name1}"))
(setq name2 (or name2 "{name2}"))
(setq name3 (or name3 "{name3}"))
(apply
'find-elinks
`((find-cabal-unpack-links ,name1 ,name2 ,name3 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cabal-unpack-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/{name2}/
mkdir ~/usrc/{name2/
tar -C ~/usrc/ \\
-xvzf {name3}
cd ~/usrc/{name2}/
# (code-c-d \"{name1}\" \"~/usrc/{name2}/\")
# (find-{name1}file \"\")
")
)
pos-spec-list))
;; «find-cabal-unpack» (to ".find-cabal-unpack")
;; Test: (find-cabal-unpack "hoogle")
;;
(defun find-cabal-unpack (name)
(find-cabal-unpack-links
name
(find-sh0 (format "eev-cabal cabal_tgz_b %s" name))
(ee-shorten-file-name (find-sh0 (format "eev-cabal cabal_tgz %s" name)))))
;; «find-cabos-links» (to ".find-cabos-links")
;; Skel: (find-find-links-links-new "cabos" "fname0" "")
;; Test: (find-cabos-links)
;; (find-cabos-links "piramide-1")
;; (find-cabos-links "piramide-2")
;; (find-cabos-links "barranco-1")
;; (find-cabos-links "barranco-2")
;; (find-cabos-links "2022-1-C3-VS")
;; (find-cabos-links "2022-2-C3-P1")
;;
(defun find-cabos-links (&optional fname0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cabos."
(interactive)
(setq fname0 (or fname0 "{fname0}"))
(apply
'find-elinks
`((find-cabos-links ,fname0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cabos-links)
""
,(ee-template0 "\
# (kill-new \" GNUPLOT/{fname0}.dem\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"GNUPLOT/\")
# (ee-copy-rest 2 '(find-fline \"~/GNUPLOT/{fname0}.dem\"))
# This file:
# http://anggtwu.net/GNUPLOT/{fname0}.dem.html
# http://anggtwu.net/GNUPLOT/{fname0}.dem
# (find-angg \"GNUPLOT/{fname0}.dem\")
# Author: Eduardo Ochs <eduardoochs@gmail.com>
#
# (defun o () (interactive) (find-angg \"GNUPLOT/barranco-1.dem\"))
# (defun o () (interactive) (find-angg \"GNUPLOT/2023-2-C3-P1.dem\"))
# (defun e () (interactive) (find-angg \"GNUPLOT/{fname0}.dem\"))
# (defun l () (interactive) (find-angg \"LUA/Cabos3.lua\"))
# (find-cabos-links \"{fname0}\")
# (find-eepitch-intro \"3.3. `eepitch-preprocess-line'\")
# (setq eepitch-preprocess-regexp \"\")
# (setq eepitch-preprocess-regexp \"^#: \")
#
#: * (eepitch-lua51)
#: * (eepitch-kill)
#: * (eepitch-lua51)
#: Path.prependtopath \"~/LUA/?.lua\"
#: ee_dofile \"~/LUA/Cabos3.lua\"
#: bigstr = [[
#: 0 1 0
#: 0 1 1
#: ]]
#: ex = Expand.from(bigstr)
#: = ex:expandg()
#: c = CabosNaDiagonal.from [[
#: 0 - 1 - 0
#: | . | \\ |
#: 0 - 1 - 1
#: ]]
#: = c
set for [o=1:n] obj o polygon depthorder fs transparent solid 0.8 fc \"gray75\"
set pm3d depthorder border lc \"black\" lw 2
set view equal xyz
set view 30,30,1.5
set title \"{fname0}\"
splot -10
pause -1 \"Hit return to continue\"
# (find-eepitch-intro \"3.3. `eepitch-preprocess-line'\")
# (setq eepitch-preprocess-regexp \"\")
# (setq eepitch-preprocess-regexp \"^#: \")
#
#: * (eepitch-shell)
#: * (eepitch-kill)
#: * (eepitch-shell)
#: gnuplot {fname0}.dem
# (find-bgprocess \"gnuplot {fname0}.dem\")
# Local Variables:
# coding: utf-8-unix
# mode: gnuplot
# End:
")
)
pos-spec-list))
;; «find-elinks-haskell» (to ".find-elinks-haskell")
;; Based on: (find-efunction 'find-elinks-elisp)
;; (find-efunction 'find-estring-elisp)
;;
(defun find-estring-haskell (string &rest pos-spec-list)
(apply 'find-eoutput-rerun (or ee-buffer-name "*string*")
`(progn (insert ,string) (haskell-mode)) pos-spec-list))
(defun find-elinks-haskell (links &rest pos-spec-list)
(let ((ee-buffer-name (or ee-buffer-name "*Elisp hyperlinks*"))
(ee-hyperlink-prefix "-- "))
(apply 'find-estring-haskell (ee-links-to-string links) pos-spec-list)))
;; «find-ghc-links» (to ".find-ghc-links")
;; Skel: (find-find-links-links-new "ghc" "string" "")
;; Tests: (find-ghc-links)
;; (find-ghc-links "toUpper")
;;
(defun find-ghc-links (&optional string &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ghc."
(interactive (list (ee-stuff-around-point "[!-~]")))
(setq string (or string "{string}"))
(apply
'find-elinks-haskell
`((find-ghc-links ,string ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ghc-links)
""
,(ee-template0 "\
-- (find-es \"haskell\" \"{string}\")
-- (find-es \"haskell\" \"Prelude\")
-- (find-ghcbasesh \"find * | sort | grep 'hs$'\")
-- (find-ghcbasesh \"find * | sort | grep '{string}'\")
-- (find-ghcbasegrep \"grep --color=auto -nRH --null -e {string} *\")
-- (find-ghcbasefile \"\")
-- (find-ghcbasefile \"{string}\")
-- (find-hoogle \"{string}\")
* (eepitch-ghci)
* (eepitch-kill)
* (eepitch-ghci)
:t {string}
:info {string}
:hoogle {string}
")
)
pos-spec-list))
(defun ghl () (interactive) (call-interactively 'find-ghc-links))
;; «find-opam-links» (to ".find-opam-links")
;; Skel: (find-find-links-links-new "opam" "pkg" "")
;; Tests: (find-opam-links)
;; (find-opam-links "ocaml-canvas")
;;
(defun find-opam-links (&optional pkg &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for opam."
(interactive)
(setq pkg (or pkg "{pkg}"))
(apply
'find-elinks
`((find-opam-links ,pkg ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-opam-links)
""
(find-es "ocaml" "opam")
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
opam update
opam upgrade
opam install {pkg}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
opam list
opam info {pkg}
opam show {pkg}
# (find-sh \"opam list\")
# (find-sh \"opam info {pkg}\")
# (find-sh \"opam show {pkg}\")
# (find-opamfile \"\")
# (find-opamsourcesfile \"\")
# (find-opamsourcessh \"find * | sort\")
# (find-opamsh \"find * | sort\")
* (eepitch-ocaml)
* (eepitch-kill)
* (eepitch-ocaml)
#use \"topfind\";;
#list;;
#require \"{pkg}\";;
#use \"canv.ml\";;
")
)
pos-spec-list))
;; «find-tikz-links» (to ".find-tikz-links")
;; (find-angg "LUA/tikz1.el")
;; (find-angg "LUA/tikz1.el" "find-tikz-links")
;; (find-angg ".emacs" "tikz")
;; «find-tikzsearch-links» (to ".find-tikzsearch-links")
;; (find-angg "LUA/tikz1.el" "find-tikzsearch-links")
;; «find-C2C3git-links» (to ".find-C2C3git-links")
;; Skel: (find-find-links-links-new "C2C3git" "yyyys" "")
;; Test: (find-C2C3git-links "2022-2")
;;
(defun find-C2C3git-links (&optional yyyys &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for C2C3git."
(interactive)
(setq yyyys (or yyyys "{yyyys}"))
(apply
'find-elinks
`((find-C2C3git-links ,yyyys ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-C2C3git-links)
""
,(ee-template0 "\
# (find-angg \".emacs\" \"c2-{yyyys}\")
# (find-angg \".emacs\" \"c3-{yyyys}\")
# (find-LATEX \"{yyyys}-C2-tudo.tex\")
# (find-angg \"{yyyys}-C2-C3/\")
# (find-angg \"{yyyys}-C2-C3/README.org\")
# (find-angg \"{yyyys}-C2-C3/Makefile\")
# (find-gitk \"~/{yyyys}-C2-C3/\")
** A hack:
** Use this to update
** the files in ~/{yyyys}-C2-C3/.
** This is the slow way, that runs
** \"lualatex -record\" many times.
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LATEX/
getincls0 () {<} grep ^.incl | tr '\\\\{<}{>}' ' ' {>}
getincls () {<} getincls0 | awk 'NF==2 && $1==\"incl\" {<}print $2 {>}' {>}
getincltexs () {<} getincls0 | awk 'NF==2 && $1==\"incl\" {<}print $2 \".tex\"{>}' {>}
cat {yyyys}-C2-tudo.tex | getincls0
cat {yyyys}-C2-tudo.tex | getincls
cat {yyyys}-C2-tudo.tex | getincltexs
cat {yyyys}-C{<}2,3{>}-tudo.tex | getincls
cat {yyyys}-C{<}2,3{>}-tudo.tex | getincltexs
cat {yyyys}-C{<}2,3{>}-tudo.tex | getincls | sort | uniq | tee /tmp/.filest0.bn
cat {yyyys}-C{<}2,3{>}-tudo.tex | getincltexs | sort | uniq | tee /tmp/.filest0.tex
# (find-fline \"/tmp/.filest0.tex\")
# (find-fline \"/tmp/.filest0.bn\")
# This step regenerates the .fls files.
# It is optional and takes a long time.
# If you skip it then the next step will
# reuse the current .fls files.
for i in $(cat /tmp/.filest0.tex); do
lualatex -record $i
done
for i in $(cat /tmp/.filest0.bn); do
flsfiles $i.fls
done | sort | uniq | tee /tmp/{yyyys}.fls
cat /tmp/{yyyys}.fls > /tmp/{yyyys}+.fls
echo {yyyys}-C2-tudo.tex >> /tmp/{yyyys}+.fls
echo {yyyys}-C3-tudo.tex >> /tmp/{yyyys}+.fls
echo TocLines1.lua >> /tmp/{yyyys}+.fls
# (find-tkdiff \"/tmp/{yyyys}.fls\" \"/tmp/{yyyys}+.fls\")
cd ~/LATEX/
tar -cvzf /tmp/{yyyys}.tgz $(cat /tmp/{yyyys}+.fls)
cd ~/{yyyys}-C2-C3/
tar -xvzf /tmp/{yyyys}.tgz
# (find-fline \"~/{yyyys}-C2-C3/\")
# (find-fline \"~/{yyyys}-C2-C3/Makefile\")
** Use this to update
** the files in ~/{yyyys}-C2-C3/.
** This is the fast way, that uses
** \"git ls-files\" to get the list of files to copy.
**
** WORK IN PROGRESS!
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/{yyyys}-C2-C3/ && git ls-files | tee /tmp/.files
cat /tmp/.files \\
| grep -v README \\
| grep -v Makefile \\
| grep -v gitignore | tee /tmp/.files-
cd ~/LATEX/ && tar -cvzf /tmp/.files.tgz $(cat /tmp/.files-)
cd ~/LATEX/ && ls -lAF $(cat /tmp/.files-)
cd ~/{yyyys}-C2-C3/ && ls -lAF $(cat /tmp/.files-)
cd ~/{yyyys}-C2-C3/ && tar -xvzf /tmp/.files.tgz
# (magit-status \"~/{yyyys}-C2-C3/\")
# (find-fline \"~/{yyyys}-C2-C3/\")
# (find-fline \"/tmp/.files\")
# (find-fline \"/tmp/.files-\")
# (find-fline \"/tmp/.files.tgz\")
** Use this to test
** the files in ~/{yyyys}-C2-C3/
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 1:
cd ~/{yyyys}-C2-C3/
tar -cvzf /tmp/{yyyys}-C2-C3.tgz *
rm -Rfv /tmp/{yyyys}-C2-C3/
mkdir /tmp/{yyyys}-C2-C3/
cd /tmp/{yyyys}-C2-C3/
tar -xvzf /tmp/{yyyys}-C2-C3.tgz
make
# (find-fline \"/tmp/{yyyys}-C2-C3/\")
# (find-pdf-page \"/tmp/{yyyys}-C2-C3/{yyyys}-C2-tudo.pdf\")
# (find-pdf-page \"/tmp/{yyyys}-C2-C3/{yyyys}-C3-tudo.pdf\")
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 2:
rm -Rfv /tmp/{yyyys}-C2-C3/
mkdir /tmp/{yyyys}-C2-C3/
cd /tmp/{yyyys}-C2-C3/
git clone https://github.com/edrx/{yyyys}-C2-C3 .
# (find-fline \"/tmp/{yyyys}-C2-C3/\")
# (find-fline \"/tmp/{yyyys}-C2-C3/Makefile\")
make
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 3:
cd ~/{yyyys}-C2-C3/
tar -cvzf /tmp/{yyyys}-C2-C3.tgz *
rm -Rfv /tmp/{yyyys}-C2-C3/
mkdir /tmp/{yyyys}-C2-C3/
cd /tmp/{yyyys}-C2-C3/
tar -xvzf /tmp/{yyyys}-C2-C3.tgz
rm -Rv /tmp/fake-home-dir/
mkdir /tmp/fake-home-dir/
#cd /tmp/fake-home-dir/
{
export LUA_INIT=
export HOME=/tmp/fake-home-dir
cd /tmp/{yyyys}-C2-C3/
make
}
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 4:
rm -Rfv /tmp/{yyyys}-C2-C3/
mkdir /tmp/{yyyys}-C2-C3/
cd /tmp/{yyyys}-C2-C3/
git clone https://github.com/edrx/{yyyys}-C2-C3 .
rm -Rv /tmp/fake-home-dir/
mkdir /tmp/fake-home-dir/
#cd /tmp/fake-home-dir/
{
export LUA_INIT=
export HOME=/tmp/fake-home-dir
cd /tmp/{yyyys}-C2-C3/
make
}
# (find-fline \"/tmp/{yyyys}-C2-C3/\")
# (find-pdf-page \"/tmp/{yyyys}-C2-C3/{yyyys}-C2-tudo.pdf\")
# (find-pdf-page \"/tmp/{yyyys}-C2-C3/{yyyys}-C3-tudo.pdf\")
")
)
pos-spec-list))
;; «find-MMMMgit-links» (to ".find-MMMMgit-links")
;; Skel: (find-find-links-links-new "MMMMgit" "yyyys C2-C3" "C2cC3")
;; Test: (find-MMMMgit-links "2022-1" "C2-C3")
;; (find-MMMMgit-links "2022-2" "C2-C3")
;;
(defun find-MMMMgit-links (&optional yyyys C2-C3 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for MMMMgit."
(interactive)
(setq yyyys (or yyyys "{yyyys}"))
(setq C2-C3 (or C2-C3 "{C2-C3}"))
(let* ((C2cC3 (replace-regexp-in-string "-" "," C2-C3)))
(apply
'find-elinks
`((find-MMMMgit-links ,yyyys ,C2-C3 ,@pos-spec-list)
(find-MMMMgit-links "2022-1" "C2-C3" ,@pos-spec-list)
(find-MMMMgit-links "2022-2" "C2-C3" ,@pos-spec-list)
(find-MMMMgit-links "2023-1" "C2-C4-ES" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-MMMMgit-links)
""
,(ee-template0 "\
# (find-angg \".emacs\" \"c2-{yyyys}\")
# (find-angg \".emacs\" \"c3-{yyyys}\")
# (find-LATEX \"{yyyys}-C2-tudo.tex\")
# (find-angg \"{yyyys}-{C2-C3}/\")
# (find-angg \"{yyyys}-{C2-C3}/README.org\")
# (find-angg \"{yyyys}-{C2-C3}/Makefile\")
# (find-gitk \"~/{yyyys}-{C2-C3}/\")
** Use this to update
** the files in ~/{yyyys}-{C2-C3}/.
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LATEX/
getincls0 () {<} grep ^.incl | tr '\\\\{<}{>}' ' ' {>}
getincls () {<} getincls0 | awk 'NF==2 && $1==\"incl\" {<}print $2 {>}' {>}
getincltexs () {<} getincls0 | awk 'NF==2 && $1==\"incl\" {<}print $2 \".tex\"{>}' {>}
cat {yyyys}-C2-tudo.tex | getincls0
cat {yyyys}-C2-tudo.tex | getincls
cat {yyyys}-C2-tudo.tex | getincltexs
cat {yyyys}-{<}{C2cC3}{>}-tudo.tex | getincls
cat {yyyys}-{<}{C2cC3}{>}-tudo.tex | getincltexs
cat {yyyys}-{<}{C2cC3}{>}-tudo.tex | getincls | sort | uniq | tee /tmp/.filest0.bn
cat {yyyys}-{<}{C2cC3}{>}-tudo.tex | getincltexs | sort | uniq | tee /tmp/.filest0.tex
# \"bn\" means \"base names\" (of .tex files).
# (find-fline \"/tmp/.filest0.tex\")
# (find-fline \"/tmp/.filest0.bn\")
** This \"for\" regenerates the .fls files by running
** \"lualatex -record\" in each one of the .tex files.
** It takes a long time and changes the dates in the footers.
** Also, it is optional! If you skip it then the rest
** of this (big) block will reuse the current .fls files.
**
# for i in $(cat /tmp/.filest0.tex); do
# lualatex -record $i
# done
for i in $(cat /tmp/.filest0.bn); do
flsfiles $i.fls
done | sort | uniq | tee /tmp/{yyyys}.fls
cat /tmp/{yyyys}.fls > /tmp/{yyyys}+.fls
echo TocLines1.lua >> /tmp/{yyyys}+.fls
for i in {yyyys}-{<}{C2cC3}{>}-tudo; do
echo ${<}i{>}.tex >> /tmp/{yyyys}+.fls
done
# (find-tkdiff \"/tmp/{yyyys}.fls\" \"/tmp/{yyyys}+.fls\")
cd ~/LATEX/
tar -cvzf /tmp/{yyyys}.tgz $(cat /tmp/{yyyys}+.fls)
cd ~/{yyyys}-{C2-C3}/
tar -xvzf /tmp/{yyyys}.tgz
# (find-fline \"~/{yyyys}-{C2-C3}/\")
# (find-fline \"~/{yyyys}-{C2-C3}/Makefile\")
** Use this to update
** the files in ~/{yyyys}-{C2-C3}/.
** This is the fast way, that uses
** \"git ls-files\" to get the list of files to copy.
**
** WORK IN PROGRESS!
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/{yyyys}-{C2-C3}/ && git ls-files | tee /tmp/.files
cat /tmp/.files \\
| grep -v README \\
| grep -v Makefile \\
| grep -v gitignore | tee /tmp/.files-
cd ~/LATEX/ && tar -cvzf /tmp/.files.tgz $(cat /tmp/.files-)
cd ~/LATEX/ && ls -lAF $(cat /tmp/.files-)
cd ~/{yyyys}-{C2-C3}/ && ls -lAF $(cat /tmp/.files-)
cd ~/{yyyys}-{C2-C3}/ && tar -xvzf /tmp/.files.tgz
# (magit-status \"~/{yyyys}-{C2-C3}/\")
# (find-fline \"~/{yyyys}-{C2-C3}/\")
# (find-fline \"/tmp/.files\")
# (find-fline \"/tmp/.files-\")
# (find-fline \"/tmp/.files.tgz\")
** Use this to test
** the files in ~/{yyyys}-{C2-C3}/
**
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 1:
cd ~/{yyyys}-{C2-C3}/
tar -cvzf /tmp/{yyyys}-{C2-C3}.tgz *
rm -Rfv /tmp/{yyyys}-{C2-C3}/
mkdir /tmp/{yyyys}-{C2-C3}/
cd /tmp/{yyyys}-{C2-C3}/
tar -xvzf /tmp/{yyyys}-{C2-C3}.tgz
make
# (find-fline \"/tmp/{yyyys}-{C2-C3}/\")
# (find-pdf-page \"/tmp/{yyyys}-{C2-C3}/{yyyys}-C2-tudo.pdf\")
# (find-pdf-page \"/tmp/{yyyys}-{C2-C3}/{yyyys}-C3-tudo.pdf\")
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 2:
rm -Rfv /tmp/{yyyys}-{C2-C3}/
mkdir /tmp/{yyyys}-{C2-C3}/
cd /tmp/{yyyys}-{C2-C3}/
git clone https://github.com/edrx/{yyyys}-{C2-C3} .
# (find-fline \"/tmp/{yyyys}-{C2-C3}/\")
# (find-fline \"/tmp/{yyyys}-{C2-C3}/Makefile\")
make
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 3:
cd ~/{yyyys}-{C2-C3}/
tar -cvzf /tmp/{yyyys}-{C2-C3}.tgz *
rm -Rfv /tmp/{yyyys}-{C2-C3}/
mkdir /tmp/{yyyys}-{C2-C3}/
cd /tmp/{yyyys}-{C2-C3}/
tar -xvzf /tmp/{yyyys}-{C2-C3}.tgz
rm -Rv /tmp/fake-home-dir/
mkdir /tmp/fake-home-dir/
#cd /tmp/fake-home-dir/
{
export LUA_INIT=
export HOME=/tmp/fake-home-dir
cd /tmp/{yyyys}-{C2-C3}/
make
}
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
*
# Test 4:
rm -Rfv /tmp/{yyyys}-{C2-C3}/
mkdir /tmp/{yyyys}-{C2-C3}/
cd /tmp/{yyyys}-{C2-C3}/
git clone https://github.com/edrx/{yyyys}-{C2-C3} .
rm -Rv /tmp/fake-home-dir/
mkdir /tmp/fake-home-dir/
#cd /tmp/fake-home-dir/
{
export LUA_INIT=
export HOME=/tmp/fake-home-dir
cd /tmp/{yyyys}-{C2-C3}/
make
}
# (find-fline \"/tmp/{yyyys}-{C2-C3}/\")
# (find-pdf-page \"/tmp/{yyyys}-{C2-C3}/{yyyys}-C2-tudo.pdf\")
# (find-pdf-page \"/tmp/{yyyys}-{C2-C3}/{yyyys}-C3-tudo.pdf\")
")
)
pos-spec-list)))
;; «find-paps-links» (to ".find-paps-links")
;; Skel: (find-find-links-links-new "paps" "fname" "fullfname fname-")
;; Test: (find-paps-links)
;; (find-paps-links "~/elisp/test.el")
;;
(defun find-paps-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for paps."
(interactive)
(setq fname (or fname "{fname}"))
(let* ((fullfname (ee-expand fname))
(fname- "{fname-}"))
(apply
'find-elinks
`((find-paps-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-paps-links)
""
(find-es "ps" "paps")
""
,(ee-template0 "\
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# cd /tmp/
paps \\
--header-left=\"{<}now:%Y-%m-%d %H:%M{>}\" \\
--header-center=\"{<}fname-{>}\" \\
--header-right=\"Page {<}page_idx:02d}/{num_pages:02d{>}\" \\
--header \\
-o /tmp/opaps.pdf \\
{fullfname}
")
)
pos-spec-list)))
;; «find-sandwiches-def-links» (to ".find-sandwiches-def-links")
;; Skel: (find-find-links-links-new "sandwiches-def" "head" "ee-hyperlink-prefix")
;; Test: (find-sandwiches-def-links)
;;
(defun find-sandwiches-def-links (&optional head &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for sandwiches-def."
(interactive)
(setq head (or head "{head}"))
(let* ((ee-hyperlink-prefix "-- "))
(apply
'find-elinks
`((find-sandwiches-def-links ,head ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-sandwiches-def-links)
""
(lua-mode)
(ee-copy-rest 1 '(find-blogme3 "sandwiches-defs.lua"))
""
,(ee-template0 "\
-- <{head}>
-- Skel: (find-sandwiches-def-links \"{head}\")
--
_SH[\"{head}\"] = SexpHead {
head = \"{head}\",
help = sexp_to_target_st [[ (find-eev \"eev-tlinks.el\" \"{head}\") ]],
f = function (sh, si)
si:add_filling(1, nil, \"help\", sh.help)
local hash = si:sexp_strarg(4)
if hash then
si:add_filling(4, 1, \"yt\", youtube_make_url(hash))
end
end,
}
-- <{head}-tests>
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"sandwiches-defs.lua\"
= sexp_to_target_si [[ ({head} \"37675653 202207 1\" \"structural\") ]]
= sexp_to_target_st [[ ({head} \"37675653 202207 1\" \"structural\") ]]
--]==]
")
)
pos-spec-list)))
;; «find-untgz-links» (to ".find-untgz-links")
;; Supersedes: (find-angg ".emacs" "find-template-untgz")
;; Skel: (find-find-links-links-new "untgz" "url c" "fname d")
;; Test: (find-untgz-links)
;; (find-untgz-links "https://gigamonkeys.com/book/practicals-1.0.3.tar.gz" "seibel")
;;
(defun find-untgz-links (&optional url c &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for untgz."
(interactive)
(setq url (or url "{url}"))
(setq c (or c "{c}"))
(let* ((fname (replace-regexp-in-string "^\\(https?\\|ftp\\)://" "$S/\\1/" url))
(d (ee-tar-tzf-first-directory fname)))
(apply
'find-elinks
`((find-untgz-links ,url ,c ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-untgz-links)
""
,(ee-template0 "\
# {url}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/{d}/
tar -C ~/usrc/ -xvzf \\
{fname}
cd ~/usrc/{d}/
# (code-c-d \"{c}\" \"~/usrc/{d}/\")
# (find-{c}file \"\")
")
)
pos-spec-list)))
;; «find-sandwichsexp-links» (to ".find-sandwichsexp-links")
;; Supersedes: (find-angg ".emacs" "sexptotarget")
;; Skel: (find-find-links-links-new "sandwichsexp" "sexp0" "sexp sexpstr")
;; Test: (find-sandwichsexp-links)
;; (find-sandwichsexp-links '(find-TH "eev-videos"))
;;
(defun find-sandwichsexp-links (&optional sexp0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for sandwichsexp."
(interactive (list (read (ee-last-sexp))))
(setq sexp0 (or sexp0 "{sexp0}"))
(let* ((sexp (if (stringp sexp0) (read sexp0) sexp0))
(sexpstr (ee-S sexp)))
(apply
'find-elinks
`((find-sandwichsexp-links ',sexp0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-sandwichsexp-links)
""
(find-blogme3 "sandwiches-defs.lua")
""
,(ee-template0 "\
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
chdir \"~/blogme3/\"
dofile \"sandwiches-defs.lua\"
= sexp_to_target_si [[ {sexpstr} ]]
= sexp_to_target_st [[ {sexpstr} ]]
= sexp_to_target [[ {sexpstr} ]]
si = sexp_to_target_si0 [[ {sexpstr} ]]
PPV(si)
= si.head
printf('(find-blogme3 \"sandwiches-defs.lua\" \"%s\")\\n', si.head)
")
)
pos-spec-list)))
;; «find-blogme3-rstdoc-links» (to ".find-blogme3-rstdoc-links")
;; Skel: (find-find-links-links-new "blogme3-rstdoc" "c" "baseweb base htm")
;; Test: (find-blogme3-rstdoc-links "leanmeta")
;; (find-blogme3-rstdoc-links "lean4")
;; (find-blogme3-rstdoc-links "sqlite3")
;;
(defun find-blogme3-rstdoc-links (&optional c &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for blogme3-rstdoc."
(interactive)
(setq c (or c "{c}"))
(let* ((baseweb (ee-rstdoc-getfield0 c :base-web))
(base (ee-rstdoc-getfield0 c :base))
(htm (ee-rstdoc-htm c)))
(apply
'find-elinks
`((find-blogme3-rstdoc-links ,c ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-blogme3-rstdoc-links)
(find-efunction 'find-sandwichsexp-links)
(find-efunction 'ee-rstdoc-html)
""
,(ee-template0 "\
-- (find-angg \".emacs\" \"ee-rstdoc-:{c}\")
-- (find-rstdoc-links :{c})
-- (find-code-rstdoc :{c})
-- (find-sandwichsexp-links '(find-{c}doc \"{base}\"))
* (lua-mode)
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
chdir \"~/blogme3/\"
dofile \"sandwiches-defs.lua\"
-- (find-blogme3 \"sandwiches-defs.lua\" \"rstdoc\")
-- (find-blogme3 \"sandwiches-defs.lua\" \"rstdoc\" \"rstdoc_base_{c} \")
rstdoc_base_{c} = \"{baseweb}\"
-- (find-blogme3 \"sandwiches-defs.lua\" \"rstdoc\" \"\\\"find-{c}doc\\\"\")
--
_SH[\"find-{c}doc\"] = SexpHead {<}
head = \"find-{c}doc\",
help = rstdoc_help,
base = rstdoc_base_{c},
htm = \"{htm}\",
f = rstdoc_f,
{>}
= sexp_to_target_si [[ (find-{c}doc \"{base}\") ]]
= sexp_to_target_st [[ (find-{c}doc \"{base}\") ]]
= sexp_to_target [[ (find-{c}doc \"{base}\") ]]
")
)
pos-spec-list)))
;; «find-eepitch-select-shell-links» (to ".find-eepitch-select-shell-links")
;; Skel: (find-find-links-links-new "eepitch-select-shell" "" "")
;; Test: (find-eepitch-select-shell-links)
;;
(defun find-eepitch-select-shell-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for eepitch-select-shell."
(interactive)
(apply
'find-elinks-elisp
`((find-eepitch-select-shell-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-eepitch-select-shell-links)
(find-eev "eepitch.el" "eepitch-shell")
(find-angg ".emacs" "eepitch-shell")
""
,(ee-template0 "\
;; Use bash (mainly for screenshots and videos):
(defun eepitch-shell () (interactive) (eepitch-comint \"bash\" \"bash\"))
(defun eepitch-shell2 () (interactive) (eepitch-comint \"bash 2\" \"bash\"))
(defun eepitch-shell3 () (interactive) (eepitch-comint \"bash 3\" \"bash\"))
;; Default:
(defun eepitch-shell () (interactive) (eepitch-de '(shell)))
(defun eepitch-shell2 () (interactive) (eepitch-de '(shell \"*shell 2*\")))
(defun eepitch-shell3 () (interactive) (eepitch-de '(shell \"*shell 3*\")))
")
)
pos-spec-list))
;; «find-movebigfiles-links» (to ".find-movebigfiles-links")
;; Skel: (find-find-links-links-new "movebigfiles" "from to" "")
;; Test: (find-movebigfiles-links "/tmp/" "/home/")
;;
(defun find-movebigfiles-links (&optional from to &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for movebigfiles."
(interactive)
(setq from (or from "{from}"))
(setq to (or to "{to}"))
(apply
'find-elinks
`((find-movebigfiles-links ,from ,to ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-movebigfiles-links)
""
,(ee-template0 "\
(find-2a
' (find-fline {(ee-S from)})
' (find-fline {(ee-S to)})
)
* (eepitch-shell3)
* (eepitch-kill)
* (eepitch-shell3)
laf {(ee-S from)}
laf {(ee-S to)}
du -c {(ee-S from)}
du -ch {(ee-S from)}
mv -iv {(ee-S from)}* \\
{(ee-S to)}
")
)
pos-spec-list))
;; «find-jpgstopdf-links» (to ".find-jpgstopdf-links")
;; Skel: (find-find-links-links-new "jpgstopdf" "dir stem quality" "")
;; Test: (find-jpgstopdf-links)
;; (find-jpgstopdf-links "~/LATEX/2022-comissao/" "2022-dec-22_WhatsApp_RCN")
;; See: (find-classroom-trab-links nil 2 "/tmp/pdf-jpg-pdf/")
;; (find-es "ps" "glue-pages")
;;
(defun find-jpgstopdf-links (&optional dir stem quality &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for jpgstopdf."
(interactive)
(setq dir (or dir "{dir}"))
(setq stem (or stem "{stem}"))
(setq quality (or quality "10"))
(apply
'find-elinks
`((find-jpgstopdf-links ,dir ,stem ,quality ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-jpgstopdf-links)
""
(find-fline ,dir ,stem)
(find-pdf-page ,(format "%s%s.pdf" dir stem))
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/jpg-pdf/
mkdir /tmp/jpg-pdf/
cd /tmp/jpg-pdf/
cp -v {dir}{stem}*.jpg /tmp/jpg-pdf/
convert -quality {quality} *.jpg {stem}.pdf
laf
# (find-pdf-page \"/tmp/jpg-pdf/{stem}.pdf\")
cp -v /tmp/jpg-pdf/{stem}.pdf {dir}
% (find-jpgstopdf-links \"{dir}\" \"{stem}\")
% (find-pdf-page \"{dir}{stem}.pdf\")
\\includecom {<}pages=-,nup=2x1, frame, pagecommand={<}{>}, scale=0.8{>}
{<}{stem}{>}
")
)
pos-spec-list))
;; «find-curso2023-links» (to ".find-curso2023-links")
;; Skel: (find-find-links-links-new "curso2023" "yy s MM yyo so" "stem mm")
;; See: (to "find-semestre-links")
;; Test: (find-curso2023-links "23" "1" "2" "22" "2")
;; (find-curso2023-links "23" "1" "3" "22" "2")
;; (find-curso2023-links "23" "1" "LA" "22" "2")
;; (find-curso2023-links "25" "1" "C2" "24" "2")
;;
(defun find-curso2023-links (&optional yy s MM yyo so &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for curso2023."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(setq yyo (or yyo "{yyo}"))
(setq so (or so "{so}"))
(let* ((stem (ee-template0 "20{yy}.{s}-{MM}"))
(mm (downcase MM)))
(apply
'find-elinks
`((find-curso2023-links ,yy ,s ,MM ,yyo ,so ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-curso2023-links)
(find-efunction 'find-blogme3-links)
(find-blogme3-links ,stem)
""
,(ee-template0 "\
# (kill-new \"{stem}\")
# (find-blogme3 \"anggmake.lua\" \"blogmestems\")
# (find-blogme3 \"anggmake.lua\" \"blogmestems\" \"2024.1-C2\")
# (find-TH \"{stem}\")
# (ee-copy-rest 2 '(find-TH \"{stem}\"))
\[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[#
\(defun c () (interactive) (find-blogme3-sh0-if \"{stem}\"))
\(defun u () (interactive) (find-blogme-upload-links \"{stem}\"))
(defun oe () (interactive) (find-2a '(find-TH \"20{yyo}.{so}-{MM}\") '(find-TH \"20{yy}.{s}-{MM}\")))
;; http://anggtwu.net/{stem}.html
;; file:///home/edrx/TH/L/{stem}.html
;; (find-curso2023-links \"{yy}\" \"{s}\" \"{MM}\" \"{yyo}\" \"{so}\")
;; (find-angg \"20{yy}.{s}-{MM}/Makefile\")
;;
;; «.o-puro-e-um-lixo» (to \"o-puro-e-um-lixo\")
;; «.semestres» (to \"semestres\")
;; «.maxima» (to \"maxima\")
;; «.aulas» (to \"aulas\")
;; «.executado» (to \"executado\")
#]
\[lua:
require \"defs-2022\" -- (find-blogme3 \"defs-2022.lua\")
load_caepro5() -- (find-blogme3 \"defs-2022.lua\" \"load_caepro5\")
Qjpgs_baseurl = \"http://anggtwu.net/20{yy}.{s}-{MM}/\"
def [[ Qjpg1 2 date,n R(format(\"%s%s-{MM}-%s.jpg\", Qjpgs_baseurl, date, n), n) ]]
def [[ FER 1 body COLOR(\"red\", body) ]]
def [[ REP 1 body COLOR(\"orange\", body) ]]
short_:add [[
caepro => (find-TH \"2023-caepro\")
slogans => (find-TH \"2023-precisamos-de-mais-slogans\")
pdfzinhos => (find-TH \"2023-links-curtos\" \"tabelona-explicacao\")
quadros => (find-TH \"2023-links-curtos\" \"quadros-e-logs\")
tabelona => (find-TH \"2023-links-curtos\" \"tabelona\")
]]
]
\[SETHEADSTYLE [LUCIDA]]
\[htmlize [J {MM} 20{yy}.{s} - Eduardo Ochs]\n
[DELAY [SMALL [DLINDEX2]]
[br]
[NAME0 o-puro-e-um-lixo
«o-puro-e-um-lixo» (to \".o-puro-e-um-lixo\")
]
[sec2 H3 [++N]. O PURO é um lixo: links]
[br]
[NAME0 semestres
«semestres» (to \".semestres\")
]
[sec2 H3 [++N]. Semestres]
[P [R 20{yy}.{s}.html Salas, horários, etc]
[BR] [R 20{yyo}.{so}-{MM}.html Página do semestre anterior.]
[BR] Fotos dos quadros:
[R http://anggtwu.net/20{yy}.{s}-{MM}/{MM}-quadros.pdf PDF],
[R http://anggtwu.net/20{yy}.{s}-{MM}/ JPGs].
[BR] [R 2022-apresentacao-sobre-C2.html Material de todos os semestres desde 2019.2].
[BR] [R http://anggtwu.net/LATEX/20{yy}-{s}-{MM}-Tudo.pdf PDFzão]
com todos os [_ pdfzinhos PDFzinhos] deste semestre.
[BR] [_ tabelona Material de todos os semestres desde 2019.2].
[BR] Os links curtos, como [C 3eT25] e [C Slogans08:54], estão
explicados [_ links-curtos aqui].
[BR] [_ caepro Sobre as reclamações do CAEPRO].
]
[P O plano de curso no formato tradicional está
[R http://anggtwu.net/LATEX/20{yy}-{s}-{MM}-plano-de-curso.pdf aqui].
[# ({mm}m{yy}{s}plcp 1 \"plano-de-curso\")
# ({mm}m{yy}{s}plca \"plano-de-curso\")
#]
[# [BR] A versão detalhada com links está abaixo. #]
[BR] A tabela abaixo tem links pros [_ pdfzinhos] e [_ quadros] de cada aula.
]
[br]
[NAME0 maxima
«maxima» (to \".maxima\")
]
[sec2 H3 [++N]. Links sobre Maxima]
[br]
[NAME0 aulas
«aulas» (to \".aulas\")
]
[sec2 H3 [++N]. Aulas]
[#
# «executado» (to \".executado\")
# (find-angg \".emacs\" \"{mm}q{yy}{s}\")
#]
[lua:
short_:add [[
]]
]
[#
Inscritos:
#]
]
]
\[#
# Local Variables:
# coding: raw-text-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]")
)
pos-spec-list)))
;; «find-semestre-links» (to ".find-semestre-links")
;; Skel: (find-find-links-links-new "semestre" "yy s n yyo so" "")
;; See: (to "find-curso2023-links")
;; Test: (find-semestre-links "23" "1" "2" "22" "2")
;; (find-semestre-links "23" "1" "3" "22" "2")
;; (find-semestre-links "24" "2" "3" "24" "1")
;; (find-semestre-links "25" "1" "2" "24" "2")
;; (find-semestre-links "25" "1" "3" "24" "2")
;;
(defun find-semestre-links (&optional yy s n yyo so &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for semestre."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq n (or n "{n}"))
(setq yyo (or yyo "{yyo}"))
(setq so (or so "{so}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-semestre-links*")))
(apply
'find-elinks
`((find-semestre-links ,yy ,s ,n ,yyo ,so ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-semestre-links)
""
,(ee-template0 "\
** Directories:
**
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd; mkdir -p 20{yy}.{s}-quadros 20{yy}.{s}-C2 20{yy}.{s}-C3 20{yy}-{s}-C2-C3
* (eepitch-linode)
* (eepitch-kill)
* (eepitch-linode)
cd ~/slow_html/; mkdir -p 20{yy}.{s}-quadros 20{yy}.{s}-C2 20{yy}.{s}-C3 20{yy}-{s}-C2-C3
cd ~/public_html/; mkdir -p 20{yy}.{s}-quadros 20{yy}.{s}-C2 20{yy}.{s}-C3 20{yy}-{s}-C2-C3
mkdir -p 20{yy}.{s}-quadros 20{yy}.{s}-C2 20{yy}.{s}-C3 20{yy}-{s}-C2-C3
# Copy to: (find-THfile \"Makefile\" \"dirs\")
** Blogme files:
(find-curso2023-links \"{yy}\" \"{s}\" \"C2\" \"{yyo}\" \"{so}\")
(find-curso2023-links \"{yy}\" \"{s}\" \"C3\" \"{yyo}\" \"{so}\")
(find-blogme3-links \"20{yy}.{s}\")
(find-2a '(find-TH \"20{yyo}.{so}\")
'(find-TH \"20{yy}.{s}\"))
** Org files:
(find-2a '(find-angg \"20{yyo}-{so}-C2-C3/README.org\")
'(find-angg \"20{yy}-{s}-C2-C3/README.org\")
** Makefiles:
**
20{yy}.{s}-C2/Makefile
20{yy}.{s}-C3/Makefile
20{yy}-{s}-C2-C3/README.org
20{yy}-{s}-C2-C3/Makefile
# Copy to: (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"2022.2-C2/\")
LATEX/20{yy}-{s}-MM-template.tex
LATEX/20{yy}-{s}-C2-intro.tex
LATEX/20{yy}-{s}-C2-plano-de-curso.tex
LATEX/20{yy}-{s}-C2-tudo.tex
LATEX/20{yy}-{s}-C3-intro.tex
LATEX/20{yy}-{s}-C3-plano-de-curso.tex
LATEX/20{yy}-{s}-C3-tudo.tex
# Copy to: (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/20{yy}-{s}-\")
# or to: (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/20{yyo}-{so}-\")
(find-2a '(find-angg \"20{yyo}.{so}-C2/Makefile\")
'(find-angg \"20{yy}.{s}-C2/Makefile\"))
(find-2a '(find-angg \"20{yyo}.{so}-C3/Makefile\")
'(find-angg \"20{yy}.{s}-C3/Makefile\"))
(find-2a '(find-angg \"20{yyo}-{so}-C2-C3/README.org\")
'(find-angg \"20{yy}-{s}-C2-C3/README.org\"))
(find-2a '(find-angg \"20{yyo}-{so}-C2-C3/Makefile\")
'(find-angg \"20{yy}-{s}-C2-C3/Makefile\"))
** .tex files:
**
(find-efunction 'find-MM-aula-links)
(find-2a '(find-angg \"LATEX/20{yyo}-{so}-MM-template.tex\")
'(find-angg \"LATEX/20{yy}-{s}-MM-template.tex\"))
(find-MM-aula-links \"20{yy}-{s}-C2-intro\" \"C2\" \"c2m{yy}{s}intro\" \"c2in\")
(find-MM-aula-links \"20{yy}-{s}-C3-intro\" \"C3\" \"c3m{yy}{s}intro\" \"c3in\")
(find-MM-aula-links \"20{yy}-{s}-C2-tudo\" \"C2\" \"c2m{yy}{s}tudo\" \"c2tu\")
(find-MM-aula-links \"20{yy}-{s}-C3-tudo\" \"C3\" \"c3m{yy}{s}tudo\" \"c3tu\")
(find-MM-aula-links \"20{yy}-{s}-C2-plano-de-curso\" \"C2\" \"c2m{yy}{s}plc\" \"c2plc\")
(find-MM-aula-links \"20{yy}-{s}-C3-plano-de-curso\" \"C3\" \"c3m{yy}{s}plc\" \"c3plc\")
** ~/.emacs:
** (find-angg \".emacs\" \"c3-20{yyo}-{so}\")
**
;; (c{n}e)
;; <c{n}-20{yy}-{s}>
;; <c{n}-20{yy}-{s}-quadros>
;; Skel: (find-semestre-links \"{yy}\" \"{s}\" \"{n}\" \"{yyo}\" \"{so}\")
(defun c{n}e () (interactive) (find-angg \".emacs\" \"c{n}-20{yy}-{s}\"))
;; <c{n}q{yy}{s}>
;; (find-angg \".emacs\" \"c2-2022-1-quadros\")
(defun c{n}q () (interactive) (find-angg \".emacs\" \"c{n}-20{yy}-{s}-quadros\"))
(code-pdf-page \"c{n}q{yy}{s}\" \"~/20{yy}.{s}-C{n}/C{n}-quadros.pdf\")
(code-pdf-text \"c{n}q{yy}{s}\" \"~/20{yy}.{s}-C{n}/C{n}-quadros.pdf\")
;; http://anggtwu.net/20{yy}.{s}-C{n}/C{n}-quadros.pdf
;; (find-angg \"20{yy}.{s}-C{n}/Makefile\")
;; (find-c{n}q{yy}{s}page 1 \"fev36: pagina fake\")
")
)
pos-spec-list)))
;; «find-semestre-MM-links» (to ".find-semestre-MM-links")
;; Skel: (find-find-links-links-new "semestre-MM" "yy s MM yyo so" "mm")
;; Test: (find-semestre-MM-links)
;;
(defun find-semestre-MM-links (&optional yy s MM yyo so &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for semestre-MM."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(setq yyo (or yyo "{yyo}"))
(setq so (or so "{so}"))
(let* ((mm "{mm}"))
(apply
'find-elinks
`((find-semestre-MM-links ,yy ,s ,MM ,yyo ,so ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-semestre-MM-links)
""
,(ee-template0 "\
")
)
pos-spec-list)))
;; «find-semestre-emacs-links» (to ".find-semestre-emacs-links")
;; Skel: (find-find-links-links-new "semestre-emacs" "yy s MM yyo so" "mm")
;; Test: (find-semestre-emacs-links "23" "1" "LA" "22" "2")
;;
(defun find-semestre-emacs-links (&optional yy s MM yyo so &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for semestre-emacs."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(setq yyo (or yyo "{yyo}"))
(setq so (or so "{so}"))
(let* ((mm (downcase MM)))
(apply
'find-elinks-elisp
`((find-semestre-emacs-links ,yy ,s ,MM ,yyo ,so ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-semestre-emacs-links)
""
,(ee-template0 "\
;; (find-MM-aula-links \"20{yy}-{s}-{MM}-intro\" \"{MM}\" \"{mm}m{yy}{s}intro\" \"{mm}mi\")
;; (find-MM-tudo-links \"{yy}\" \"{s}\" \"{MM}\")
;; ({mm}e)
;; <{mm}-20{yy}-{s}>
;; <{mm}-20{yy}-{s}-quadros>
;; Skel: (find-semestre-emacs-links \"{yy}\" \"{s}\" \"{MM}\" \"{yyo}\" \"{so}\")
(defun {mm}e () (interactive) (find-angg \".emacs\" \"{mm}-20{yy}-{s}\"))
(defun {mm}eo () (interactive) (find-angg \".emacs\" \"{mm}-20{yyo}-{so}\"))
;; <{mm}q{yy}{s}>
;; (find-angg \".emacs\" \"{mm}-2022-1-quadros\")
(defun {mm}q () (interactive) (find-angg \".emacs\" \"{mm}-20{yy}-{s}-quadros\"))
(code-pdf-page \"{mm}q{yy}{s}\" \"~/20{yy}.{s}-{MM}/{MM}-quadros.pdf\")
(code-pdf-text \"{mm}q{yy}{s}\" \"~/20{yy}.{s}-{MM}/{MM}-quadros.pdf\")
;; http://anggtwu.net/20{yy}.{s}-{MM}/{MM}-quadros.pdf
;; (find-angg \"20{yy}.{s}-{MM}/Makefile\")
;; (find-{mm}q{yy}{s}page 1 \"fev36: pagina fake\")
;; ({mm}m{yy}{s}introa \"title\")
(code-etex-tla \"{mm}in\" \"20{yy}-{s}-{MM}-intro\")
(code-etex-tla \"{mm}m{yy}{s}intro\" \"20{yy}-{s}-{MM}-intro\")
;; ({mm}m{yy}{s}plca \"title\")
(code-etex-tla \"{mm}plc\" \"20{yy}-{s}-{MM}-plano-de-curso\")
(code-etex-tla \"{mm}m{yy}{s}plc\" \"20{yy}-{s}-{MM}-plano-de-curso\")
;; ({mm}m{yy}{s}tudoa \"title\")
(code-etex-tla \"{mm}tu\" \"20{yy}-{s}-{MM}-tudo\")
(code-etex-tla \"{mm}m{yy}{s}tudo\" \"20{yy}-{s}-{MM}-tudo\")
")
)
pos-spec-list)))
;; «find-semestre-MM-quadros-links» (to ".find-semestre-MM-quadros-links")
;; Skel: (find-find-links-links-new "semestre-MM-quadros" "yy s MM yyo so" "mm")
;; Test: (find-semestre-MM-quadros-links "23" "1" "C2" "22" "2")
;; (find-semestre-MM-quadros-links "23" "1" "LA" "22" "2")
;; (find-semestre-MM-quadros-links "25" "1" "C2" "24" "2")
;; (find-semestre-MM-quadros-links "25" "1" "C3" "24" "2")
;;
(defun find-semestre-MM-quadros-links (&optional yy s MM yyo so &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for semestre-MM-quadros."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(setq yyo (or yyo "{yyo}"))
(setq so (or so "{so}"))
(let* ((mm "{mm}"))
(apply
'find-elinks
`((find-semestre-MM-quadros-links ,yy ,s ,MM ,yyo ,so ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-semestre-MM-quadros-links)
(find-angg "MAKE/2023.1-MM-template")
""
,(ee-template0 "\
# (find-angg \"2022.2-C2/Makefile\")
# (find-angg \"20{yy}.{s}-{MM}/Makefile\")
# (find-mkdir-links \"20{yy}.{s}-{MM}\")
# (kill-new \" 20{yy}.{s}-{MM}/Makefile\\n\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/20{yy}-{s}\")
# ^ Add to the makefile
# (makefile-gmake-mode)
# (ee-copy-rest 1 '(find-angg \"20{yy}.{s}-{MM}/Makefile\"))
")
;; (find-angg "MAKE/2023.1-MM-template")
,(ee-template0-file "~/MAKE/2023.1-MM-template"
"⟦\\([!-~]+\\)⟧")
)
pos-spec-list)))
;; «find-mkdir-links» (to ".find-mkdir-links")
;; Skel: (find-find-links-links-new "mkdir" "dir" "")
;; Test: (find-mkdir-links "2024.1-GA")
;;
(defun find-mkdir-links (&optional dir &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for mkdir."
(interactive)
(setq dir (or dir "{dir}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-mkdir-links*")))
(apply
'find-elinks
`((find-mkdir-links ,dir ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mkdir-links)
""
,(ee-template0 "\
# (kill-new \"{dir}\")
# (find-THfile \"Makefile\" \"dirs\")
* (eepitch-eshell)
* (eepitch-kill)
* (eepitch-eshell)
mkdir ~/{dir}
mkdir /scp:edrx@linode:~/slow_html/{dir}
mkdir /scp:edrx@linode:~/public_html/{dir}
# (find-anggfile \"{dir}\")
# (find-linsfile \"{dir}\")
# (find-linpfile \"{dir}\")
")
)
pos-spec-list)))
;; «find-ajuda-email-links» (to ".find-ajuda-email-links")
;; Skel: (find-find-links-links-new "ajuda-email" "stem" "")
;; Test: (find-ajuda-email-links)
;; (find-ajuda-email-links "2023-feb-09_oficio_anexo")
;;
(defun find-ajuda-email-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ajuda-email."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-ajuda-email-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ajuda-email-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mv -iv /tmp/{stem}.pdf \\
~/LATEX/2022-comissao/
% (ajup 99)
% (find-ajuda-email-links \"{stem}\")
% (find-pdf-page \"~/LATEX/2022-comissao/{stem}.pdf\")
% (find-pdf-text8 \"~/LATEX/2022-comissao/{stem}.pdf\")
% gmail
\\includeemail{<}pages=-{>}{<}{stem}{>}
% http://anggtwu.net/PAD/{stem}.pdf
")
)
pos-spec-list))
;; «find-ajuda-jpgs-links» (to ".find-ajuda-jpgs-links")
;; Skel: (find-find-links-links-new "ajuda-jpgs" "stem" "")
;; Test: (find-ajuda-jpgs-links)
;; (find-ajuda-jpgs-links "2023-jan-05_WhatsApp_SetMat")
;;
(defun find-ajuda-jpgs-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ajuda-jpgs."
(interactive)
(setq stem (or stem "{stem}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-ajuda-jpgs-links*")))
(apply
'find-elinks
`((find-ajuda-jpgs-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ajuda-jpgs-links)
""
,(ee-template0 "\
% (find-jpgstopdf-links \"~/LATEX/2022-comissao/\" \"{stem}\")
% (ajup 99)
% (find-ajuda-jpgs-links \"{stem}\")
% (find-pdf-page \"~/LATEX/2022-comissao/{stem}.pdf\")
\\includecom {<}pages=-,nup=3x2, frame, pagecommand={<}{>}, scale=0.8{>}
{<}{stem}{>}
")
)
pos-spec-list)))
;; «find-engrave-faces-links» (to ".find-engrave-faces-links")
;; Skel: (find-find-links-links-new "engrave-faces" "origdir newdir fname" "")
;; Test: (find-engrave-faces-links "SQUEAK/Squeak6.0-22104/shared/" "SQUEAK/" "See.st")
;; (find-engrave-faces-links "SQUEAK/Squeak6.0-22104/shared/" "SQUEAK/" "Category-Edrx.st")
;;
(defun find-engrave-faces-links (&optional origdir newdir fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for engrave-faces."
(interactive)
(setq origdir (or origdir "{origdir}"))
(setq newdir (or newdir "{newdir}"))
(setq fname (or fname "{fname}"))
(apply
'find-elinks
`((find-engrave-faces-links ,origdir ,newdir ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-engrave-faces-links)
""
,(ee-template0 "\
** (find-fline \"~/{origdir}{fname}\")
** (find-fline \"~/{origdir}\")
** (find-fline \"~/{newdir}{fname}\")
** (find-fline \"~/{newdir}\")
**
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -fv ~/{newdir}{fname}
rm -fv ~/{newdir}{fname}.html
cp -v ~/{origdir}{fname} ~/{newdir}
laf ~/{origdir}
laf ~/{newdir}
* (defun a () (interactive) (eek \"M-x engrave-faces-html-buffer-standalone RET\"))
* (defun b () (interactive) (eek \"C-x C-w ~/{newdir}{fname}.html RET\"))
* (ee-kill-buffer \"{fname}\")
* (ee-kill-buffer \"{fname}.html\")
** (find-2b nil '(find-fline \"~/{newdir}{fname}\"))
laf ~/{origdir}
laf ~/{newdir}
scp ~/{newdir}{fname}.html $LINP/{newdir}
scp ~/{newdir}{fname} $LINP/{newdir}
# file:///home/edrx/{newdir}{fname}.html
# http://anggtwu.net/{newdir}{fname}.html
# http://anggtwu.net/{newdir}{fname}
")
)
pos-spec-list))
;; «find-planodecurso-links» (to ".find-planodecurso-links")
;; Skel: (find-find-links-links-new "planodecurso" "yy s MM" "mm")
;; Test: (find-planodecurso-links "23" "1" "ES")
;; (find-planodecurso-links "25" "1" "C2")
;;
(defun find-planodecurso-links (&optional yy s MM &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for planodecurso."
(interactive)
(setq yy (or yy "{yy}"))
(setq s (or s "{s}"))
(setq MM (or MM "{MM}"))
(let* ((M (substring MM 1))
(mm (downcase MM))
(stem (ee-template0 "20{yy}-{s}-{MM}-plano-de-curso"))
(tlalong (ee-template0 "{mm}m{yy}{s}plc"))
(tla (ee-template0 "{mm}plc")))
(apply
'find-elinks
`((find-planodecurso-links ,yy ,s ,MM ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-planodecurso-links)
(find-angg "LATEX/2023-2-MM-plano-de-curso.tex")
""
(find-blogme3sh "grep plano-de-curso anggmake.lua")
(find-blogme3sh "grep plano-de-curso anggmake.lua | sort")
""
,(ee-template0 "\
# (kill-new \" LATEX/{stem}.tex\\n\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LATEX/20{yy}-{s}-{MM}\")
# ^ Add to the makefile
;; ({tlalong}a \"title\")
(code-etex-tla \"{tla}\" \"{stem}\")
(code-etex-tla \"{tlalong}\" \"{stem}\")
;; ^ add to: (find-angg \".emacs\" \"{mm}-2024-2\")
;; ^ add to: (find-angg \".emacs\" \"{mm}-20{yy}-{s}\")
# (ee-copy-rest 1 '(find-LATEX \"20{yy}-{s}-{MM}-plano-de-curso.tex\"))
")
;; (find-angg "MAKE/2023.1-MM-template")
;; (find-angg "LATEX/2023-2-MM-plano-de-curso.tex")
,(ee-template0-file "~/LATEX/2023-2-MM-plano-de-curso.tex"
"⟦\\([!-~]+\\)⟧")
)
pos-spec-list)))
;; «find-mtp-links» (to ".find-mtp-links")
;; Skel: (find-find-links-links-new "mtp" "phonedir localdir yyyy mm dd" "")
;; Test: (find-mtp-links)
;; (find-mtp-links "Phone/DCIM/Camera/" "/tmp/phone-camera/")
;; (find-mtp-links "Phone/DCIM/Screenshots/" "/tmp/phone-screenshots/")
;;
(defun find-mtp-links (&optional phonedir localdir yyyy mm dd &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for mtp."
(interactive)
(setq phonedir (or phonedir "{phonedir}"))
(setq localdir (or localdir "{localdir}"))
(setq yyyy (or yyyy (format-time-string "%Y")))
(setq mm (or mm (format-time-string "%m")))
(setq dd (or dd (format-time-string "%d")))
(apply
'find-elinks
`((find-mtp-links ,phonedir ,localdir ,yyyy ,mm ,dd ,@pos-spec-list)
(find-mtp-links "Phone/DCIM/Screenshots/" "/tmp/phone-screenshots/")
(find-mtp-links "Phone/DCIM/Camera/" "/tmp/phone-camera/")
(find-mtp-links "Phone/DCIM/Camera/" "/tmp/phone-wpp-images/")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mtp-links)
""
(find-es "mtp" "screenshots")
""
,(ee-template0 "\
* (eepitch-shell2)
* (eepitch-kill)
* (eepitch-shell2)
# (find-fline \"/media/mtp/phone/\")
cd
sudo fusermount -u /media/mtp/phone/
sudo umount /media/mtp/phone/
sudo mkdir -p /media/mtp/phone/
sudo chmod 775 /media/mtp/phone/
# Connect the phone to the computer, then:
sudo go-mtpfs -allow-other /media/mtp/phone
# \"Allow the phone to access phone data?\" -> Allow. Then:
sudo go-mtpfs -allow-other /media/mtp/phone
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"/media/mtp/phone/\")
# (find-fline \"/media/mtp/phone/{phonedir}\")
# (find-fline \"/media/mtp/phone/Phone/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Images/\")
# (find-fline \"{localdir}\")
mkdir -p {localdir}
cd \"/media/mtp/phone/Phone/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Images/\"
cd /media/mtp/phone/{phonedir}
# rsync -avvz -e *.jpg {localdir}
rsync -avvz -e {yyyy}*.jpg {localdir}
rsync -avvz -e {yyyy}{mm}*.jpg {localdir}
rsync -avvz -e {yyyy}{mm}{dd}*.jpg {localdir}
cp -av {yyyy}{mm}{dd}*.jpg {localdir}
rsync -avvz -e Screenshot_{yyyy}*.jpg {localdir}
rsync -avvz -e IMG-{yyyy}{mm}{dd}* {localdir}
cd
ls -lt /media/mtp/phone/
sudo go-mtpfs -allow-other /media/mtp/phone
ls -lt /media/mtp/phone/
cd
sudo fusermount -u /media/mtp/phone/
sudo umount /media/mtp/phone/
")
)
pos-spec-list))
;;; _
;;; ___ ___ _ __ _ _ __ _ _ _ __ _ __| |_ __ ___ ___
;;; / __/ _ \| '_ \| | | |_____ / _` | | | |/ _` |/ _` | '__/ _ \/ __|
;;; | (_| (_) | |_) | |_| |_____| (_| | |_| | (_| | (_| | | | (_) \__ \
;;; \___\___/| .__/ \__, | \__, |\__,_|\__,_|\__,_|_| \___/|___/
;;; |_| |___/ |_|
;;
;; «find-copy-quadros-links» (to ".find-copy-quadros-links")
;; Skel: (find-find-links-links-new "copy-quadros" "yyyy mm dd" "ee-buffer-name")
;; Test: (find-copy-quadros-links)
;;
(defun find-copy-quadros-links (&optional yyyy mm dd &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for copy-quadros."
(interactive)
(setq yyyy (or yyyy (format-time-string "%Y")))
(setq mm (or mm (format-time-string "%m")))
(setq dd (or dd (format-time-string "%d")))
(let* ((ee-buffer-name (or ee-buffer-name "*find-copy-quadros-links*")))
(apply
'find-elinks
`((find-copy-quadros-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-copy-quadros-links)
""
,(ee-template0 "\
* (defun cq2 () (interactive) (ee-cq-windows \"25\" \"2\" \"C2\"))
* (defun cq3 () (interactive) (ee-cq-windows \"25\" \"2\" \"C3\"))
** (defun cq7 () (interactive) (ee-cq-windows \"25\" \"2\" \"LA\"))
** (defun cq2 () (interactive) (ee-cq-windows \"24\" \"2\" \"C2\"))
** (defun cq3 () (interactive) (ee-cq-windows \"24\" \"2\" \"C3\"))
** (defun cq6 () (interactive) (ee-cq-windows \"24\" \"1\" \"GA\"))
** (defun cq2 () (interactive) (ee-cq-windows \"23\" \"2\" \"C2\"))
** (defun cq3 () (interactive) (ee-cq-windows \"23\" \"2\" \"C3\"))
** (defun cq4 () (interactive) (ee-cq-windows \"23\" \"1\" \"C4\"))
** (defun cq5 () (interactive) (ee-cq-windows \"23\" \"1\" \"ES\"))
** (defun cq7 () (interactive) (ee-cq-windows \"23\" \"1\" \"LA\"))
**
** (find-termux-links)
**
** (setq ange-ftp-generate-anonymous-password nil)
** (find-2a '(find-dcimcamerafile \"\") '(find-fline \"/tmp/phone-camera/\"))
** (find-fline \"/tmp/phone-camera/\")
** (find-angg \".emacs\" \"switftp\")
**
** (find-mtp-links \"Phone/DCIM/Camera/\" \"/tmp/phone-camera/\")
")
)
pos-spec-list)))
;; (ee-cq-split-filename "/tmp/phone-camera/20230404_155202.jpg")
;; (ee-cq-split-filename "/tmp/phone-camera/20230404_155202-C2-1.jpg")
;; (ee-cq-filename-to-f "/tmp/phone-camera/20230404_155202.jpg")
;; (ee-cq-filename-to-f "/tmp/phone-camera/20230404_155202-C2-1.jpg")
;;
(defun ee-cq-split-filename (fname)
(setq fname (file-name-nondirectory fname))
(string-match "^\\(........\\)_\\(......\\)\\(.*\\).jpg$" fname)
(list (match-string 1 fname)
(match-string 2 fname)
(match-string 3 fname)))
(defun ee-cq-filename-to-f (fname)
(seq-let (date time rest)
(ee-cq-split-filename fname)
(format "#T f %s_%s%s %s%s\n" date time rest date rest)))
(defun ee-cq-fs ()
(mapconcat
'ee-cq-filename-to-f
(if (eq major-mode 'dired-mode)
(dired-get-marked-files))))
(defun ee-cq-windows (yy s MM)
(find-wset "123_o_o3_o_o"
'(find-fline "/tmp/phone-camera/")
`(find-fline ,(ee-template0 "~/20{yy}.{s}-quadros/"))
'(find-estring (ee-cq-fs))
`(find-fline ,(ee-template0 "~/20{yy}.{s}-{MM}/Makefile"))
))
;; «find-gmail-links» (to ".find-gmail-links")
;; Skel: (find-find-links-links-new "gmail" "hash" "")
;; Test: (find-gmail-links "KtbxLrjVjnGXBssLpnZKBXnSRTHhJjgxtg")
;;
(defun find-gmail-links (&optional hash &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for gmail."
(interactive (list (ee-stuff-around-point "-0-9A-Za-z_")))
(setq hash (or hash "{hash}"))
(apply
'find-elinks
`((find-gmail-links ,hash ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-gmail-links)
""
,(ee-template0 "\
https://mail.google.com/mail/u/0/#inbox/{hash}
https://mail.google.com/mail/u/0/#sent/{hash}
after:2018/6/10 before:2018/6/14
")
)
pos-spec-list))
;; «find-class-links» (to ".find-class-links")
;; Skel: (find-find-links-links-new "class" "name" "bigname")
;; See: (to "class")
;; Test: (find-class-links)
;; (find-class-links "MkTable")
;;
(defun find-class-links (&optional name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for class."
(interactive)
(setq name (or name "{name}"))
(let* ((bigname (figlet-string-with "-- " name)))
(apply
'find-elinks
`((find-class-links ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-class-links)
""
,(ee-template0 "\
# (find-angg \".emacs\" \"figlet\")
# (setq figlet-cmd \"figlet -f standard | gsub.lua '' '-- %1'\")
{bigname}\
-- «.{name}» (to \"{name}\")
-- «{name}» (to \".{name}\")
{name} = Class {<}
type = \"{name}\",
__index = {<}
{>},
{>}
-- «.{name}-tests» (to \"{name}-tests\")
-- «{name}-tests» (to \".{name}-tests\")
")
)
pos-spec-list)))
;; «find-expands-links» (to ".find-expands-links")
;; Skel: (find-find-links-links-new "expands" "fstem var words" "word1")
;; Test: (find-expands-links "find-luademo-scp" "fname" "LUA/foo LUA/bar")
;; (find-expands-links)
;;
(defun find-expands-links (&optional fstem var words &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for expands."
(interactive)
(setq fstem (or fstem "{fstem}"))
(setq var (or var "{var}"))
(setq words (or words "{words}"))
(let* ((word1 (car (ee-split words))))
(apply
'find-elinks-elisp
`((find-expands-links ,fstem ,var ,words ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-expands-links)
""
,(ee-template0 "\
;; Skel: (find-expands-links \"{fstem}\" \"{var}\" \"{words}\")
;; Tests: (find-estring (ee-{fstem}1 \"{word1}\"))
;; (find-estring (ee-{fstem}s \"{words}\"))
;;
\(defun ee-{fstem}1 ({var})
(ee-template0 \":{<}{var}{>}:\\n\"))
\(defun ee-{fstem}s (bigstr)
(mapconcat 'ee-{fstem}1 (ee-split bigstr)))
")
)
pos-spec-list)))
;; «code-etv2» (to ".code-etv2")
;; Moved to: (find-eev "eev-tlinks.el" "code-etv2")
;; «find-editeevsubtitles-links» (to ".find-editeevsubtitles-links")
;; Skel: (find-find-links-links-new "editeevsubtitles" "c mp4stem hash length" "")
;; Tests: (find-editeevsubtitles-links-1 "2022pict2elua")
;; (find-editeevsubtitles-links "2022pict2elua" "2022-pict2e-lua" "hiHsUhGVLGM")
;; (find-editeevsubtitles-links "c2m211somas1d" "2021-1-C2-somas-1-dicas" "pCD1p9FZYdI" "18:18")
;;
(defun find-editeevsubtitles-links-1 (c)
(let* ((yt (ee-1stclassvideos-field c :yt))
(mp4stem (ee-1stclassvideos-mp4stem c))
(hash (ee-1stclassvideos-hash c))
(length (ee-1stclassvideos-field c :length)))
(find-editeevsubtitles-links c mp4stem hash length)))
(defun find-editeevsubtitles-links (&optional c mp4stem hash length &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for editeevsubtitles."
(interactive)
(setq c (or c "{c}"))
(setq mp4stem (or mp4stem "{mp4stem}"))
(setq hash (or hash "{hash}"))
(setq length (or length "{length}"))
(apply
'find-elinks
`((find-editeevsubtitles-links ,c ,mp4stem ,hash ,length ,@pos-spec-list)
(find-editeevsubtitles-links-1 ,c)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-editeevsubtitles-links)
""
(find-blogme3-legendas-links ,c ,mp4stem ,hash)
""
,(ee-template0 "\
# (kill-new \" SUBTITLES/{mp4stem}.lua\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
# (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"SUBTITLES/\")
# (ee-copy-rest 2 '(find-fline \"~/SUBTITLES/{mp4stem}.lua\"))
# (ee-copy-rest0 1 nil)
-- This file:
-- http://anggtwu.net/SUBTITLES/{mp4stem}.lua.html
-- http://anggtwu.net/SUBTITLES/{mp4stem}.lua
-- (find-angg \"SUBTITLES/{mp4stem}.lua\")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun l () (interactive) (find-angg \"SUBTITLES/{mp4stem}.lua\"))
-- (defun b () (interactive) (find-TH \"{mp4stem}\"))
-- (defun R () (interactive) (ee-recompile-SUBTITLES-0))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-3))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-1))
-- (define-key eev-mode-map (kbd \"M-r\") 'r)
-- Skel: (find-editeevsubtitles-links-1 \"{c}\")
-- (find-efunction 'find-editeevsubtitles-links-1)
-- Yttr: (find-yttranscript-links \"{c}\" \"{hash}\")
-- Info: (find-1stclassvideo-links \"{c}\")
-- Play: (find-{c}video \"0:00\")
--
-- I use the code below to generate the subtitles in .vtt.
--
ee_dofile \"~/LUA/Subtitles.lua\" -- (find-angg \"LUA/Subtitles.lua\")
--[[
-- (find-angg \"LUA/Subtitles.lua\")
** Run the .lua and tell it to
** write the .vtt - by default in /tmp/
*
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{mp4stem}.lua\"
sts = Subtitles.fromsexps(subs_bigstr):addtime(\"{length}\")
-- sts.lang = \"pt-BR\"
= sts
outfname = \"$S/http/anggtwu.net/eev-videos/{mp4stem}.vtt\"
outfname = \"/tmp/{mp4stem}.vtt\"
out = sts:vtt()..\"\\n\\n\"
ee_writefile(outfname, out)
-- (find-fline \"/tmp/{mp4stem}.vtt\")
** Test the .vtt
** (find-{c}video \"0:00\")
** Select /tmp/ or ee-eevvideosdir
** (find-eevvideosfile \"\")
** (find-eevvideosfile \"\" \"{mp4stem}.mp4\")
** (find-eevvideossh0 \"cp -v {mp4stem}.mp4 /tmp/\")
** (code-video \"{c}video\" \"/tmp/{mp4stem}.mp4\")
** (code-video \"{c}video\" \"$S/http/anggtwu.net/eev-videos/{mp4stem}.mp4\")
** (find-{c}video \"0:00\")
** Upload the {mp4stem}.vtt
** to http://anggtwu.net/eev-videos/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
scp {mp4stem}.vtt $LINP/eev-videos/
scp {mp4stem}.vtt $LINS/eev-videos/
Scp-np {mp4stem}.vtt $TWUP/eev-videos/
Scp-np {mp4stem}.vtt $TWUS/eev-videos/
** Upload the subtitles to youtube
** http://www.youtube.com/watch?v={hash}
** Check that the \"psne subtitles\" thing works
** (find-1stclassvideo-links \"{c}\")
--]]
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"{mp4stem}.lua\"
for li in subs_bigstr:gmatch(\"([^\\n]+)\") do
local time,text = li:match('^.-\"(.-)\".-\"(.*)\"%)$')
text = text:gsub(\"\\\\(.)\", \"%1\")
if time then print(\" \"..time..\" \"..text) end
end
--]]
subs_bigstr = [==[
\(find-{c}video \"00:00\" \" \")
]==]
unrevised_bigstr = [==[
\(find-{c}video \"00:00\" \" \")
]==]
-- Local Variables:
-- coding: utf-8-unix
-- End:
")
)
pos-spec-list))
;; «find-blogme3-legendas-links» (to ".find-blogme3-legendas-links")
;; Skel: (find-find-links-links-new "blogme3-legendas" "short stem hash pagestem" "")
;; Test: (find-blogme3-legendas-links)
;;
(defun find-blogme3-legendas-links (&optional short stem hash pagestem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for blogme3-legendas."
(interactive)
(setq short (or short "{short}"))
(setq stem (or stem "{stem}"))
(setq hash (or hash "{hash}"))
(setq pagestem (or pagestem "{pagestem}"))
(apply
'find-elinks
`((find-blogme3-legendas-links ,short ,stem ,hash ,pagestem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-blogme3-legendas-links)
(find-efunction 'find-blogme3-links)
(find-efunction 'find-blogme3-links ,stem)
""
(kill-new ,stem)
(find-blogme3 "anggmake.lua" "blogmestems" "2023-caepro0")
(find-TH ,stem)
(ee-copy-rest 1 '(find-TH ,stem))
""
,(ee-template0 "\
[INCLUDE TH/speedbar.blogme]
[SETFAVICON dednat4/dednat4-icon.png]
[SETFAVICON IMAGES/forthsun.png]
[#
(defun c () (interactive) (find-blogme3-sh0-if \"{stem}\"))
(defun u () (interactive) (find-blogme-upload-links \"{stem}\"))
(defun u () (interactive) (find-blogme3-st-up-links \"{stem}\"))
(defun l () (interactive) (find-angg \"SUBTITLES/{stem}.lua\"))
(defun b () (interactive) (find-TH \"{stem}\"))
(defun p () (interactive) (find-TH \"{pagestem}\"))
;; http://anggtwu.net/{pagestem}.html
;; http://anggtwu.net/{stem}.html
;; file:///home/edrx/TH/L/{stem}.html
;;
;; (find-blogme3-legendas-links \"{short}\" \"{stem}\" \"{hash}\")
#]
[lua:
require \"defs-2022\" -- (find-blogme3 \"defs-2022.lua\")
load_caepro5() -- (find-blogme3 \"defs-2022.lua\" \"load_caepro5\")
]
[SETHEADSTYLE [LUCIDA]]
[htmlize8 [J \"Isso muda alguma coisa?\" (Sobre as reclamações do CAEPRO)]
[lua:
short_:add [[
caepro => (find-TH \"2023-caepro\")
caepro -> 2023-caepro.html
(find-1stclassvideo-links \"{short}\")
{short}-page -> http://anggtwu.net/{pagestem}.html
{short}-mp4 -> http://anggtwu.net/eev-videos/{stem}.mp4
{short}-lua => (find-angg \"SUBTITLES/{stem}.lua\" \"legendas\")
{short}-leg => (find-TH \"{stem}\")
{short}-pdf -> http://anggtwu.net/LATEX/2023-caepro.pdf
{short}-video -> https://www.youtube.com/watch?v={hash}
{short}-index => (find-1stclassvideoindex \"{short}\")
]]
]
[P The main page about this video is [_ {short}-page here].
[BR] Its index is [_ {short}-index here].
[BR] Its subtitles in Lua are [_ {short}-lua here].
[BR] The rest of this page contains a conversion of the subtitles in Lua
[BR] to a slightly more readable format.
]
[P Mais informações aqui:
[BR] [_ caepro Sobre as reclamações do CAEPRO].
[BR] Pra assistir o vídeo clique ou no thumbnail abaixo
[BR] ou nas marcas de tempo nas legendas.
[BR] O título original deste vídeo era: \"[_ {short}-mp4 \"Isso muda alguma coisa?\" (Sobre as reclamações do CAEPRO)]\".
[BR] As legendas dele em Lua estão [_ {short}-lua aqui].
[BR] O PDF dele está [_ {short}-pdf aqui].
]
[NARROW
[PLEFT
[FIG [__ {short}-video]
IMAGES/{stem}-small.png]
]
]
[br]
[P
[lua:
-- (find-angg \"SUBTITLES/{stem}.lua\")
-- (find-angg \"LUA/Subtitles.lua\" \"Subtitles\")
-- (find-TH \"2021aulas-por-telegram\" \"legendas\" \"ipairs\")
-- (find-fline \"~/SUBTITLES/{stem}.lua\")
ee_dofile \"~/SUBTITLES/{stem}.lua\"
-- (find-fline \"~/LUA/Subtitles2.lua\")
ee_dofile \"~/LUA/Subtitles2.lua\"
Subtitle.hash = \"{hash}\"
sls = SubtitleLines.from(subs_bigstr)
return sls:blogme()
]
]
]
[#
# Local Variables:
# coding: utf-8-unix
# modes: (fundamental-mode blogme-mode)
# End:
#]
")
)
pos-spec-list))
;; «find-blogme3-st-up-links» (to ".find-blogme3-st-up-links")
;; Skel: (find-find-links-links-new "blogme3-st-up" "stem" "")
;; Test: (find-blogme3-st-up-links "2023-visual-vs-auditivo")
;;
(defun find-blogme3-st-up-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for blogme3-st-up."
(interactive)
(setq stem (or stem "{stem}"))
(let ((ee-buffer-name (or ee-buffer-name "*find-blogme3-st-up-links*")))
(apply
'find-elinks
`((find-blogme3-st-up-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-blogme3-st-up-links)
""
,(ee-template0 "\
# (defun u () (interactive) (find-blogme3-st-up-links \"{stem}\"))
# (find-angg \"SUBTITLES/{stem}.lua\")
# (find-TH \"{stem}\")
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
touch ~/SUBTITLES/{stem}.lua
touch ~/TH/{stem}.blogme
makeL1 SUBTITLES/{stem}.lua.html \\
{stem}.html
# file:///home/edrx/TH/L/{stem}.html
makeR1 SUBTITLES/{stem}.lua.html \\
{stem}.html
makeL
makeR
scp SUBTITLES/{stem}.lua.html $LINP/SUBTITLES/{stem}.lua.html
scp {stem}.html $LINP/{stem}.html
# http://anggtwu.net/{stem}.html
")
)
pos-spec-list)))
;; «find-cp-LUA-links» (to ".find-cp-LUA-links")
;; Skel: (find-find-links-links-new "cp-LUA" "all" "first")
;; Test: (find-cp-LUA-links)
;; (find-cp-LUA-links "Caepro4")
;; (find-cp-LUA-links "ELpeg-cme1")
;; (find-cp-LUA-links "ELpeg-cme1 ELpeg1 Globals1 PCall1 Show2 Subst1 Tree1")
;; (find-cp-LUA-links "Caepro4 ELpeg1 Globals1 PCall1 Show2 Subst1 Tree1")
;; See: (find-angg "LUA/Deps1.lua")
;; Try: (find-sh0 "~/LUA/Deps1.lua -runcps Caepro4")
;; (find-sh0 "~/LUA/Deps1.lua -runcps 'Caepro4 ELpeg-cme1'")
;;
(defun find-cp-LUA-links (&optional all &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cp-LUA."
(interactive)
(setq all (or all "{all}"))
(let* ((first (car (ee-split all))))
(apply
'find-elinks
`((find-cp-LUA-links ,all ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cp-LUA-links)
""
(find-angg "LUA/Deps1.lua")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LUA/
for i in {all}; do cp -v $i.lua ~/LATEX/; done
# (find-sh0 \"cd ~/LUA/; for i in {all}; do cp -v $i.lua ~/LATEX/; done\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
s0 = Set.from(keys(package.loaded))
Path.prependtopath \"~/LUA/?.lua\"
require \"{first}\"
s1 = Set.from(split(\"{first} lpeg\"))
s2 = Set.from(keys(package.loaded))
= s0:ksc(\" \")
= s2:ksc(\" \")
= (s2-s0):ksc(\" \")
= s1:ksc(\" \")
= (s2-s1-s0):ksc(\" \")
= \"{all}\"
")
)
pos-spec-list)))
;; «find-Deps1-links» (to ".find-Deps1-links")
;; Skel: (find-find-links-links-new "Deps1" "mains" "")
;; See: (find-angg "LUA/Deps1.lua")
;; Test: (find-Deps1-links)
;; (find-Deps1-links "Caepro4 Estatistica1")
;; (find-Deps1-cps "Caepro4 Estatistica1")
;; (find-Deps1-anggs "Caepro4 Estatistica1")
;;
(defun find-Deps1-links (&optional mains &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Deps1."
(interactive)
(setq mains (or mains "{mains}"))
(apply
'find-elinks-elisp
`((find-Deps1-links ,mains ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-Deps1-links)
""
(find-Deps1-links "Caepro4 Estatistica1")
(find-angg "LUA/Deps1.lua")
""
,(ee-template0 "\
(find-Deps1-links \"{mains}\")
(find-Deps1-cps \"{mains}\")
(find-Deps1-anggs \"{mains}\")
(find-sh0 \"~/LUA/Deps1.lua -runcps '{mains}'\")
(defun cps () (interactive) (find-sh0 \"~/LUA/Deps1.lua -runcps '{mains}'\"))
")
)
pos-spec-list))
(defun find-Deps1-cps (mains)
(find-sh0 (format "~/LUA/Deps1.lua -runcps '%s'" mains)))
(defun find-Deps1-list (mains)
(find-sh0 (format "~/LUA/Deps1.lua -listfiles '%s'" mains)))
(defun find-Deps1-anggs (mains)
(find-estring (find-sh0 (format "~/LUA/Deps1.lua -findanggs '%s'" mains))))
;;; _ ____
;;; ___| |__ _____ _|___ \
;;; / __| '_ \ / _ \ \ /\ / / __) |
;;; \__ \ | | | (_) \ V V / / __/
;;; |___/_| |_|\___/ \_/\_/ |_____|
;;;
;; Moved to: (find-eev "eev-tlinks.el" "find-show2-links")
;; Moved to: (find-eev "eev-tlinks.el" "show2")
;; «find-godotref-links» (to ".find-godotref-links")
;; Skel: (find-find-links-links-new "godotref" "Class Method" "class method")
;; Test: (find-godotref-links)
;; (find-godotref-links "Expression" "parse")
;;
(defun find-godotref-links (&optional Class Method &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for godotref."
(interactive)
(setq Class (or Class "{Class}"))
(setq Method (or Method "{Method}"))
(let* ((class (downcase Class))
(method (replace-regexp-in-string
"_" "-" (replace-regexp-in-string "^_" "" (downcase Method)))))
(apply
'find-elinks
`((find-godotref-links ,Class ,Method ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-godotref-links)
""
,(ee-template0 "\
# (find-gd3docrfile \".files.rst\")
# (find-gd3docrsh \"grep {Class} .files.rst\")
# (find-gd3docrsh \"grep -i {Class} .files.rst\")
# (find-gd3docrsh \"grep {Method} .files.rst\")
# (find-gd3docrsh \"grep -i {Method} .files.rst\")
# (find-gd3docrgrep \"grep --color=auto -nH --null -e {Class} $(cat .files.rst)\")
# (find-gd3docrgrep \"grep --color=auto -niH --null -e {Class} $(cat .files.rst)\")
# (find-gd3docrgrep \"grep --color=auto -nH --null -e {Method} $(cat .files.rst)\")
# (find-gd3docrgrep \"grep --color=auto -niH --null -e {Method} $(cat .files.rst)\")
# (find-gd3docr \"classes/class_{class}\")
# (find-gd3doc \"classes/class_{class}\")
# (find-gd3doc \"classes/class_{class}#class-{class}-method-{method}\")
")
)
pos-spec-list)))
;; «find-defhydra-links» (to ".find-defhydra-links")
;; Skel: (find-find-links-links-new "defhydra" "stem short" "")
;; Test: (find-defhydra-links)
;;
(defun find-defhydra-links (&optional stem short &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for defhydra."
(interactive)
(setq stem (or stem "{stem}"))
(setq short (or short "{short}"))
(apply
'find-elinks-elisp
`((find-defhydra-links ,stem ,short ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-defhydra-links)
""
,(ee-template0 "\
(defhydra hydra-{stem} (:hint nil)
\"
_q_uit _r_edir
_a_rchive _d_elorig
^^ _c_lear fbclids
\"
(\"r\" (progn (eek \"C-a\") (ee-read-redir)))
(\"d\" (eek \"C-a <up> C-a C-k C-k\"))
;;
(\"<down>\" (eek \"<down>\"))
;;
(\"q\" nil)
)
(defun {short} ()
(interactive)
(hydra-{stem}/body))
")
)
pos-spec-list))
;; «find-rsynccamera-links» (to ".find-rsynccamera-links")
;; Skel: (find-find-links-links-new "rsynccamera" "localdir yyyy mm dd" "")
;; Based on: (find-efunction 'find-mtp-links)
;; Used by: (find-efunction 'find-copy-quadros-links)
;; Test: (find-rsynccamera-links)
;;
(defun find-rsynccamera-links (&optional localdir yyyy mm dd &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for rsynccamera."
(interactive)
(setq localdir (or localdir "/tmp/phone-camera/"))
(setq yyyy (or yyyy (format-time-string "%Y")))
(setq mm (or mm (format-time-string "%m")))
(setq dd (or dd (format-time-string "%d")))
(apply
'find-elinks
`((find-rsynccamera-links ,localdir ,yyyy ,mm ,dd ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-rsynccamera-links)
(find-angg ".zshrc" "termux")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"{localdir}\")
mkdir -p {localdir}
cd {localdir}
exporttermuxvars
exporttermuxvars echo
echo rsync -avv -e \"$TERMUXE\" \"$TERMUXCAMERA/{yyyy}{mm}{dd}*.jpg\" .
rsync -avv -e \"$TERMUXE\" \"$TERMUXCAMERA/{yyyy}{mm}{dd}*.jpg\" .
")
)
pos-spec-list))
;; «find-eev-new-el-file-links» (to ".find-eev-new-el-file-links")
;; Skel: (find-find-links-links-new "eev-new-el-file" "stem" "")
;; Test: (find-eev-new-el-file-links "eev-lean4")
;;
(defun find-eev-new-el-file-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for eev-new-el-file."
(interactive)
(setq stem (or stem "{stem}"))
(apply
'find-elinks-elisp
`((find-eev-new-el-file-links ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-eev-new-el-file-links)
""
,(ee-template0 "\
;; (kill-new \" eev-current/{stem}.el\")
;; (find-blogme3file \"anggmake.lua\" \"eev-current/eev-blinks.el\")
;; (find-eev \"{stem}.el\")
;; (kill-new \"(require '{stem}) ; (find-eev \\\"{stem}.el\\\")\")
;; (find-eev \"eev-load.el\" \"load-the-main-modules\" \"eev-kla\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/eev-g/
cp -v ~/eev-current/{stem}.el .
git add {stem}.el
# (magit-status \"/tmp/eev-g/\")
;; (ee-copy-rest 1 '(find-eev \"{stem}.el\"))
;;; {stem}.el -- ???. -*- lexical-binding: nil; -*-
;; Copyright (C) 2022-2023 Free Software Foundation, Inc.
;;
;; This file is part of GNU eev.
;;
;; GNU eev is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; GNU eev is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
;; Version: 20231202
;; Keywords: e-scripts
;;
;; Latest version: <http://anggtwu.net/eev-current/{stem}.el>
;; htmlized: <http://anggtwu.net/eev-current/{stem}.el.html>
;; See also: <http://anggtwu.net/eev-current/eev-beginner.el.html>
;; <http://anggtwu.net/eev-intros/find-kla-intro.html>
;; (find-kla-intro)
;;; Comment:
;;
(provide '{stem})
;; Local Variables:
;; coding: utf-8-unix
;; no-byte-compile: t
;; End:
")
)
pos-spec-list))
;; «find-tikz2-links» (to ".find-tikz2-links")
;; Skel: (find-find-links-links-new "tikz2" "" "")
;; Test: (find-tikz2-links)
;;
(defun find-tikz2-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for tikz2."
(interactive)
(apply
'find-elinks
`((find-tikz2-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-tikz2-links)
""
,(ee-template0 "\
** (find-angg \"LUA/Tikz2.lua\")
** (find-angg \"LUA/Show2.lua\" \"texbody\")
* (show2-use \"~/LATEX/Show2.tex\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadtikz2()
-- usetikzlibraries.positioning = \"positioning\"
-- tikzoptions.place = [[ place/.style={<}circle,draw=blue!50,fill=blue!20,thick{>} ]]
tikzbody = Dang.from [[
\\draw[thick,rounded corners=8pt]
(0,0)--(0,2)--(1,3.25)--(2,2)--(2,0)--(0,2)--(2,2)--(0,0)--(2,0);
]]
= show00()
= show0()
= show()
* (etv)
= Show.bigstr
= Show.log
")
)
pos-spec-list))
(defun tikz2 ()
(interactive)
(find-2a nil '(find-tikz2-links)))
;; «find-screenkey-links» (to ".find-screenkey-links")
;; Skel: (find-find-links-links-new "screenkey" "" "")
;; Test: (find-screenkey-links)
;;
(defun find-screenkey-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for screenkey."
(interactive)
(apply
'find-elinks
`((find-screenkey-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-screenkey-links)
""
,(ee-template0 "\
# (find-es \"screencasts\" \"screenkey\")
# (find-debpkg-links \"screenkey\")
# (find-status \"screenkey\")
# (find-vldifile \"screenkey.list\")
# (find-udfile \"screenkey/\")
# (code-c-d \"screenkey\" \"/usr/lib/python3/dist-packages/Screenkey/\")
# (find-screenkeyfile \"\")
# (find-man \"1 screenkey\")
# (find-sh \"screenkey --help\")
# (find-sh \"screenkey --help\" \"--font-size\")
# (find-sh \"screenkey --help\" \"--font-size\" \"--opacity OPACITY\")
* (eepitch-shell3)
* (eepitch-kill)
* (eepitch-shell3)
screenkey -s small --mods-mode emacs --opacity 0.2 --timeout 0.5 &
killall screenkey
* (eepitch-shell3)
killall screenkey
")
)
pos-spec-list))
;; «find-tikzsearch2-links» (to ".find-tikzsearch2-links")
;; Skel: (find-find-links-links-new "tikzsearch2" "page string" "string-")
;; Test: (find-tikzsearch2-links)
;;
(defun find-tikzsearch2-links (&optional page string &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for tikzsearch2."
(interactive)
(setq page (or page "{page}"))
(setq string (or string "{string}"))
(let* ((string- (replace-regexp-in-string "^[0-9. ]*" "" string)))
(apply
'find-elinks
`((find-tikzsearch2-links ,page ,string ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-tikzsearch2-links)
""
,(ee-template0 "\
# (find-tikzmanpage {page} \"{string}\")
# (find-tikzmantext {page} \"{string}\")
# (find-tikzmangrep \"grep --color=auto -nRH --null -e '{string-}' *.tex\")
# (find-tikzmanpage 3 \"Contents\")
# (find-tikzmantext 3 \"Contents\")
# (find-tikzmanpage 3 \"Contents\" \"{string}\")
# (find-tikzmantext 3 \"Contents\" \"{string}\")
# (find-tikzmanpage 3 \"Contents\" \"{string-}\")
# (find-tikzmantext 3 \"Contents\" \"{string-}\")
# (find-angg \".emacs.papers\" \"tikz\")
# (find-angg \".emacs.papers\" \"tikz\" \"{string}\")
# (kill-new \"{string}\")
# (find-tikzmanpage 3 \"Contents\")
# (find-tikzmantext 3 \"Contents\")
# (find-tikzmanpage 3 \"Contents\" \"{string-}\")
# (find-tikzmantext 3 \"Contents\" \"{string-}\")
# (find-tikzmanpage 3 \"Contents\" \"{string}\")
# (find-tikzmantext 3 \"Contents\" \"{string}\")
# (find-tikzmanpage 1235 \"Index\")
# (find-tikzmantext 1235 \"Index\")
# (find-tikzmanpage 1235 \"Index\" \"{string}\")
# (find-tikzmantext 1235 \"Index\" \"{string}\")
# (find-tikzgitfile \"\")
# (find-tikzmanfile \"\")
# (find-tikzgittgpfile \"\")
# (find-tikzgitgrep \"grep --color=auto -nRH --null -e '{string-}' *\")
# (find-tikzmangrep \"grep --color=auto -nRH --null -e '{string-}' *.tex\")
# (find-tikzgittgpgrep \"grep --color=auto -nRH --null -e '{string-}' *\")
# https://github.com/pgf-tikz/pgf
# https://github.com/pgf-tikz/pgf/tree/master/
")
)
pos-spec-list)))
;; See: (find-angg "elisp/klapt.el")
(defun ee-sexp-eol-nth (n)
(ee-goto-eol)
(nth n (read (ee-last-sexp))))
(defun tiks2 ()
(interactive)
(find-tikzsearch2-links
(eval (ee-sexp-eol-nth 1))
(ee-sexp-eol-nth 2)))
;; <find-luareset-links>
;; Skel: (find-find-links-links-new "luareset" "" "")
;; Test: (find-luareset-links)
;;
(defun find-luareset-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for luareset."
(interactive)
(apply
'find-elinks
`((find-luareset-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-luareset-links)
""
,(ee-template0 "\
* (setenv \"LUA_INIT\" \"@/home/edrx/LUA/lua50init.lua\")
* (setenv \"LUA_PATH\" \"/home/edrx/LUA/?.lua;;\")
* (setenv \"LUA_PATH\" nil)
")
)
pos-spec-list))
(defalias 'luareset 'find-luareset-links)
;; «find-luaso-links» (to ".find-luaso-links")
;; Moved to: (find-eev "eev-tlinks.el" "find-luaso-links")
;; «find-let*-macro-links» (to ".find-let*-macro-links")
;; Moved to: (find-eev "eev-tlinks.el" "find-let*-macro-links")
;; «find-luawget-links» (to ".find-luawget-links")
;; See: (to "find-luademo-links")
;; Skel: (find-find-links-links-new "luawget" "stems" "stemsc wgets Main main")
;; Tests: (find-luawget-links "Dang1 CLua1")
;; (find-luawget-links "Tos3")
;;
(defun find-luawget-links (&optional stems &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for luawget."
(interactive)
(setq stems (or stems "{stems}"))
(let* ((stemsc (replace-regexp-in-string " " "," stems))
(wgets (mapconcat
(lambda (stem) (format "wget http://anggtwu.net/LUA/%s.lua\n" stem))
(ee-split stems)))
(Main (car (reverse (ee-split stems))))
(main (downcase Main)))
(apply
'find-elinks
`((find-luawget-links ,stems ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-luawget-links)
""
,(ee-adjust-red-stars (ee-template0 "\
* (ee-use-red-stars)
* (ee-use-red-bullets)
** (find-Deps1-cps \"{Main}\")
** (find-Deps1-anggs \"{Main}\")
** (find-Deps1-cps \"{stems}\")
** (find-Deps1-anggs \"{stems}\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/LUA/
scp {<}lua50init,{stemsc}{>}.lua $LINP/LUA/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rfv /tmp/{main}/
mkdir /tmp/{main}/
cd /tmp/{main}/
cp -v ~/LUA/{<}lua50init,{stemsc}{>}.lua .
wget http://anggtwu.net/LUA/lua50init.lua
{wgets}\
** Make `find-{main}', LUA_INIT and LUA_PATH point to /tmp/{main}/:
* (code-c-d \"{main}\" \"/tmp/{main}/\" :anchor)
* (setenv \"LUA_INIT\" \"@/tmp/{main}/lua50init.lua\")
* (setenv \"LUA_PATH\" \"/tmp/{main}/?.lua;;\")
** If you know how to use test blocks, try these ones:
** (find-{main} \"{Main}.lua\")
** A test \"from the outside\":
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
require \"{Main}\" -- (find-{main} \"{Main}.lua\")
** (luareset)
** (find-blogme3-links \"{Main}\")
** (find-TH \"{Main}\")
** (find-sshot-links \"5\" \"2024-{Main}\")
"))
)
pos-spec-list)))
;; «eewrap-require» (to ".eewrap-require")
;; Skel: (find-eewrap-links "U" "require" "stem")
;; Test: (find-eewraptest-links "require" "ELpeg1")
;;
(defun eewrap-require () (interactive)
(ee-this-line-wrapn 1 'ee-wrap-require))
(defun ee-wrap-require (stem)
"An internal function used by `eewrap-require'."
(ee-template0 "\
Path.addLUAtopath()
require \"{stem}\" -- (find-angg \"LUA/{stem}.lua\")"))
;; «find-termux-links» (to ".find-termux-links")
;; Skel: (find-find-links-links-new "termux" "ip yyyy mm dd" "")
;; Test: (find-termux-links)
;; See: (find-angg ".emacs" "eepitch-termux")
;; (find-angg ".zshrc" "termux")
;;
(defun find-termux-links (&optional ip yyyy mm dd &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for termux."
(interactive)
(setq ip (or ip "{ip}"))
(setq yyyy (or yyyy (format-time-string "%Y")))
(setq mm (or mm (format-time-string "%m")))
(setq dd (or dd (format-time-string "%d")))
(apply
'find-elinks
`((find-termux-links ,ip ,yyyy ,mm ,dd ,@pos-spec-list)
(find-termux-links ,(getenv "TERMUXIP") ,yyyy ,mm ,dd ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-termux-links)
(find-es "termux" "rsync-phonecamera")
(find-es "termux" "rsync-wpvideos")
(find-es "termux" "rsync-wpimages")
(find-efunction 'find-mtp-links)
""
,(ee-template0 "\
rmnet5: (find-termux-links \"10.5.248.220\")
rndis0: (find-termux-links \"192.168.42.129\")
wlan0: (find-termux-links \"192.168.1.3\")
* (tm-setenv \"TERMUXIP\" \"{ip}\")
* (tm-setenv \"TERMUXUSER\" \"u0_a037\")
* (tm-setenv \"TERMUXE\" \"ssh -l [TERMUXUSER] -p 8022\")
* (tm-setenv \"TERMUXSSH\" \"ssh://[TERMUXUSER]@[TERMUXIP]:8022\")
*
* (tm-setenv \"TMTRAMP\" \"/scp:[TERMUXUSER]@[TERMUXIP]#8022:\")
* (tm-setenv \"TMTRAMPCAM\" \"[TMTRAMP]/storage/emulated/0/DCIM/Camera\")
* (tm-setenv \"TMTRAMPSCR\" \"[TMTRAMP]/storage/emulated/0/DCIM/Screenshots\")
* (tm-setenv \"TMTRAMPWP\" \"[TMTRAMP]/storage/emulated/0/Android/media/com.whatsapp/Whatsapp\")
* (tm-setenv \"TMTRAMPWPI\" \"[TMTRAMPWP]/Media/WhatsApp Images\")
* (tm-setenv \"TMTRAMPWPV\" \"[TMTRAMPWP]/Media/WhatsApp Video\")
* (tm-setenv \"TMTRAMPWPD\" \"[TMTRAMPWP]/Media/WhatsApp Documents\")
* (tm-setenv \"TMTRAMPHOME\" \"[TMTRAMP]/data/data/com.termux/files/home\")
* (code-c-d \"tmtrampcam\" (tm-expand \"[TMTRAMPCAM]/\"))
* (code-c-d \"tmtrampscr\" (tm-expand \"[TMTRAMPSCR]/\"))
* (code-c-d \"tmtrampwpi\" (tm-expand \"[TMTRAMPWPI]/\"))
* (code-c-d \"tmtrampwpv\" (tm-expand \"[TMTRAMPWPV]/\"))
* (code-c-d \"tmtrampwpd\" (tm-expand \"[TMTRAMPWPD]/\"))
* (code-c-d \"tmtramphome\" (tm-expand \"[TMTRAMPHOME]/\"))
** (find-tmtrampcamfile \"\")
** (find-tmtrampscrfile \"\")
** (find-tmtrampwpifile \"\")
** (find-tmtrampwpvfile \"\")
** (find-tmtrampwpdfile \"\")
** (find-tmtramphomefile \"\")
** (find-tmtramphomefile \".bashrc\")
**
** (find-fline \"$TMTRAMPCAM\")
** (find-fline \"$TMTRAMPSCR\")
** (find-fline \"$TMTRAMPWPI\")
** (find-fline \"$TMTRAMPWPV\")
** (find-fline \"$TMTRAMPHOME\")
*
* (tm-setenv \"TMRSYNC\" \"[TERMUXIP]\")
* (tm-setenv \"TMRSYNSSH\" \"ssh -l [TERMUXUSER] -p 8022\")
* (tm-setenv \"TMRSYNCCAM\" \"[TMRSYNC]:/storage/emulated/0/DCIM/Camera\")
* (tm-setenv \"TMRSYNCSCR\" \"[TMRSYNC]:/storage/emulated/0/DCIM/Screenshots\")
* (tm-setenv \"TMRSYNCWP\" \"[TMRSYNC]:/storage/emulated/0/Android/media/com.whatsapp/Whatsapp\")
* (tm-setenv \"TMRSYNCWPI\" \"[TMRSYNCWP]/Media/WhatsApp\\\\ Images\")
* (tm-setenv \"TMRSYNCWPV\" \"[TMRSYNCWP]/Media/WhatsApp\\\\ Video\")
* (tm-setenv \"TMRSYNCWPD\" \"[TMRSYNCWP]/Media/WhatsApp\\\\ Documents\")
*
** edrx
** (find-es \"termux\" \"rsync-phonecamera\")
** (find-es \"termux\" \"rsync-wpvideos\")
** (find-es \"termux\" \"rsync-wpimages\")
*
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
** (find-tmtrampcamfile \"\")
** (find-tmtrampcamfile \"\" \"{yyyy}{mm}{dd}\")
# (find-fline \"/tmp/phone-camera/\" \"{yyyy}{mm}{dd}\")
mkdir -p /tmp/phone-camera/
cd /tmp/phone-camera/
echo rsync -avv -e \"$TERMUXE\" \"$TMRSYNCCAM/{yyyy}{mm}{dd}*.jpg\" .
rsync -avv -e \"$TERMUXE\" \"$TMRSYNCCAM/{yyyy}{mm}{dd}*.jpg\" .
# (find-fline \"/sda1/home/phone-backup/camera-videos/\")
cd /sda1/home/phone-backup/camera-videos/
rsync -avv -e \"$TERMUXE\" \"$TMRSYNCCAM/{yyyy}{mm}{dd}*.mp4\" .
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
** (find-tmtrampwpvfile \"\")
** (find-tmtrampwpvfile \"\" \"{yyyy}{mm}{dd}\")
# (find-fline \"/sda1/home/phone-backup/whatsapp-video/\")
# (find-fline \"/sda1/home/phone-backup/whatsapp-video/\" \"{yyyy}{mm}{dd}\")
cd /sda1/home/phone-backup/whatsapp-video/
echo rsync -avv -e \"$TERMUXE\" \"$TMRSYNCWPV/VID-{yyyy}{mm}{dd}*\" .
rsync -avv -e \"$TERMUXE\" \"$TMRSYNCWPV/VID-{yyyy}{mm}{dd}*\" .
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
** (find-tmtrampwpifile \"\")
** (find-tmtrampwpifile \"\" \"{yyyy}{mm}{dd}\")
# (find-fline \"/sda1/home/phone-backup/whatsapp-images/\")
# (find-fline \"/sda1/home/phone-backup/whatsapp-images/\" \"{yyyy}{mm}{dd}\")
cd /sda1/home/phone-backup/whatsapp-images/
echo rsync -avv -e \"$TERMUXE\" \"$TMRSYNCWPI/IMG-{yyyy}{mm}{dd}*\" .
rsync -avv -e \"$TERMUXE\" \"$TMRSYNCWPI/IMG-{yyyy}{mm}{dd}*\" .
")
)
pos-spec-list))
;; «tm-expand» (to ".tm-expand")
;; «tm-setenv» (to ".tm-setenv")
;; (tm-setenv "FOO" "_[HOME]_")
;; (tm-setenv "FOO" "_${HOME}_")
;; (tm-regexp)
;; (tm-expand "_[HOME]_${HOME}_")
;;
(defun tm-regexp () (rx "[" (* (not (any "[]"))) "]"))
(defun tm-expand (str)
(replace-regexp-in-string
(tm-regexp)
(lambda (s) (or (getenv (substring s 1 -1)) ""))
str 'fixedcase 'literal))
(defun tm-setenv (variable value)
(setenv variable (tm-expand value)))
;; (defun ee-termux-replace (str)
;; (replace-regexp-in-string
;; (tm-regexp)
;; (lambda (s) (or (getenv (substring s 1 -1)) ""))
;; str 'fixedcase 'literal))
;; «find-npm-links» (to ".find-npm-links")
;; Skel: (find-find-links-links-new "npm" "pkg" "")
;; Test: (find-npm-links)
;;
(defun find-npm-links (&optional pkg &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for npm."
(interactive)
(setq pkg (or pkg "{pkg}"))
(apply
'find-elinks
`((find-npm-links ,pkg ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-npm-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh \"find node_modules | sort\")
npm uninstall {pkg}
npm install {pkg}
npm ls
npm view {pkg}
* (eepitch-nodejs)
* (eepitch-kill)
* (eepitch-nodejs)
ohmjs = require('{pkg}');
require.resolve('{pkg}');
require;
")
)
pos-spec-list))
;; «find-my-mode-links» (to ".find-my-mode-links")
;; Skel: (find-find-links-links-new "my-mode" "" "")
;; Test: (find-my-mode-links)
;; See: (find-angg ".emacs" "my-mode")
;;
(defun find-my-mode-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for my-mode."
(interactive)
(apply
'find-elinks-elisp
`((find-my-mode-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-my-mode-links)
""
(define-key my-mode-map (kbd "M-,") 'ee-compose-pair)
(define-key my-mode-map (kbd "M-,") nil)
""
(find-eaproposf "my-mode")
(find-eaproposv "my-mode")
(find-efunction 'my-mode)
(find-angg ".emacs" "my-mode")
(find-eaproposf "keymap")
(find-eminorkeymapdescr 'my-mode)
(find-eminorkeymapdescr 'eev-mode)
(find-angg ".emacs" "eev-compose-hash")
""
,(ee-template0 "\
")
)
pos-spec-list))
(defalias 'mym 'find-my-mode-links)
;; «find-show2-use-links» (to ".find-show2-use-links")
;; Skel: (find-find-links-links-new "show2-use" "fname" "")
;; Test: (find-show2-use-links)
;;
(defun find-show2-use-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for show2-use."
(interactive)
(setq fname (or fname "{fname}"))
(apply
'find-elinks
`((find-show2-use-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-show2-use-links)
""
,@(ee-find-show2-use-links)
)
pos-spec-list))
(defun ee-find-show2-use-links (&optional fname)
(setq fname (or fname "{fname}"))
`((find-efunction 'find-show2-use-links)
(find-efunction 'ee-find-show2-use-links)
(find-show2-intro "3. Show2.lua")
(find-show2-intro "3.1. A minimal example")
(find-angg "LUA/lua50init.lua" "loadshow2")
(find-angg "LUA/Show2.lua")
(find-angg "LUA/Show2.lua" "usepackages")
"
* (show2-use \"/tmp/Show2.tex\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
loadshow2()
body = [[ HELLO ]]
= body:show()
* (etv)
"))
;; «find-etv-links» (to ".find-etv-links")
;; Skel: (find-find-links-links-new "etv" "" "")
;; Test: (find-etv-links)
;;
(defun find-etv-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for etv."
(interactive)
(apply
'find-elinks
`((find-etv-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-etv-links)
""
,@(ee-find-etv-links)
)
pos-spec-list))
(defun ee-find-etv-links (&rest rest)
`((find-efunction 'find-etv-links)
(find-efunction 'ee-find-etv-links)
(find-show2-intro "3.1. A minimal example")
(find-show2-use "/tmp/Show2.tex")
(find-show2-use "/tmp/Show2.tex" 2 "defun etv")
"
= outertexbody
= outertexbody.bigstr
= Show.bigstr
= Show.log
* (etv)
"))
;; «find-luatree-links» (to ".find-luatree-links")
;; Skel: (find-find-links-links-new "luatree" "" "")
;; Test: (find-luatree-links)
;;
(defun find-luatree-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for luatree."
(interactive)
(apply
'find-elinks
`((find-luatree-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-luatree-links)
""
(find-es "maxima" "luatree")
""
,(ee-template0 "\
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
** (find-angg \"luatree/luatree.mac\")
load (\"~/luatree/luatree.mac\");
MV2 : 'integrate(fp(g(x))*gp(x), x, a, b) = 'integrate(fp(u), u, g(a), g(b));
luatree (MV2);
luatree1d(luatree1d);
luatree (luatree1d);
luatree1d;
luatree (luatree);
luatree;
:lisp #$MV2$
")
)
pos-spec-list))
;; «find-lean-links» (to ".find-lean-links")
;; Skel: (find-find-links-links-new "lean" "str" "")
;; Test: (find-lean-links)
;; (find-lean-links "Quantifiers and Equality")
;;
(defalias 'fll 'find-lean-links)
(defun find-lean-links (&optional secname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for lean."
(interactive)
(setq secname (or secname "{secname}"))
(apply
'find-elinks
`((find-lean-links ,secname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lean-links)
""
(find-angg ".emacs" "lean4")
(find-angg ".emacs.papers" "fplean4")
(find-angg ".emacs.papers" "tpinlean4" ,secname)
(find-es "lean" ,secname)
,(ee-template0 "
# (find-es \"lean\" \"tpinlean4\")
# (find-leanbook-links 'leanmeta {(ee-S secname)})
# (find-leanbook-links 'fplean4 \"{secname}\")
# (find-leanbook-links 'lean4 \"{secname}\")
# (find-leanbook-links 'tpil4 \"{secname}\")
# (find-ebuffer \"*lean4-lsp::stderr*\")
# Functional Programming in Lean4:
# (find-eev \"eev-lean4.el\" \"ee-leandoc-:fplean4\")
# Lean manual:
# (find-eev \"eev-lean4.el\" \"ee-leandoc-:lean4\")
# Metaprogramming in Lean4:
# (find-eev \"eev-lean4.el\" \"ee-leandoc-:leanmeta\")
# Prelude (and other libraries):
# (find-lean4prefile \"\")
# (find-lean4presh \"find * | sort\")
# (find-lean4pregrep \"grep --color=auto -nRH --null -e '{secname}' *\")
# (find-lean4pregrep \"grep --color=auto -nRH --null -e '\\\" {secname} \\\"' *\")
# Theorem Proving in Lean4:
# (find-eev \"eev-lean4.el\" \"ee-leandoc-:tpil4\")
# (find-tpil4docrgrep \"grep --color=auto -nRH --null -e '{secname}' *\")
")
)
pos-spec-list))
;; «find-twitter-links» (to ".find-twitter-links")
;; Skel: (find-find-links-links-new "twitter" "str" "qstr")
;; Test: (find-twitter-links)
;; (find-twitter-links "@sairasameerarao saddest")
;;
(defun find-twitter-links (&optional str &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for twitter."
(interactive)
(setq str (or str "{str}"))
(let* ((qstr (url-hexify-string str)))
(apply
'find-elinks
`((find-twitter-links ,str ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-twitter-links)
""
,(ee-template0 "\
# https://twitter.com/search?q={qstr}&src=typed_query
")
)
pos-spec-list)))
;; «find-pdfanim-links» (to ".find-pdfanim-links")
;; Skel: (find-find-links-links-new "pdfanim" "dir prefix all delay density" "fulldir")
;; Test: (find-pdfanim-links)
;; (find-pdfanim-links "/tmp/qdraw/" "a_" "all")
;;
(defun find-pdfanim-links (&optional dir prefix all delay density &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for pdfanim."
(interactive)
(setq dir (or dir "{dir}"))
(setq prefix (or prefix "{prefix}"))
(setq all (or all "{all}"))
(setq delay (or delay 50))
(setq density (or density 75))
(let* ((fulldir (ee-expand dir)))
(apply
'find-elinks
`((find-pdfanim-links ,dir ,prefix ,all ,delay ,density ,@pos-spec-list)
(find-pdfanim-links ,dir ,prefix ,all "{delay}" "{density}" ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pdfanim-links)
""
(find-anggfile "LUA/QPDFMerge.lua" "qpdf --empty --pages")
(find-es "imagemagick" "pdf-to-animated-gif")
(find-es "maxima" "log-constants-anim")
(find-fline ,dir)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"{dir}\")
laf {dir}
cd {dir}
for i in {prefix}*.pdf; do echo $i 1-z; done
qpdf --empty --pages $(for i in {prefix}*.pdf; do echo $i 1-z; done) -- {all}.pdf
laf
convert -alpha deactivate -verbose -delay {delay} -loop 0 -density {density} \\
{all}.pdf {all}.gif
laf
# (find-fline \"/tmp/qdraw/\" \"all.pdf\")
# (find-pdf-page \"/tmp/qdraw/all.pdf\")
# file://{fulldir}{all}.gif
")
)
pos-spec-list)))
;; «find-qrencode-links» (to ".find-qrencode-links")
;; Skel: (find-find-links-links-new "qrencode" "urls" "")
;; Test: (find-qrencode-links)
;; Test: (find-qrencode-links "http://anggtwu.net/2023-precisamos-de-mais-slogans.html")
;;
(defun find-qrencode-links (&optional url &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for qrencode."
(interactive)
(setq url (or url "{url}"))
(apply
'find-elinks
`((find-qrencode-links ,url ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-qrencode-links)
""
(find-es "qrcode" "qrencode")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
qrencode -s 8 -o /tmp/q1.png {url}
qrencode -m 4 -s 8 -o /tmp/q2.png {url}
qrencode -l H -m 4 -s 8 -o /tmp/q3.png {url}
* (ee-kill-buffer \"q1.png\")
* (ee-kill-buffer \"q2.png\")
* (ee-kill-buffer \"q3.png\")
* (find-2a nil '(find-fline \"/tmp/q1.png\"))
* (find-2a nil '(find-fline \"/tmp/q2.png\"))
* (find-2a nil '(find-fline \"/tmp/q3.png\"))
(find-wset \"13o2_o_o\"
' (find-fline \"/tmp/q1.png\")
' (find-fline \"/tmp/q2.png\")
' (find-fline \"/tmp/q3.png\")
)
")
)
pos-spec-list))
;;; _ _ _
;;; | | ___ __ _ _ __ _ __ ___| |_ __| | ___ ___
;;; | |/ _ \/ _` | '_ \| '__/ __| __/ _` |/ _ \ / __|
;;; | | __/ (_| | | | | | \__ \ || (_| | (_) | (__
;;; |_|\___|\__,_|_| |_|_| |___/\__\__,_|\___/ \___|
;;;
;; «find-leanrstdoc-links» (to ".find-leanrstdoc-links")
;; Moved to: (find-eev "eev-lean4.el" "find-leanrstdoc-links")
;;; _ _ _ _
;;; | | ___ __ _ _ __ | |__ | |_ _ __ ___ | |
;;; | |/ _ \/ _` | '_ \| '_ \| __| '_ ` _ \| |
;;; | | __/ (_| | | | | | | | |_| | | | | | |
;;; |_|\___|\__,_|_| |_|_| |_|\__|_| |_| |_|_|
;;;
;; «find-leanhtml-links» (to ".find-leanhtml-links")
;; Skel: (find-find-links-links-new "leanhtml" "fname" "fname- localurl")
;; Test: (find-leanhtml-links)
;;
(defun find-leanhtml-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for leanhtml."
(interactive)
(setq fname (or fname (buffer-file-name) "{fname}"))
(let* ((fname- (replace-regexp-in-string "/home/edrx/" "" (ee-expand fname)))
(localurl (ee-fname-to-url fname)))
(apply
'find-elinks
`((find-leanhtml-links ,fname ,@pos-spec-list)
(find-leanhtml-links "~/LEAN/luatree2.lean")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-leanhtml-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
pygmentize -O full \\
-o {fname}.pyg.html \\
{fname}
laf {fname}*
# {localurl}.pyg.html
# (brg \"{localurl}.pyg.html\")
# (find-fline \"{fname}\")
scp -v {fname}.pyg.html $LINP/{fname-}.pyg.html
scp -v {fname}.pyg.html $LINS/{fname-}.pyg.html
# http://anggtwu.net/{fname-}.pyg.html
")
)
pos-spec-list)))
;;; _ _ _
;;; _ __ _ _ __ _| |__ | |_ _ __ ___ | |
;;; | '_ \| | | |/ _` | '_ \| __| '_ ` _ \| |
;;; | |_) | |_| | (_| | | | | |_| | | | | | |
;;; | .__/ \__, |\__, |_| |_|\__|_| |_| |_|_|
;;; |_| |___/ |___/
;;
;; «find-pyghtml-links» (to ".find-pyghtml-links")
;; Skel: (find-find-links-links-new "pyghtml" "fname" "fname- localurl")
;; Test: (find-pyghtml-links)
;;
(defun find-pyghtml-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for pyghtml."
(interactive)
(setq fname (or fname (buffer-file-name) "{fname}"))
(let* ((fname- (replace-regexp-in-string "/home/edrx/" "" (ee-expand fname)))
(localurl (ee-fname-to-url fname)))
(apply
'find-elinks
`((find-pyghtml-links ,fname ,@pos-spec-list)
(find-pyghtml-links "~/LEAN/luatree2.lean")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-pyghtml-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
pygmentize -O full \\
-o {fname}.pyg.html \\
{fname}
laf {fname}*
# {localurl}.pyg.html
# (brg \"{localurl}.pyg.html\")
# (find-fline \"{fname}\")
scp -v {fname}.pyg.html $LINP/{fname-}.pyg.html
scp -v {fname}.pyg.html $LINS/{fname-}.pyg.html
# http://anggtwu.net/{fname-}.pyg.html
")
)
pos-spec-list)))
;; «find-leanbook-links» (to ".find-leanbook-links")
;; Moved to: (find-eev "eev-lean4.el" "find-leanbook-links")
;; «find-leanquestion-links» (to ".find-leanquestion-links")
;; Skel: (find-find-links-links-new "leanquestion" "url title titl" "date")
;; Test: (find-leanquestion-links)
;;
(defun find-leanquestion-links (&optional url title titl &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for leanquestion."
(interactive)
(setq url (or url "{url}"))
(setq title (or title "{title}"))
(setq titl (or titl "{titl}"))
(let* ((date (date-as-string)))
(apply
'find-elinks
`((find-leanquestion-links ,url ,title ,titl ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-leanquestion-links)
""
,(ee-template0 "\
(find-leanquestion-links
\"https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/A.20minimal.20state.20monad.3F/near/446269145\"
\"A minimal state monad?\"
\"minimal-state-monad\")
(find-2a nil '(find-TH \"eev-lean4\"))
(find-2a nil '(find-TH \"eev-lean4\" \"questions\"))
question-{titl}-e => (find-es \"lean\" \"checksyntax\")
question-{titl}-z -> {url}
[J [ze {titl}]
({date}) {title}
]
")
)
pos-spec-list)))
;; «find-wrap-links» (to ".find-wrap-links")
;; Skel: (find-find-links-links-new "wrap" "" "")
;; Test: (find-wrap-links)
;;
(defun find-wrap-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for wrap."
(interactive)
(apply
'find-elinks
`((find-wrap-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-wrap-links)
""
(find-es "emacs" "buffer-local")
(find-angg ".emacs" "wrap")
""
(setq-default truncate-lines t)
(setq-default truncate-lines nil)
""
(default-value truncate-lines)
(default-toplevel-value truncate-lines)
""
,(ee-template0 "\
")
)
pos-spec-list))
;; «find-machinectl-tar-links» (to ".find-machinectl-tar-links")
;; Skel: (find-find-links-links-new "machinectl-tar" "debian n" "")
;; Test: (find-machinectl-tar-links)
;; See: (find-es "debootstrap" "debian-basic-setup")
;;
(defun find-machinectl-tar-links (&optional debian n &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for machinectl-tar."
(interactive)
(setq debian (or debian "{debian}"))
(setq n (or n "{n}"))
(apply
'find-elinks
`((find-machinectl-tar-links ,debian ,n ,@pos-spec-list)
(find-machinectl-tar-links "debian" "0")
(find-machinectl-tar-links "debian" "1")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-machinectl-tar-links)
""
(find-es "mmdebstrap" "create-debian0.tar")
(find-es "mmdebstrap" "systemd-container")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
machinectl list
sudo machinectl start {debian}
machinectl list
sudo machinectl stop {debian}
sudo machinectl stop {debian}
machinectl list
** Save /var/lib/machines/{debian}/ into {debian}{n}.tar.
** This is very quick.
sudo ls -lAFh /var/lib/machines/
sudo du -ch /var/lib/machines/
sudo machinectl export-tar {debian} /var/lib/machines/{debian}{n}.tar
sudo ls -lAFh /var/lib/machines/
** Restore /var/lib/machines/{debian}/ from {debian}{n}.tar.
** This is very quick.
sudo rm -Rf /var/lib/machines/{debian}/
sudo ls -lAFh /var/lib/machines/
sudo machinectl import-tar /var/lib/machines/{debian}{n}.tar {debian}
sudo ls -lAFh /var/lib/machines/
sudo du -ch /var/lib/machines/{debian}/
")
)
pos-spec-list))
;; «find-lakefile-links» (to ".find-lakefile-links")
;; Skel: (find-find-links-links-new "lakefile" "" "")
;; Test: (find-lakefile-links)
;;
(defun find-lakefile-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for lakefile."
(interactive)
(apply
'find-elinks-elisp
`((find-lakefile-links ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lakefile-links)
""
(find-es "lsp" "persist")
(find-fline "~/.emacs.d/" ".lsp-session-v1")
(find-fline "~/.emacs.d/.lsp-session-v1")
""
,(ee-template0 "\
;; (ee-copy-rest-3 nil \";;--end\" \"/tmp/lakefile.lean\")
-- (lsp-describe-session)
import Lake
open Lake DSL
package None
;;--end
")
)
pos-spec-list))
;; «find-leanwgetr-links» (to ".find-leanwgetr-links")
;; Skel: (find-find-links-links-new "leanwgetr" "url" "url0")
;; Test: (find-leanwgetr-links "lean-lang.org/functional_programming_in_lean/")
;; See: (find-es "lean" "5-manuals-tgz")
;;
(defun find-leanwgetr-links (&optional url &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for leanwgetr."
(interactive)
(setq url (or url "{url}"))
(let* ((url0 (replace-regexp-in-string "^https://" "" url)))
(apply
'find-elinks
`((find-leanwgetr-links ,url ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-leanwgetr-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
#rm -Rfv /tmp/snarf/https/
mkdir -p /tmp/snarf/https/
rm -Rv /tmp/wget-recursive.tar
rm -Rv /tmp/wget-recursive/
mkdir /tmp/wget-recursive/
cd /tmp/wget-recursive/
wget --recursive --no-parent --no-verbose \\
https://{url0}
find | sort
du -ch
# (find-fline \"/tmp/wget-recursive/\")
# (find-sh-at-dir \"/tmp/wget-recursive/\" \"find * | sort\")
cd /tmp/wget-recursive/
tar -cvf /tmp/wget-recursive.tar .
tar -C $TMPS/https/ -xvf /tmp/wget-recursive.tar
cp -v $S/https/{url0}print.pdf \\
$TMPS/https/{url0}
cp -v $S/https/{url0}print.txt \\
$TMPS/https/{url0}
du -ch $TMPS/https/{url0}
")
)
pos-spec-list)))
;; «find-subtitles3-links» (to ".find-subtitles3-links")
;; Skel: (find-find-links-links-new "subtitles3" "c stem hash" "")
;; Test: (find-subtitles3-links "2024lean4of0" "2024-lean4-oficina-0" "vBkxGIrv2Q0")
;;
(defun find-subtitles3-links (&optional c stem hash &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for subtitles3."
(interactive (list nil nil (ee-youtubedl-hash-around-point)))
(setq c (or c "{c}"))
(setq stem (or stem "{stem}"))
(setq hash (or hash "{hash}"))
(apply
'find-elinks
`((find-subtitles3-links ,c ,stem ,hash ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-subtitles3-links)
(find-angg "LUA/Subtitles3.lua")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
URL=https://youtu.be/{hash}
URL=\"http://www.youtube.com/watch?v={hash}\"
# (find-sh \"youtube-dl -f worst --list-subs https://youtu.be/{hash}\")
# (find-fline \"/tmp/subs/\")
rm -Rv /tmp/subs/
mkdir /tmp/subs/
cd /tmp/subs/
youtube-dl --write-auto-sub --skip-download --sub-format=json3 --sub-lang=pt $URL
cp -v *.pt.json3 subs.json3
# (find-fline \"/tmp/subs/\" \"subs.json3\")
# (find-fline \"/tmp/subs/subs.json3\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
~/LUA/Subtitles3.lua -c {c} -json3 /tmp/subs/subs.json3 -print
# (find-angg \"LUA/Subtitles3.lua\")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
Path.addLUAtopath()
require \"Subtitles3\" -- (find-angg \"LUA/Subtitles3.lua\")
bigstr = ee_readfile \"/tmp/subs/subs.json3\"
o = json.decode.decode(bigstr)
jss = JsonSubs {}
= jss:finds(o.events, \"{c}\")
")
)
pos-spec-list))
;; «kla-tex» (to ".kla-tex")
;; (find-eev "eev-kla.el" "kill-sexps")
;; (find-eev "eev-kla.el" "generate-sexps")
;; (find-estring (kla-tex-str))
;; Example: (c3m241p2p 2 "links")
;; (c3m241p2a "links")
(defun kla-tex () (interactive) (kill-new (kla-tex-str)))
(defun kla-tex0 () (interactive) (kill-new (kla-tex0-str)))
(defun kla-tex0-str ()
(let* ((find-c (ee-kl-find-c))
(fname0 (ee-kl-fname))
(fname (replace-regexp-in-string "^/home/edrx/" "" fname0))
(sfname (ee-kl-shorterfname)))
(ee-template0 "\
% ({find-c} \"{sfname}\")
{<}\\footnotesize
\\par \\url{http://anggtwu.net/{fname}.html}
\\par \\texttt{<}({find-c} \"{sfname}\")}
\\par
{>}
")))
(defun kla-tex-str ()
(let* ((find-c (ee-kl-find-c))
(fname0 (ee-kl-fname))
(fname (replace-regexp-in-string "^/home/edrx/" "" fname0))
(sfname (ee-kl-shorterfname))
(anchor (ee-kl-anchor)))
(ee-template0 "\
% ({find-c} \"{sfname}\" \"{anchor}\")
{<}\\footnotesize
\\par \\url{http://anggtwu.net/{fname}.html\\#{anchor}}
\\par \\texttt{<}({find-c} \"{sfname}\" \"{anchor}\")}
\\par
{>}
")))
;; «find-instagram-links» (to ".find-instagram-links")
;; Skel: (find-find-links-links-new "instagram" "name hash newtitle" "")
;; Test: (find-instagram-links)
;;
(defun find-instagram-links (&optional name hash newtitle &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for instagram."
(interactive (list nil (ee-stuff-around-point "0-9A-Za-z")))
(setq name (or name "{name}"))
(setq hash (or hash "{hash}"))
(setq newtitle (or newtitle "{newtitle}"))
(apply
'find-elinks
`((find-instagram-links ,name ,hash ,newtitle ,@pos-spec-list)
(find-instagram-links "wesmarx" "C4ItDcFuD-n" "Wicked Game")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-instagram-links)
""
,(ee-template0 "\
https://www.instagram.com/{name}/
https://www.instagram.com/p/{hash}/
https://www.instagram.com/reel/{hash}/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mkdir -p /tmp/ig/
cd /tmp/ig/
yt-dlp https://www.instagram.com/p/{hash}/
yt-dlp https://www.instagram.com/reel/{hash}/
yt-dlp https://www.instagram.com/share/reel/{hash}
# (kill-new \"{newtitle}\")
# (find-fline \"~/POLE/\")
# (find-fline \"/tmp/ig/\")
# (find-fline \"/tmp/ig/\" \"{hash}\")
")
)
pos-spec-list))
;; «find-htmlpdf-links» (to ".find-htmlpdf-links")
;; Skel: (find-find-links-links-new "htmlpdf" "c url" "localurl localdir")
;; Test: (find-htmlpdf-links "gm15" "https://gigamonkeys.com/book/practical-a-portable-pathname-library.html")
;; (find-htmlpdf-links "agdarew" "https://agda.readthedocs.io/en/latest/language/rewriting.html")
;;
(defun find-htmlpdf-links (&optional c url &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for htmlpdf."
(interactive)
(setq c (or c "{c}"))
(setq url (or url "{url}"))
(let* ((localurl (ee-url-to-fname0 url))
(localdir (file-name-directory localurl)))
(apply
'find-elinks
`((find-htmlpdf-links ,c ,url ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-htmlpdf-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mkdir -p {localdir}
cd {localdir}
# Way 1: use princexml:
cat > /tmp/print.css <<'%%%'
body {<} font-size: 12pt {>}
@page {<} @bottom-center {<} content: counter(page); {>} {>}
%%%
prince -s /tmp/print.css \\
-o {localurl}.pdf \\
{url}
# Way 2: open this url in the browser and \"C-p\"rint to /tmp/print.pdf:
# {url}
# then:
cp -v /tmp/print.pdf {localurl}.pdf
# (find-fline \"{localdir}\")
# (find-pdf-page \"{localurl}.pdf\")
# (find-pdf-text8 \"{localurl}.pdf\")
;; <{c}>
;; {url}
;; (find-fline \"{localdir}\")
\(code-pdf-page \"{c}\" \"{localurl}.pdf\")
\(code-pdf-text8 \"{c}\" \"{localurl}.pdf\")
;; (find-{c}page)
;; (find-{c}text)
")
)
pos-spec-list)))
;; «find-sbcl-links» (to ".find-sbcl-links")
;; «find-dednat7debug-links» (to ".find-dednat7debug-links")
;; Skel: (find-find-links-links-new "dednat7debug" "fname" "ee-hyperlink-prefix dir fname0")
;; Test: (find-dednat7debug-links)
;;
(defun find-dednat7debug-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for dednat7debug."
(interactive (list buffer-file-name))
(if fname (setq fname (ee-shorten-file-name fname)))
(setq fname (or fname "{fname}"))
(let* ((ee-buffer-name (or ee-buffer-name "*dednat7 debug*"))
(dir (file-name-directory fname))
(fname0 (file-name-nondirectory fname))
(ee-hyperlink-prefix "-- ")
)
(apply
'find-elinks
`((find-dednat7debug-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-dednat7debug-links "~/LATEX/2024-1-C2-carro.tex")
(find-fline ,fname)
(find-es "lua5" "debugger.lua-tutorial")
(find-efunction 'find-dednat7debug-links)
""
,(ee-template0 "\
* (find-Deps1-cps \"dednat7load\")
*
* (lua-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v ~/LUA/Dednat7oldheads.lua ~/LATEX/
cd {dir} && lualatex {fname0}
pu(#tf)
pu(#tf)
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
userocks()
chdir \"{dir}\"
require \"dednat7load\" -- (find-angg \"LUA/dednat7load.lua\")
run_repl3_now() -- (find-angg \"LUA/lua50init.lua\" \"Repl3.lua\")
dednat6dir = ee_expand(\"~/LATEX/dednat6/\")
require \"Dednat7oldheads\" -- (find-LATEX \"Dednat7oldheads.lua\")
dednat7oldheads()
tf = TeXFile.read(\"{fname0}\")
texlines = tf
pu(#tf)
= thisblock
= tf.blocks
loaded = VTable(keys(package.loaded))
= Set.from(loaded)
= Set.from(loaded):ksc()
= require(\"abbrevs\")
= tf:lastblock()
= tf:lastblock(-1)
= tf:lastblock() :untabifys(3, nil, \"\\n\")
= tf:lastblock(-1):untabifys(3, nil, \"\\n\")
= tf.blocks[#tf.blocks-1]:untabifys(3, \"\", \"\\n\")
= tf.blocks[#tf.blocks ]:untabifys(3, \"\", \"\\n\")
")
)
pos-spec-list)))
;; «eewrap-maximamsg» (to ".eewrap-maximamsg")
;; Skel: (find-eewrap-links "M" "maximamsg" "url")
;; Test: (find-eewraptest-links "maximamsg" "http://_23456_")
;;
(defun eewrap-maximamsg () (interactive)
(ee-this-line-wrapn 1 'ee-wrap-maximamsg))
(defun ee-wrap-maximamsg (url)
"An internal function used by `eewrap-maximamsg'."
(let* ((msgnumber (replace-regexp-in-string "[^0-9]" "" url))
(yyyymm (format-time-string "%Y%m"))
(day (format-time-string "%d")))
(ee-template0 "\
{url}
# (find-maximamsg \"{msgnumber} {yyyymm} {day}\" \"\")")))
(defalias 'tomm 'eewrap-maximamsg)
;;; _ _ _
;;; | |_ _ __ _ _(_) |_
;;; | __| '__| | | | | __|
;;; | |_| | | |_| | | |_
;;; \__|_| \__, |_|\__|
;;; |___/
;;
;; «find-tryit-links» (to ".find-tryit-links")
;; Skel: (find-find-links-links-new "tryit" "config sexp" "body")
;; Tests: (find-tryit-links)
;; (find-tryit-links nil ' (find-2a '(find-eev-quick-intro "\n2.") '(find-elisp-intro "1.")) )
;; (find-tryit-links nil '(find-eev-quick-intro "2."))
;; (find-tryit-links nil '(find-eev-quick-intro "6.1."))
;; (find-tryit-links nil '(find-multiwindow-intro "2."))
;;
;;
;; «find-ytvideoinfo-links» (to ".find-ytvideoinfo-links")
;; Skel: (find-find-links-links-new "ytvideoinfo" "hash" "")
;; Test: (find-ytvideoinfo-links)
;; (find-ytvideoinfo-links "_2qXIDO-cWw")
;;
(defun find-ytvideoinfo-links (&optional hash &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ytvideoinfo."
(interactive (list (ee-youtubedl-hash-around-point)))
(setq hash (or hash "{hash}"))
(apply
'find-elinks
`((find-ytvideoinfo-links ,hash ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-ytvideoinfo-links "_2qXIDO-cWw")
(find-efunction 'find-ytvideoinfo-links)
""
,(ee-template0 "\
# (find-es \"youtube\" \"info\")
# https://youtu.be/{hash}
# https://www.youtube.com/watch?v={hash}
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"/tmp/yt/\")
rm -Rv /tmp/yt/
mkdir /tmp/yt/
cd /tmp/yt/
yt-dlp --skip-download --write-info-json https://youtu.be/{hash}
mv -iv *.info.json video.info.json
python3 -m json.tool video.info.json > video.info-2.json
# (find-fline \"/tmp/yt/video.info-2.json\")
# (find-fline \"/tmp/yt/video.info-2.json\" \"\\\"title\\\":\")
# (find-fline \"/tmp/yt/video.info-2.json\" \"\\\"upload_date\\\":\")
")
)
pos-spec-list))
;; «find-guile-links» (to ".find-guile-links")
;; Skel: (find-find-links-links-new "guile" "name" "")
;; Test: (find-guile-links)
;; (find-guile-links "call-with-prompt")
;; (find-guile-links "load-extension")
;; (find-guile-links "fold-matches")
;;
(defun find-guile-links (&optional name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for guile."
(interactive)
(setq name (or name "{name}"))
(apply
'find-elinks-elisp
`((find-guile-links ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-guile-links)
""
,(ee-template0 "\
;; (find-guilenode \"Procedure Index\" \"{name}\")
;; (find-guilenode \"Help Commands\")
;; (find-elocus-links \"M-.\" 'geiser-mode-map \"geiser-edit-symbol-at-point\")
;; (find-ice9grep \"grep --color=auto -nRH --null -e {name} *\")
;; (find-eaproposf \"geiser-edit\")
* (eepitch-geiserguile)
* (eepitch-kill)
* (eepitch-geiserguile)
,h
,h inspect
,d {name}
,apropos {name}
;; (geiser-edit-symbol '{name})
;; (procedure-documentation '{name})
* (eepitch-guile)
* (eepitch-kill)
* (eepitch-guile)
")
)
pos-spec-list))
;; «find-racket-links» (to ".find-racket-links")
;; Skel: (find-find-links-links-new "racket" "name" "")
;; Test: (find-racket-links)
;; (find-racket-links "apropos")
;; (find-racket-links "repl")
;; (find-racket-links "circle")
;;
(defun find-racket-links (&optional name &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for racket."
(interactive)
(setq name (or name "{name}"))
(apply
'find-elinks
`((find-racket-links ,name ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-racket-links)
""
(find-es "racket")
(find-es "racket" ,name)
""
,(ee-template0 "\
;; (find-racketgrep \"grep --color=auto -nRH --null -e {name} *\")
;; (find-racketsh \"find * | sort\")
;; (find-racketsh \"find * | sort | grep {name}\")
;; (find-sh0 \"raco doc {name}\")
* (eepitch-racket)
* (eepitch-kill)
* (eepitch-racket)
,h
,ap load
,doc
(require xrepl)
,describe {name}
* (eepitch-geiserracket)
* (eepitch-kill)
* (eepitch-geiserracket)
,h
help
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
raco pkg help
raco pkg show
raco pkg show {name}
raco pkg install {name}
raco pkg catalog-show {name}
raco pkg delete {name}
")
)
pos-spec-list))
;; «find-lua2c-links» (to ".find-lua2c-links")
;; Skel: (find-find-links-links-new "lua2c" "body" "")
;; Test: (find-lua2c-links)
;;
(defun find-lua2c-links (&optional body &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for lua2c."
(interactive)
(setq body (or body "{body}"))
(apply
'find-elinks
`((find-lua2c-links ,body ,@pos-spec-list)
(find-lua2c-links "return 'a'..42")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-lua2c-links)
""
(find-es "lua5" "lua2c")
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/usrc/lua2c52/
cat > 0.lua <<'%%%'
{body}
%%%
lua5.1 lua2c.lua 0.lua > 0.c
# (find-lua2c52file \"0.c\")
")
)
pos-spec-list))
;;; _ _ _ _ _
;;; __ _(_) |_| |__ _ _| |__ (_) ___
;;; / _` | | __| '_ \| | | | '_ \ | |/ _ \
;;; | (_| | | |_| | | | |_| | |_) | _ | | (_) |
;;; \__, |_|\__|_| |_|\__,_|_.__/ (_) |_|\___/
;;; |___/
;;
;; «find-githubio-links» (to ".find-githubio-links")
;; Skel: (find-find-links-links-new "githubio" "username" "")
;; Test: (find-githubio-links)
;; (find-githubio-links "edrx")
;; See: (find-es "git" "github.io")
;;
(defun find-githubio-links (&optional username &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for githubio."
(interactive)
(setq username (or username "{username}"))
(apply
'find-elinks
`((find-githubio-links ,username ,@pos-spec-list)
(find-githubio-links "edrx")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-githubio-links)
""
,(ee-template0 "\
# Adapted from:
# https://pages.github.com/
#
# To delete a previous test on {username}.github.io, do this:
# https://github.com/{username}/{username}.github.io
# -> Settings -> Danger zone -> Delete this repository
# See: (find-es \"git\" \"delete-repository\")
#
# To create the repository {username}.github.io, go to:
# https://github.com/{username}?tab=repositories
# -> + -> New repository
# -> Repository name: (kill-new \"{username}.github.io\")
# Description: (kill-new \"Test @ github.io\")
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"/tmp/{username}.github.io/\")
rm -Rfv /tmp/{username}.github.io/
mkdir /tmp/{username}.github.io/
cd /tmp/{username}.github.io/
git clone https://github.com/{username}/{username}.github.io .
echo \"Hello World\" > index.html
# git init
git add index.html
git commit -m \"Initial commit\"
git branch -M main
# git remote add origin https://github.com/{username}/{username}.github.io.git
git ls-files
git push -u origin main
ls -laF
# https://{username}.github.io/
# (magit-status \"/tmp/{username}.github.io/\")
")
)
pos-spec-list))
;;; __ __ _ _
;;; | \/ | __ _ ___| |_ ___ __| | ___ _ __
;;; | |\/| |/ _` / __| __/ _ \ / _` |/ _ \| '_ \
;;; | | | | (_| \__ \ || (_) | (_| | (_) | | | |
;;; |_| |_|\__,_|___/\__\___/ \__,_|\___/|_| |_|
;;;
;; «find-mastodon-links» (to ".find-mastodon-links")
;; Skel: (find-find-links-links-new "mastodon" "buf" "itemid user")
;; Tests: (find-mastodon-links)
;; (find-mastodonthread "114419823668225061")
;; (find-mastodonuser "eduardoochs")
;; See: (find-es "mastodon")
;;
(defun find-mastodon-links (&optional buf &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for mastodon."
(interactive (list (buffer-name)))
(setq buf (or buf (current-buffer)))
(let* ((itemid (or (ee-mastodon-get 'thread-item-id buf) "{itemid}"))
(user (or (car (ee-mastodon-get 'account buf)) "{user}")))
(apply
'find-elinks-elisp
`((find-mastodon-links ,buf ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mastodon-links)
""
,(ee-template0 "\
(setq mastbuf {(ee-S buf)})
(find-ebuffer {(ee-S buf)})
(find-eplist (with-current-buffer mastbuf mastodon-tl--buffer-spec))
(find-mastodonthread {(ee-S itemid)})
(find-mastodonuser {(ee-S user)})
")
)
pos-spec-list)))
(defun ee-mastodon-get (key &optional buf)
(with-current-buffer (or buf (current-buffer))
(and (boundp 'mastodon-tl--buffer-spec)
mastodon-tl--buffer-spec
(plist-get mastodon-tl--buffer-spec key))))
;; Test: (find-mastodonthread "114419823668225061")
(defun find-mastodonthread (itemid &rest rest)
(let ((bufname (format "*mastodon-toot-%s*" itemid)))
(if (get-buffer bufname)
(find-ebuffer bufname)
(mastodon-tl--thread-do itemid))
nil))
;; Test: (find-mastodonuser "eduardoochs")
(defun find-mastodonuser (user &rest rest)
(let ((bufname (format "*mastodon-%s-statuses*" user)))
(if (get-buffer bufname)
(find-ebuffer bufname)
(mastodon-profile-show-user user))
nil))
;;; _
;;; __ _ ___ ___ __ _| | ___
;;; / _` |/ _ \ / _ \ / _` | |/ _ \
;;; | (_| | (_) | (_) | (_| | | __/
;;; \__, |\___/ \___/ \__, |_|\___|
;;; |___/ |___/
;;
;; «find-google-links» (to ".find-google-links")
;; Skel: (find-find-links-links-new "google" "str" "qstr")
;; Test: (find-google-links "repl-based development in python")
;; (find-google-links "repl-based development in common lisp")
;;
(defun find-google-links (&optional str &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for google."
(interactive)
(setq str (or str "{str}"))
(let* ((qstr (replace-regexp-in-string " " "+" str)))
(apply
'find-elinks
`((find-google-links ,str ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-google-links)
""
,(ee-template0 "\
http://www.google.com/search?q={qstr}
http://www.google.com.br/search?tbm=isch&q={qstr}
http://www.google.com.br/search?tbm=isch&hl=en&safe=off&q={qstr}
http://maps.google.com/maps?f=q&q={qstr}
https://duckduckgo.com/?t=h_&q={qstr}&ia=web
")
)
pos-spec-list)))
;; «find-princetelegram-links» (to ".find-princetelegram-links")
;; Skel: (find-find-links-links-new "princetelegram" "dir stem" "")
;; Test: (find-princetelegram-links)
;; (find-princetelegram-links "/tmp/ChatExport_2025-08-11/" "gabriel")
;; (find-princetelegram-links "/tmp/ChatExport_2025-08-11/" "oficina")
;;
(defun find-princetelegram-links (&optional dir stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for princetelegram."
(interactive)
(setq dir (or dir "{dir}"))
(setq stem (or stem "{stem}"))
(apply
'find-elinks
`((find-princetelegram-links ,dir ,stem ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-princetelegram-links)
""
,(ee-template0 "\
* (sh-mode)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline \"{dir}\")
cat > /tmp/print.css <<'%%%'
body {<} font-size: 12pt {>}
@page {<} size: A4 {>}
@page {<} @bottom-center {<} content: counter(page); {>} {>}
%%%
cd {dir}
cp -v messages.html messages1.html
laf messages?*.html
htmlfname () {<} echo messages${<}1{>}.html; {>}
pdffname () {<} echo {stem}${<}1{>}.pdf; {>}
txtname () {<} echo {stem}${<}1{>}.txt; {>}
f2 () {<} echo prince -s /tmp/print.css -o $1 $2;
prince -s /tmp/print.css -o $1 $2;
echo pdftotext -layout $1 $(basename $1 .pdf).txt
pdftotext -layout $1 $(basename $1 .pdf).txt
{>}
f1 () {<} f2 $(pdffname $1) $(htmlfname $1); {>}
f2 m.pdf messages1.html
f1 1
# (find-fline \"{dir}\")
for i in $(seq 1 5); do f1 $i; done
# (find-fline \"{dir}\")
")
)
pos-spec-list))
;; «find-cp-PAD-links» (to ".find-cp-PAD-links")
;; Skel: (find-find-links-links-new "cp-PAD" "fname0" "")
;; Test: (find-cp-PAD-links)
;;
(defun find-cp-PAD-links (&optional fname0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cp-PAD."
(interactive)
(setq fname0 (or fname0 "{fname0}"))
(apply
'find-elinks
`((find-cp-PAD-links ,fname0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cp-PAD-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v /tmp/{fname0} ~/LATEX/2022-comissao/
cp -v ~/LATEX/2022-comissao/{fname0} ~/PAD/
scp -v ~/LATEX/2022-comissao/{fname0} $LINP/PAD/
scp -v ~/LATEX/2022-comissao/{fname0} $LINS/PAD/
# http://anggtwu.net/PAD/{fname0}
# (find-ajuda-email-links \"{fname0}\")
")
)
pos-spec-list))
;; «find-htmlize-email-links» (to ".find-htmlize-email-links")
;; Skel: (find-find-links-links-new "htmlize-email" "tag" "tag_")
;; Test: (find-htmlize-email-links "2025-luckesi")
;;
(defun find-htmlize-email-links (&optional tag &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for htmlize-email."
(interactive)
(setq tag (or tag "{tag}"))
(let* ((tag_ (replace-regexp-in-string "-" "_" tag)))
(apply
'find-elinks
`((find-htmlize-email-links ,tag ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-htmlize-email-links)
""
(find-angg "LUA/OiReginaldo1.lua" ,(format "bigstr_%s" tag_))
""
,(ee-template0 "\
-- <bigstr_{tag_}>
-- (ajua \"{tag}\")
-- (find-TH \"{tag}\")
-- (find-htmlize-email-links \"{tag}\")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile \"OiReginaldo1.lua\"
= Blocks.from(bigstr_{tag_})
--]]
bigstr_{tag_} = [==[
<p> From: Eduardo
<b> Date: 30/ago/2022 at 15:26
]==]
")
)
pos-spec-list)))
;; «find-kitten-links» (to ".find-kitten-links")
;; Skel: (find-find-links-links-new "kitten" "dir" "")
;; Test: (find-kitten-links "~/KITTEN/")
;; See: (find-angg ".emacs" "kitten")
;;
(defun find-kitten-links (&optional dir &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for kitten."
(interactive)
(setq dir (or dir "{dir}"))
(apply
'find-elinks
`((find-kitten-links ,dir ,@pos-spec-list)
(find-kitten-links "~/KITTEN/")
(find-kitten-links "~/usrc/screwlisps-kitten/")
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-kitten-links)
""
(find-es "kitten" "install")
(find-fline "~/.local/bin/")
(find-fline "~/.local/bin/" "kitten")
(code-c-d "kittenlocal" "~/.local/share/small-tech.org/kitten/")
(find-kittenlocalfile "")
""
,(ee-template0 "\
* (eepitch-vterm)
* (eepitch-kill)
* (eepitch-vterm)
cd ~/usrc/kitten/
kitten {dir}
s
.help
.id
.ls
# https://127.0.0.1/
# https://127.0.0.1:443/
")
)
pos-spec-list))
;; «find-ammmonthly-links» (to ".find-ammmonthly-links")
;; Skel: (find-find-links-links-new "ammmonthly" "vol n year doi words0" "")
;; Test: (find-ammmonthly-links)
;; (find-ammmonthly-links 105 6 1998 "10.1080/00029890.1998.12004918" "harel two dual")
;;
(defun find-ammmonthly-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for American Mathematical Monthly."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-ammmonthly-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ammmonthly-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e ammmonthly __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-ammmonthly-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://www.tandfonline.com/loi/uamm20 American Mathematical Monthly
;; https://www.tandfonline.com/toc/uamm20/{vol}/{n} ({year})
;; https://www.tandfonline.com/doi/abs/{doi}
;; https://www.tandfonline.com/doi/epdf/{doi}
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-deime-links» (to ".find-deime-links")
;; Skel: (find-find-links-links-new "deime" "vol n year doi words0" "")
;; Test: (find-deime-links)
;;
(defun find-deime-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for a DEIME article."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-deime-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-deime-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e deime __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-deime-links __analysis/__analysis.el\")
;; (find-flm-links)
https://link.springer.com/journal/40751 Digital Experiences in Mathematical Education
https://link.springer.com/journal/40751/volumes-and-issues/{vol}-{n} ({year})
https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-esm-links» (to ".find-esm-links")
;; Skel: (find-find-links-links-new "esm" "vol n year doi words0" "")
;; Test: (find-esm-links)
;; (find-esm-links 38 1 1999 "10.1023/A:1003660018579" "dreyfus why johnny")
;;
(defun find-esm-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for ESM."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-esm-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-esm-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e esm __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-esm-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/10649 Educational Studies in Mathematics
;; https://link.springer.com/journal/10649/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-flm-links» (to ".find-flm-links")
;; Skel: (find-find-links-links-new "flm" "vol n year hash words0" "words word1")
;; Tests: (find-flm-links)
;; (find-flm-links "1" "2" "1981" "74B5B56BA57371E9656D7744A56217" "tall anatomy")
;;
(defun find-flm-links (&optional vol n year hash words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for For the Learning of Mathematics."
(interactive (list nil nil nil (ee-stuff-around-point "#--0-z")))
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq hash (or hash "{hash}"))
(setq words0 (or words0 "{words0}"))
(let* ((words (replace-regexp-in-string " " "+" words0))
(word1 (replace-regexp-in-string " .*" "" words0)))
(apply
'find-elinks-elisp
`((find-flm-links ,vol ,n ,year ,hash ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-flm-links)
""
,(ee-template0 "\
;; (kill-new \"{hash}\")
;; (find-flm-links \"{vol}\" \"1\" \"{year}\")
;; (find-flm-links \"{vol}\" \"2\" \"{year}\")
;; (find-flm-links \"{vol}\" \"3\" \"{year}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e flm __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-flm-links __analysis/__analysis.el\")
;;
;; (find-flm-links \"{vol}\" \"{n}\" \"{year}\" \"{hash}\" \"{words}\")
;; https://flm-journal.org/Articles/{hash}.pdf
;; https://flm-journal.org/index.php?do=show&lang=en&vol={vol}&num={n} Vol {vol}({n}), {year}
;; https://flm-journal.org/index.php?do=show&lang=en&showMenu={vol}%2C{n} Vol {vol}({n}), {year}
;; https://flm-journal.org/index.php?do=search&lang=en&operator=or&search={words}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
wget -O /tmp/{word1}.pdf https://flm-journal.org/Articles/{hash}.pdf
# (find-pdf-text \"/tmp/{word1}.pdf\")
# (find-fline \"/tmp/\" \"{word1}.pdf\")
")
)
pos-spec-list)))
;; «find-ijrume-links» (to ".find-ijrume-links")
;; Skel: (find-find-links-links-new "ijrume" "vol n year doi words0" "")
;; Test: (find-ijrume-links)
;; (find-ijrume-links 5 2 2019 "10.1007/s40753-019-00090-9" "melhuish")
;;
(defun find-ijrume-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for IJRUME."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-ijrume-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ijrume-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e ijrume __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-ijrume-links __analysis/__analysis.el\")
;; (find-flm-links)
https://link.springer.com/journal/40753 International Journal of Research in Undergraduate Mathematics Education
https://link.springer.com/journal/40753/volumes-and-issues/{vol}-{n} ({year})
https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-ijsme-links» (to ".find-ijsme-links")
;; Skel: (find-find-links-links-new "ijsme" "vol n year doi words0" "")
;; Test: (find-ijsme-links)
;; (find-ijsme-links 15 5 2017 "10.1007/s10763-016-9724-z" "de bock external representations")
;;
(defun find-ijsme-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for IJSME."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-ijsme-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ijsme-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e ijsme __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-ijsme-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/10763 International Journal of Science and Mathematics Education
;; https://link.springer.com/journal/10763/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-iwc-links» (to ".find-iwc-links")
;; Skel: (find-find-links-links-new "iwc" "vol n year doi words0" "")
;; Test: (find-iwc-links)
;; (find-iwc-links 15 6 2003 "10.1016/j.intcom.2003.09.004" "trouche artifact instrument")
;;
(defun find-iwc-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Interacting with Computers."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-iwc-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-iwc-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e iwc __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-iwc-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://academic.oup.com/iwc Interacting with Computers
;; https://academic.oup.com/iwc/issue/{vol}/{n} ({year})
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-jfdl-links» (to ".find-jfdl-links")
;; Skel: (find-find-links-links-new "jfdl" "vol n year doi words0" "")
;; Test: (find-jfdl-links)
;; (find-jfdl-links 1 2 2017 "10.1007/s41686-017-0010-4" "mobile but better")
;;
(defun find-jfdl-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Journal of Formative Design in Learning."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-jfdl-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-jfdl-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e jfdl __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-jfdl-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/41686 Journal of Formative Design in Learning
;; https://link.springer.com/journal/41686/volumes-and-issues/{vol}-{n} ({year})
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-jrme-links» (to ".find-jrme-links")
;; Skel: (find-find-links-links-new "jrme" "vol n year doi words0" "")
;; Test: (find-jrme-links)
;; (find-jrme-links 43 4 2012 "10.5951/jresematheduc.43.4.0358" "inglis alcock")
;;
(defun find-jrme-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for jrme."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-jrme-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-jrme-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e jrme __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-jrme-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://www.jstor.org/journal/jresematheduc Journal for Research in Mathematics Education
;; https://www.jstor.org/stable/10.5951/jresematheduc.{vol}.{n}.issue-{n} ({year})
;; https://www.jstor.org/stable/{doi}
")
)
pos-spec-list))
;; «find-loguniv-links» (to ".find-loguniv-links")
;; Skel: (find-find-links-links-new "loguniv" "vol n year doi words0" "")
;; Test: (find-loguniv-links)
;; (find-loguniv-links 7 3 2013 "10.1007/s11787-013-0083-z" "ochs idarct")
;;
(defun find-loguniv-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Logica Universalis."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-loguniv-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-loguniv-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e loguniv __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-loguniv-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://www.springer.com/journal/11787 Logica Universalis
;; https://link.springer.com/journal/11787/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-mteacher-links» (to ".find-mteacher-links")
;; Skel: (find-find-links-links-new "mteacher" "vol n year doi words0" "")
;; Test: (find-mteacher-links)
;; (find-mteacher-links 61 6 1968 "10.5951/MT.61.6.0575" "fickle pickles")
;;
(defun find-mteacher-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Mathematics Teacher."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-mteacher-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mteacher-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e mteacher __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-mteacher-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://pubs.nctm.org/view/journals/mt/mt-overview.xml Mathematics Teacher
;; https://pubs.nctm.org/view/journals/mt/{vol}/{n}/mt.{vol}.issue-{n}.xml
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-mtl-links» (to ".find-mtl-links")
;; Skel: (find-find-links-links-new "mtl" "vol n year doi words0" "")
;; Test: (find-mtl-links)
;; (find-mtl-links 1 3 1999 "10.1207/s15327833mtl0103_3" "doerr tripp understanding")
;;
(defun find-mtl-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Mathematical Thinking and Learning."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-mtl-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mtl-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e mtl __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-mtl-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://www.tandfonline.com/journals/hmtl20 Mathematical Thinking and Learning
;; https://www.tandfonline.com/toc/hmtl20/{vol}/{n} ({year})
;; https://www.tandfonline.com/doi/abs/{doi}
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-sciedu-links» (to ".find-sciedu-links")
;; Skel: (find-find-links-links-new "sciedu" "vol n year doi words0" "")
;; Test: (find-sciedu-links)
;; (find-sciedu-links 2 2 1993 "10.1007/BF00592206" "kleiner")
;;
(defun find-sciedu-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for sciedu."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-sciedu-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-sciedu-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e sciedu __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-sciedu-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/11191
;; https://link.springer.com/journal/11191/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-ttrends-links» (to ".find-ttrends-links")
;; Skel: (find-find-links-links-new "ttrends" "vol n year doi words0" "")
;; Test: (find-ttrends-links)
;; (find-ttrends-links 67 6 2023 "10.1007/s11528-023-00914-1" "dunnigan slow it all down chatgpt")
;;
(defun find-ttrends-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Tech Trends."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-ttrends-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-ttrends-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e ttrends __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-ttrends-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/11528 Tech Trends
;; https://link.springer.com/journal/11528/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
;; https://doi.org/{doi}
")
)
pos-spec-list))
;; «find-tugboat-links» (to ".find-tugboat-links")
;; Skel: (find-find-links-links-new "tugboat" "vol n year stem words0" "")
;; Test: (find-tugboat-links)
;; (find-tugboat-links 39 3 2018 "tb123ochs-dednat" "ochs dednat6")
;;
(defun find-tugboat-links (&optional vol n year stem words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for TUGBoat."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq stem (or stem "{stem}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-tugboat-links ,vol ,n ,year ,stem ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-tugboat-links)
""
,(ee-template0 "\
;; (kill-new \"https://stem.org/{stem}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e tugboat __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-tugboat-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://tug.org/TUGboat/ TUGboat
;; https://tug.org/TUGboat/tb{vol}-{n}/ ({year})
;; https://tug.org/TUGboat/tb{vol}-{n}/{stem}.pdf
")
)
pos-spec-list))
;; «find-zdm-links» (to ".find-zdm-links")
;; Skel: (find-find-links-links-new "zdm" "vol n year doi words0" "")
;; Test: (find-zdm-links)
;; (find-zdm-links 48 1 2016 "10.1007/s11858-016-0762-3" "schoenfeld making sense of teaching")
;;
(defun find-zdm-links (&optional vol n year doi words0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for zdm."
(interactive)
(setq vol (or vol "{vol}"))
(setq n (or n "{n}"))
(setq year (or year "{year}"))
(setq doi (or doi "{doi}"))
(setq words0 (or words0 "{words0}"))
(apply
'find-elinks-elisp
`((find-zdm-links ,vol ,n ,year ,doi ,words0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-zdm-links)
""
,(ee-template0 "\
;; (kill-new \"https://doi.org/{doi}\")
;; (find-booksgrep \"grep --color=auto -nH --null -e zdm __analysis/__analysis.el\")
;; (find-booksgrep \"grep --color=auto -nH --null -e find-zdm-links __analysis/__analysis.el\")
;; (find-flm-links)
;; https://link.springer.com/journal/11858/volumes-and-issues ZDM
;; https://link.springer.com/journal/11858/volumes-and-issues/{vol}-{n} ({year})
;; https://link.springer.com/article/{doi}
")
)
pos-spec-list))
;; «find-mearticle-links» (to ".find-mearticle-links")
;; Skel: (find-find-links-links-new "mearticle" "short long" "ee-buffer-name")
;; Test: (find-mearticle-links)
;;
(defun find-mearticle-links (&optional short long &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for saving an article on Mathematical Education."
(interactive)
(setq short (or short (ee-dired-to-fname0) "{short}"))
(setq long (or long "{long}"))
(setq long (downcase long))
(setq long (replace-regexp-in-string " " "_" long))
(let* ((ee-buffer-name "*find-mearticle-links*"))
(apply
'find-elinks-elisp
`((find-mearticle-links ,short ,long ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-mearticle-links)
""
,(ee-template0 "\
;; (find-pdf-page \"/tmp/{short}\")
;; (find-pdf-text \"/tmp/{short}\")
;; (cd \"/tmp/\")
;; (find-fline \"/tmp/\" \"{short}\")
;; (find-sh0 \"mv -iv {short} {long}.pdf\")
;; (find-fline \"/tmp/\" \"{long}.pdf\")
;; (find-book-links \"pdf\" \"__analysis\" \"{short}\" \"{<}author{>}\" \"{<}long{>}\")
;; (find-book-links \"pdf\" \"__analysis\" \"{long}.pdf\" \"{<}author{>}\" \"{<}long{>}\")
;; (find-esm-links \"{<}vol{>}\" \"{<}n{>}\" \"{<}year{>}\" \"{<}doi{>}\" \"{<}words0{>}\")
;; (find-flm-links \"{<}vol{>}\" \"{<}n{>}\" \"{<}year{>}\" \"{<}doi{>}\" \"{<}words0{>}\")
;; (find-mtl-links \"{<}vol{>}\" \"{<}n{>}\" \"{<}year{>}\" \"{<}doi{>}\" \"{<}words0{>}\")
;; (find-zdm-links \"{<}vol{>}\" \"{<}n{>}\" \"{<}year{>}\" \"{<}doi{>}\" \"{<}words0{>}\")
")
)
pos-spec-list)))
;; «find-annasarch-links» (to ".find-annasarch-links")
;; Skel: (find-find-links-links-new "annasarch" "words" "wordsq")
;; Test: (find-annasarch-links)
;; (find-annasarch-links "liping ma knowing and teaching elementary mathematics")
;;
(defun find-annasarch-links (&optional words &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for Anna's Archive."
(interactive)
(setq words (or words "{words}"))
(let* ((wordsq (replace-regexp-in-string " " "+" words)))
(apply
'find-elinks
`((find-annasarch-links ,words ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-annasarch-links)
""
,(ee-template0 "\
https://annas-archive.org/search?q={wordsq}
https://annas-archive.org/search?index=&page=1&sort=&display=&q={wordsq}
")
)
pos-spec-list)))
;; «find-cpandwget-links» (to ".find-cpandwget-links")
;; Superseded by: (to "find-klacw-links")
;; Skel: (find-find-links-links-new "cpandwget" "fname" "fname0 dir0")
;; Tests: (find-cpandwget-links)
;; (find-cpandwget-links "~/tmp/087.jpg")
;;
(defun find-cpandwget-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cpandwget."
(interactive)
(setq fname (or fname "{fname}"))
(let* ((fname0 (replace-regexp-in-string "^/home/edrx/" "" (ee-expand fname)))
(dir0 (file-name-directory fname0)))
(apply
'find-elinks
`((find-cpandwget-links ,fname ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-cpandwget-links)
""
,(ee-template0 "\
* (eepitch-eshell)
* (eepitch-kill)
* (eepitch-eshell)
mkdir -p {ee-linpdir}{dir0}
cp -v {fname} \\
{ee-linpdir}{fname0}
# http://anggtwu.net/{fname0}
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
mkdir -p ~/{dir0}
wget -nc -P ~/{dir0} \\
http://anggtwu.net/{fname0}
# (find-fline \"{fname}\")
")
)
pos-spec-list)))
;; «find-klacw-links» (to ".find-klacw-links")
;; Supersedes: (to "find-cpandwget-links")
;; Skel: (find-find-links-links-new "klacw" "elfile0 tag pdffile0" "el-nohome el-nohome-d pdf-nohome pdf-nohome-d")
;; Tests: (find-klacw-links "~/books/__analysis/__analysis.el" "papert-ms" "$S/https/dam-prod2.media.mit.edu/x/2025/01/27/Mindstorms.pdf")
;; (find-books "__analysis/__analysis.el" "papert-ms")
;; (find-books "__analysis/__analysis.el" "papert-ms" "code-pdf-page")
;; ^ then run M-x klacw
;;
;; Internal functions:
(defun ee-klacw-nohome (fname0) (replace-regexp-in-string "^/home/edrx/" "" (ee-expand fname0)))
(defun ee-klacw-nohome-d (fname0) (file-name-directory (ee-klacw-nohome fname0)))
(defun ee-klacw-nohome-nd (fname0) (file-name-nondirectory (ee-klacw-nohome fname0)))
(defun ee-klacw-pdffile () (ee-goto-eol) (nth 2 (read (ee-last-sexp))))
;; Core:
(defalias 'klacw 'find-klacw-links)
(defun find-klacw-links (&optional elfile0 tag pdffile0 &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for klacw."
(interactive (list (buffer-file-name) (ee-preceding-tag-flash) (ee-klacw-pdffile)))
(setq elfile0 (or elfile0 "{elfile0}"))
(setq tag (or tag "{tag}"))
(setq pdffile0 (or pdffile0 "{pdffile0}"))
(let* ((el-nohome (ee-klacw-nohome elfile0))
(el-nohome-d (ee-klacw-nohome-d elfile0))
(pdf-nohome (ee-klacw-nohome pdffile0))
(pdf-nohome-d (ee-klacw-nohome-d pdffile0)))
(apply
'find-elinks
`((find-klacw-links ,elfile0 ,tag ,pdffile0 ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
(find-efunction 'find-klacw-links)
""
,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
ssh edrx@linode 'mkdir -pv ~/public_html/{el-nohome-d}'
ssh edrx@linode 'mkdir -pv ~/public_html/{pdf-nohome-d}'
rsync -avz ~/{el-nohome} \\
edrx@linode:~/public_html/{el-nohome}
rsync -avz ~/{pdf-nohome} \\
edrx@linode:~/public_html/{pdf-nohome}
# (find-linpfile \"{el-nohome-d}\")
# (find-linpfile \"{pdf-nohome-d}\")
** For tests
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/fakehomedir/
mkdir /tmp/fakehomedir/
cd /tmp/fakehomedir/
export HOME=/tmp/fakehomedir/
• (eepitch-shell)
• (eepitch-kill)
• (eepitch-shell)
mkdir -pv ~/{el-nohome-d}
wget -N -P ~/{el-nohome-d} \\
http://anggtwu.net/{el-nohome}
mkdir -pv ~/{pdf-nohome-d}
wget -N -P ~/{pdf-nohome-d} \\
http://anggtwu.net/{pdf-nohome}
# (find-anchor \"~/{el-nohome}\" \"{tag}\")
# See: (find-psne-intro)
# (find-pdf-like-intro)
# (find-eev-quick-intro \"8. Anchors\")
")
)
pos-spec-list)))
;; (to "find-MM-aula-links")
;; «find-subs-links» (to ".find-subs-links")
;; Moved to: (find-angg "elisp/find-subs-links.el")
;; (find-angg "elisp/find-subs2-links.el")
;; (load "~/elisp/find-subs-links.el")
(load "~/elisp/find-subs2-links.el")
;;
;; Local Variables:
;; mode: emacs-lisp
;; coding: utf-8-unix
;; ee-comment-prefix: ";;"
;; End: