Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.











         Some template-based functions of
         eev that are not five-minute hacks
    
           Eduardo Ochs
           December 24, 2020





















  1. `find-find-links-links-new'
  ==============================
  My presentation at the EmacsConf 2020 was titled "On why most of the
  best features in eev look like 5-minute hacks", and its last section
  was about this...

    (code-video "eev2020video" "$S/http/angg.twu.net/eev-videos/emacsconf2020.mp4")

    (find-eev2020video "42:05" "4. A tale of several 'The User's")
    (find-eev2020video "43:27"   "user-friendly and hacker-friendly at the same time")
    (find-eev2020video "43:49"   "(find-emacs-tangents-links)")

                    (find-emacs-tangents-links)
    (find-efunction 'find-emacs-tangents-links)

  The "skeleton" for that function was created with:

    (find-find-links-links-new "emacs-tangents" "yyyy mm dd msg txtstem" "")

  after generating the skeleton I just inserted this in it,

    # https://sachachua.com/blog/{yyyy}/
    # https://sachachua.com/blog/{yyyy}/{mm}/
    # https://sachachua.com/blog/{yyyy}/{mm}/{yyyy}-{mm}-{dd}-emacs-news/
    # https://lists.gnu.org/archive/html/emacs-tangents/{yyyy}-{mm}/
    # https://lists.gnu.org/archive/html/emacs-tangents/{yyyy}-{mm}/{msg}.html

    * (eepitch-shell)
    * (eepitch-kill)
    * (eepitch-shell)
    # (find-fline \"~/usrc/emacs-tangents/\")
    # (find-fline \"~/usrc/emacs-tangents/{yyyy}-{mm}-{dd}-emacs-news.org\")

    mkdir -p ~/usrc/emacs-tangents/
    cd       ~/usrc/emacs-tangents/
    # rm -v     {yyyy}-{mm}-{dd}-emacs-news.org
    wget -nc -O {yyyy}-{mm}-{dd}-emacs-news.org \\
      https://lists.gnu.org/archive/html/emacs-tangents/{yyyy}-{mm}/{txtstem}.txt

  and I had a prototype.

  `find-find-links-links-new' is the successor of
  `find-find-links-links', and it took some work to make it indent
  everything correctly both with and without a `let*' block...

    (find-efunction 'find-find-links-links-new)




  2. `M-x brep'
  =============
  (find-eev-intro "8. (find-psne-intro)")
  (find-psne-intro)
  (find-psne-intro "1. Local copies of files from the internet")
  (find-psne-intro "3. The new way: `M-x brep'")




  3. The function that defines `brep'
  ===================================
  (find-efunctiondescr 'brep)
  (find-eev "eev-brxxx.el" "code-brxxxs")

       (code-brurl 'find-psne-links       :remote 'brep)
  (find-code-brurl 'find-psne-links       :remote 'brep)

  The general idea is explained here:

  (find-eev2020video "17:20" "find-code-c-d shows the code that code-c-d would execute")

  (find-eev-quick-intro "9. Shorter hyperlinks")
  (find-eev-quick-intro "9.1. `code-c-d'")
  (find-eev-quick-intro   "`code-c-d' produces a big string using a template")
  (find-eev-quick-intro   "If we add" "a" "find-" "before the `code-c-d'")
  (find-eev-quick-intro "9.2. Extra arguments to `code-c-d'")




  4. `find-esetkey-links'
  =======================
  (find-esetkey-links)

  ;; (find-esetkey-links (kbd "s-t") 'tool-bar-mode)
  (global-set-key        (kbd "s-t") 'tool-bar-mode)
  ;; (find-esetkey-links (kbd "s-m") 'menu-bar-mode)
  (global-set-key        (kbd "s-m") 'menu-bar-mode)
  ;; (find-esetkey-links (kbd "s-w") 'wrap)
  (define-key eev-mode-map (kbd "s-w") 'wrap)

  ;; (find-efunction 'wrap)
  ;; (defun wrap (p) (interactive "P") "Toggle truncate-lines"
  ;;   (if p (setq truncate-lines (eq p 0))
  ;;     (setq truncate-lines (not truncate-lines))))




  5. `find-youtubedl-links'
  ========================-
  Warning: this one does LOTS of magic!
  Idea: if we twist the notion of "user" in exactly the right way
  then "user-friendly" and "hacker-friendly" become very similar.

  Docs: (find-audiovideo-intro "6. Youtube-dl")
        (find-efunction 'find-youtubedl-links)
        (find-efunction 'find-youtubedl-links "LOTS of internal functions")

  Preparation for the demo:

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
  # (find-fline "/tmp/yt-videos/")
  rm -Rv /tmp/yt-videos/
  mkdir  /tmp/yt-videos/
  cd     /tmp/yt-videos/

  (setq ee-youtubedl-dirs '("/tmp/yt-videos/"))
  (setq ee-youtubedl-dir    "/tmp/yt-videos/")

  "The problem with reading Shakespeare and Ancient Greek Plays"
  https://www.youtube.com/watch?v=vs3-HGB6iEw
  0:31: there is a long stretch in the middle of the play where
        Jokasta, the queen, has no lines

  (find-preadingvideo)
  (find-preadingvideo "0:00")
  (find-preadingvideo "0:31")

  https://www.youtube.com/watch?v=vs3-HGB6iEw
   (find-youtubedl-links nil nil "vs3-HGB6iEw")




6. `find-here-links' and `find-extra-file-links'
================================================
See: (find-here-links-intro)
     (find-refining-intro)
     (find-audiovideo-intro "4.1. `find-extra-file-links'")