emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eev 81c4615: Rewrote (find-eev-exercises-intro).


From: ELPA Syncer
Subject: [elpa] externals/eev 81c4615: Rewrote (find-eev-exercises-intro).
Date: Wed, 1 Dec 2021 01:57:15 -0500 (EST)

branch: externals/eev
commit 81c4615a6b12dff0ede29d38f2f2df86214ac2f3
Author: Eduardo Ochs <eduardoochs@gmail.com>
Commit: Eduardo Ochs <eduardoochs@gmail.com>

    Rewrote (find-eev-exercises-intro).
---
 ChangeLog         |  21 ++++
 VERSION           |   4 +-
 eev-elinks.el     |   7 +-
 eev-intro.el      | 293 +++++++++++++++++++++++++++++++++++++++++++++---------
 eev-tlinks.el     |  62 +++++++-----
 eev-videolinks.el |  52 ++++++++--
 eev.el            |   2 +-
 7 files changed, 360 insertions(+), 81 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 125b053..63e6bee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2021-12-01  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-intro.el (find-eev-exercises-intro): rewritten.
+
+2021-11-28  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-elinks.el (ee-1stclassvideo-around-point-ask): new function.
+
+       * eev-tlinks.el (find-1stclassvideo-links): use
+       `ee-1stclassvideo-around-point-ask'.
+
+       * eev-videolinks.el (ee-1stclassvideos-mp4stem)
+       (ee-1stclassvideos-hash): new functions.
+
+2021-11-27  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-videolinks.el (ee-1stclassvideos-field): new function.
+
+       * eev-tlinks.el (find-1stclassvideo-links): use
+       `ee-1stclassvideos-field'.
+
 2021-11-26  Eduardo Ochs  <eduardoochs@gmail.com>
 
        * eev-tlinks.el (ee-youtubedl-command): added another suggestion
diff --git a/VERSION b/VERSION
index 6fb6b05..fc366eb 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sat Nov 27 07:44:42 GMT 2021
-Sat Nov 27 04:44:42 -03 2021
+Wed Dec  1 06:27:08 GMT 2021
+Wed Dec  1 03:27:08 -03 2021
diff --git a/eev-elinks.el b/eev-elinks.el
index 848d066..f1080d7 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211104
+;; Version:    20211128
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -149,6 +149,11 @@ This function is not very smart - it doesn't understand 
section names."
   (read-string (or prompt "Manpage: ")
               (ee-manpagename-around-point)))
 
+(defun ee-1stclassvideo-around-point-ask (&optional prompt)
+"Ask for the name of a first-class video; the default is a string around 
point."
+  (let ((str (read-string (or prompt "Stem (\"c\") of the video: ")
+                         (ee-stuff-around-point "A-Za-z0-9"))))
+    (replace-regexp-in-string "video$" "" str)))
 
 
 
diff --git a/eev-intro.el b/eev-intro.el
index dc60b45..2f173c4 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211125
+;; Version:    20211130
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -10737,6 +10737,12 @@ at one example in details. Try:
 
 All these sexps \"work\" - they point to meaningful places.
 
+The data about these first-class videos is kept in the variable
+`ee-1stclassvideos-info', that is defined here:
+
+  (find-eev \"eev-videolinks.el\" \"ee-1stclassvideos-info\")
+
+
 
 
 10. Second-class videos
@@ -12517,6 +12523,13 @@ because when it was created it pointed to the commit 
with message
                  \\  /
                   A
 
+Here's a video showing the script above in action:
+
+  http://angg.twu.net/eev-videos/2020-doubt-about-merging.mp4
+          (code-eevvideo \"merg\" \"2020-doubt-about-merging\")
+                    (find-mergvideo \"0:00\")
+                    (find-mergvideo \"0:20\")
+
 NEXT STEPS: explain how to use git merge both from the command
 line and from magit; explain HEAD, master, and tags. Point to man
 pages in man and text format and to sections in Scott Chacon's
@@ -13298,55 +13311,251 @@ It is meant as both a tutorial and a sandbox.
 
 
 
-
-0. Introduction
-===============
-This is a set of exercises that I am preparing for this series of
-workshops:
+This is a set of exercises that I am preparing for this workshop:
 
   http://angg.twu.net/2021-workshop.html
-  http://angg.twu.net/2021-oficina.html
 
-At this moment - 2021nov14 - they are in a very draftish stage
-and they haven't yet been tested by people who are learning eev.
+THIS IS A WORK AND PROGRESS AND CURRENTLY A MESS.
 
-I will suppose that the people trying to do these exercises know
-the material in these sections of the two most basic tutorials,
 
-  (find-eev-quick-intro)
-  (find-eev-quick-intro \"1. Installing eev\")
-  (find-eev-quick-intro \"2. Evaluating Lisp\")
-  (find-eev-quick-intro \"3. Elisp hyperlinks\")
-  (find-eev-quick-intro \"4. Creating Elisp Hyperlinks\")
-  (find-eev-quick-intro \"4.1. `find-here-links'\")
-  (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
-  (find-eev-quick-intro \"5. Links to Emacs documentation\")
-  (find-eev-quick-intro \"5.1. Navigating the Emacs manuals\")
-  (find-eev-quick-intro \"5.2. Cutting and pasting\")
-  (find-windows-beginner-intro)
-  (find-windows-beginner-intro \"1. Download and install Emacs\")
-  (find-windows-beginner-intro \"2. Key sequences and how to quit\")
-  (find-windows-beginner-intro \"3. Using M-x and installing eev\")
-  (find-windows-beginner-intro \"4. Understanding buffers and the mode line\")
 
-and that they have seen the \"installation and navigation\" video,
-especially this part of it,
+0. Prerequisites
+================
+I will suppose:
+
+  a. that the people doing the workshop will have Emacs 27 or
+     28 (pretest) installed,
+
+  b. that they have watched the \"installation and navigation\"
+     video and tried everything on it, especially this part:
+
+     (find-eevnavvideo \"6:28\" \"M-j: you can forget practically 
everything...\")
+     (find-eevnavvideo \"6:41\" \"if you type just M-j\")
+     (find-eevnavvideo \"6:48\" \"has a header that is beginner-friendly\")
+
+     The beginner-friendly header generated by `M-j' has changed
+     since I recorded that video, and now it shows these three
+     ways of opening the file where we will put our notes instead
+     of showing just the first one:
+
+           M-1 M-j  runs:  (find-fline \"~/TODO\")
+       M-2 M-1 M-j  shows the file ~/TODO in the right window
+       M-3 M-1 M-j  opens ~/TODO in the right window
+
+     I will suppose that people have tried `M-21j' and `M-31j'
+     and understood what they do.
+
+  c. I will also suppose that everyone is running Emacs \"in a
+     way in which the standard keys should work\". For example,
+     Doom Emacs redefines many keys, including M-1, M-2, etc,
+     that we will use a lot, so Doom Emacs is \"bad\". I think
+     that the modes that make Emacs use vi-like keybindings will
+     also interfere with keys that we will use, so they're
+     \"bad\" too. Besides that some window managers capture keys
+     combinations like Alt-Shift-<letter>, so if you use a window
+     manager like that please install another one that captures
+     few keys and learn how switch between your favorite
+     (\"bad\") WM and the one that you will use in the workshop.
+     Also, one person that attended another workshop that I gave
+     was trying to use Emacs in a terminal on a Raspberry Pi 0...
+     she said that many things didn't work but gave few details,
+     so I'll considered that _for the purposes of this workshop_
+     terminal Emacs is \"bad\" and GUI Emacs is \"good\".
+
+  d. In some parts of the workshop I will suppose that people can
+     switch between an Emacs window and a browser window; in
+     particular, I will suppose that they can follow links to
+     videos, and for beginners this is much easier to do on a
+     browser. For example, you can \"follow\" the link
+
+       (find-eev2020video \"2:53\" \"pos-spec-lists\")
+
+     using a browser by opening the HTMLized version of this
+     intro using this URL,
+
+       http://angg.twu.net/eev-intros/find-eev-exercises-intro.html
+
+     locating the link to the video there, and clicking on the
+     link in its timestamp.
+
+  e. I will _sort of_ suppose that the people on the workshop
+     have read these sections of two basic tutorials and
+     have tried to do the exercises in them:
+
+     (find-eev-quick-intro)
+     (find-eev-quick-intro \"1. Installing eev\")
+     (find-eev-quick-intro \"2. Evaluating Lisp\")
+     (find-eev-quick-intro \"3. Elisp hyperlinks\")
+     (find-eev-quick-intro \"4. Creating Elisp Hyperlinks\")
+     (find-eev-quick-intro \"4.1. `find-here-links'\")
+     (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
+     (find-eev-quick-intro \"5. Links to Emacs documentation\")
+     (find-eev-quick-intro \"5.1. Navigating the Emacs manuals\")
+     (find-eev-quick-intro \"5.2. Cutting and pasting\")
+     (find-windows-beginner-intro)
+     (find-windows-beginner-intro \"1. Download and install Emacs\")
+     (find-windows-beginner-intro \"2. Key sequences and how to quit\")
+     (find-windows-beginner-intro \"3. Using M-x and installing eev\")
+     (find-windows-beginner-intro \"4. Understanding buffers and the mode 
line\")
+     (find-refining-intro)
+     (find-refining-intro \"1. Pos-spec-lists\")
+
+
+..and just that. The previous workshop that I gave required
+installing external programs, but this one will not be like that.
+For more info on that previous workshop, see:
+
+  http://angg.twu.net/2021-workshop.html#november
+
+
+
+
+1. The base cases
+=================
+
+1.1. The base case 1
+--------------------
+We are going to start by something that we will refer to as the
+\"base case 1\", and we will treat the other cases as variations
+of the base case 1. Here it is:
+
+  You realize that this buffer is interesting and you want to
+  save a link to it to your notes. Let's refer to this buffer as
+  the \"target buffer\", as the link will point to it. You run
+  this,
+
+    (eek \"M-h M-3  ;; find-here-links-3\")
+
+  and you get a 3-window configuration like this one:
+
+   _______________           _____________________           ________________
+  |               |         |          |          |         |                |
+  |               |         |          |  elinks  |         |                |
+  |               |         |          |  buffer  |         |                |
+  |    target     | M-h M-3 |  target  |__________| M-h M-1 |     target     |
+  |    buffer     | ------> |  buffer  |          | ------> |     buffer     |
+  |               |         |          |  notes   |         |                |
+  |               |         |          |  buffer  |         |                |
+  |_______________|         |__________|__________|         |________________|
+
+  you select the line of the \"elinks buffer\" that contains an
+  elisp hyperlink that points to the \"target buffer\", you copy
+  that line your \"notes buffer\" - that contains the file ~/TODO
+  - and you run this
+
+    (eek \"M-h M-1  ;; find-here-links-1\")
+
+  to go back to the original window configuration in which only
+  the target buffer was being shown.
+
+What you did can be summarized as:
+
+  create  (the elisp hyperlinks buffer)
+  select  (the correct elisp hyperlink)
+  copy    (it to the notes buffer)
+  go back (to the previous window configuration)
+
+or:
+
+  create / select / copy / go back
+
+
+
+
+1.2. The base case 2
+--------------------
+The \"base case 2\" is similar to the base case 1, but in the
+base case 2 we will create a link with a pos-spec-list containing
+the name of this section. Pos-spec-lists are explained here:
+
+  (find-eev2020video \"2:53\" \"pos-spec-lists\")
+
+The sequence of steps in the base case 2 will include two new
+steps:
+
+  save    (the name of this section to the kill ring)        <- new!
+  create  (the elisp hyperlinks buffer)
+  select  (the correct elisp hyperlink)
+  refine  (add the name of the section to the pos-spec-list) <- new!
+  copy    (it to the notes buffer)
+  go back (to the previous window configuration)
+
+so:
+
+  save / create / select / refine / copy / go back
+
+instead of:
+
+         create / select /          copy / go back
+
+The diagram will be this one,
+
+   _______________           _____________________           ________________
+  |               |         |          |          |         |                |
+  |               |         |          |  elinks  |         |                |
+  |               |         |          |  buffer  |         |                |
+  |               |         |          | M-hy ::  |         |                |
+  |    target     | M-h M-3 |  target  |______::__| M-h M-1 |     target     |
+  |    buffer     | ------> |  buffer  |      \\/  | ------> |     buffer     |
+  |               |         |          |          |         |     buffer     |
+  |               |         |          |  notes   |         |                |
+  |               |         |          |  buffer  |         |                |
+  |_______________|         |__________|__________|         |________________|
+
+The dotted arrow indicates a copy and paste from the elinks
+buffer to the notes buffer, and the `M-hy' at the left of the
+dotted arrow indicated the we will have to type `M-hy' - that is
+an abbreviation for `M-h M-y' at some point; the placement of the
+`M-hy' suggests that it is typed before the cut and paste.
+
+  (find-refining-intro \"2. Refining hyperlinks\")
+  (find-refining-intro \"2. Refining hyperlinks\" \"M-h M-y\")
+
 
-  (find-eevnavvideo \"6:28\" \"M-j: you can forget practically everything...\")
-  (find-eevnavvideo \"6:41\" \"if you type just M-j\")
-  (find-eevnavvideo \"6:48\" \"has a header that is beginner-friendly\")
 
-_and_ that they have tried and understood the lines that I've
-added to `M-j' after making that video - these ones:
 
-      M-1 M-j  runs:  (find-fline \"~/TODO\")
-  M-2 M-1 M-j  shows the file ~/TODO in the right window
-  M-3 M-1 M-j  opens ~/TODO in the right window
 
-Most of the exercises in this \"intro\" will be about creating
-hyperlinks and saving them to your notes - i.e., to your ~/TODO.
 
 
+  (find-here-links-intro \"4. `find-here-links-3'\")
+  (find-here-links-intro \"5. `find-here-links-1'\")
+  (find-here-links-intro \"5. `find-here-links-1'\" \"eevfherel\")
+
+
+2.1. Variants of `save'
+-----------------------
+
+2.2. Variants of `create'
+-------------------------
+
+  (eek \"M-h M-k      M-j  ;; eejump\")
+                 M-2 M-j     runs:  (find-emacs-keys-intro)
+                 M-5 M-j     runs:  (find-eev-quick-intro)
+  (eek \"M-h M-k  M-h M-k  ;; find-ekey-links\")
+  (eek \"M-h M-k  M-h M-f  ;; find-efunction-links\")
+  (eek \"M-h M-k  M-h M-h  ;; find-here-links\")
+  (eek \"M-h M-k  M-h M-3  ;; find-here-links-3\")
+
+
+2.3. How to learn to `select'
+-----------------------------
+
+2.4. Variants of `refine'
+-------------------------
+  (find-refining-intro \"2. Refining hyperlinks\")
+  (find-refining-intro \"2. Refining hyperlinks\" \"M-h M-y\")
+  (find-anchors-intro \"2. Shrinking\")
+  (find-anchors-intro \"2. Shrinking\" \"`M-h M--'\")
+
+2.5. Variants of `copy'
+-----------------------
+  (find-here-links-intro \"6. Copying the hyperlink\" \"M-h M-w\")
+
+2.6. Variants of `go back'
+--------------------------
+  (eek \"M-h M-k  M-h M-1  ;; find-here-links-1\")
+  (find-eval-intro \"5. Going back\" \"`M-K' instead of `M-k'\")
+
 
 1. Saving interesting links
 ===========================
@@ -13360,14 +13569,6 @@ easier to learn that if we split it into these tasks:
   d. undestand what each link does (with M-h M-f)
   e. recognize which links are interesting
 
-  [TODO: translate and expand:]
-
-        4. ir pro tutorial sobre o M-h M-3
-        5. copiar um dos links pro vídeo
-        6. ir pro código fonte
-        7. copiar o link pro código fonte
-
-
 
 2. Some abbreviations
 =====================
diff --git a/eev-tlinks.el b/eev-tlinks.el
index a0fc985..c46716f 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211126
+;; Version:    20211201
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -2698,47 +2698,61 @@ This function is used by `ee-0x0-upload-region'."
 
 
 ;; «find-1stclassvideo-links»  (to ".find-1stclassvideo-links")
-;; Skel: (find-find-links-links-new "eevvideo-1stclass" "c" "")
+;; Skel: (find-find-links-links-new "1stclassvideo" "c" "")
+;; Skel: (find-find-links-links-new "1stclassvideo" "c" "title mp4 yp page 
lang")
 ;;  See: (find-eev "eev-videolinks.el" "first-class-videos")
 ;;       (find-eev "eev-videolinks.el" "second-class-videos")
 ;; Tests: (find-1stclassvideo-links "eev2019")
 ;;        (find-1stclassvideo-links "eev2020")
 ;;
 (defun find-1stclassvideo-links (&optional c &rest pos-spec-list)
-"Visit a temporary buffer containing hyperlinks for a first-class video."
-  (interactive)
+  "Visit a temporary buffer containing hyperlinks for eevvideo-1stclass."
+  (interactive (list (ee-1stclassvideo-around-point-ask)))
   (setq c (or c "{c}"))
-  (apply
-   'find-elinks-elisp
-   `((find-1stclassvideo-links ,c ,@pos-spec-list)
-     ;; Convention: the first sexp always regenerates the buffer.
-     (find-efunction 'find-1stclassvideo-links)
-     ""
-     ,(ee-template0 "\
+  (let* ((title   (ee-1stclassvideos-field c :title))
+        (mp4     (ee-1stclassvideos-field c :mp4))
+        (yt      (ee-1stclassvideos-field c :yt))
+        (page    (ee-1stclassvideos-field c :page))
+        (lang    (ee-1stclassvideos-field c :lang))
+        (mp4stem (ee-1stclassvideos-mp4stem c))
+        (hash    (ee-1stclassvideos-hash c)))
+    (apply
+     'find-elinks
+     `((find-1stclassvideo-links ,c ,@pos-spec-list)
+       ;; Convention: the first sexp always regenerates the buffer.
+       (find-efunction 'find-1stclassvideo-links)
+       ""
+       ,(ee-template0 "\
+;; Title: {title}
+;; MP4:   {mp4}
+;; YT:    {yt}
+;; Page:  {page}
+;; Info:  (find-eev \"eev-videolinks.el\" \"{c}\")
+;;            (find-1stclassvideo-links \"{c}\")
+;;
+;; Index: http://angg.twu.net/.emacs.videos.html#{c}
+;;         (find-angg        \".emacs.videos\"    \"{c}\")
+
+;; See:
+;; (find-eev \"eev-videolinks.el\" \"first-class-videos\")
+;; (find-eev \"eev-videolinks.el\" \"second-class-videos\")
+
 ;; Definition of the function:
 ;; (find-eev \"eev-videolinks.el\" \"first-class-videos\")
 ;; (find-eev \"eev-videolinks.el\" \"find-{c}video\")
-;; (find-efunction 'find-{c}video)
+;;               (find-efunction 'find-{c}video)
 
 ;; Play:
 ;; (find-{c}video \"0:00\")
 
-;; Index with time marks:
-;; (find-angg \".emacs.videos\" \"{c}\")
-;; http://angg.twu.net/.emacs.videos.html#{c}
-
-;; Places with more info about this video:
-;; (find-eev \"eev-videolinks.el\" \"{c}\")
+;; Other places with info about this video:
 ;; (find-angg \".emacs.templates\" \"eev-videos-data\" \"{c}\")
 ;; http://angg.twu.net/.emacs.templates.html#eev-videos-data
 ;; (find-videos-intro \"1. Some videos\" \"{c}\")
-
-;; See:
-;; (find-eev \"eev-videolinks.el\" \"first-class-videos\")
-;; (find-eev \"eev-videolinks.el\" \"second-class-videos\")
 ")
-     )
-   pos-spec-list))
+       )
+     pos-spec-list)))
+
 
 
 
diff --git a/eev-videolinks.el b/eev-videolinks.el
index 8f02c61..a8e2356 100644
--- a/eev-videolinks.el
+++ b/eev-videolinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211109
+;; Version:    20211127
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-videolinks.el>
@@ -48,16 +48,18 @@
 ;;   «.find-eevtestblsvideo»   (to "find-eevtestblsvideo")
 ;;   «.find-eevvlinksvideo»    (to "find-eevvlinksvideo")
 ;; «.more-info»                        (to "more-info")
+;; «.ee-1stclassvideos-info»   (to "ee-1stclassvideos-info")
 ;;   «.eev2019»                        (to "eev2019")
 ;;   «.eev2020»                        (to "eev2020")
 ;;   «.eev2021»                        (to "eev2021")
 ;;   «.eevnav»                 (to "eevnav")
 ;;   «.eevtempl»               (to "eevtempl")
-;;   «.fherel»                 (to "fherel")
+;;   «.eevfherel»              (to "eevfherel")
 ;;   «.eevtestbls»             (to "eevtestbls")
 ;;   «.eevvlinks»              (to "eevvlinks")
 ;;   «.oficina2021a»           (to "oficina2021a")
 ;;   «.oficina2021b»           (to "oficina2021b")
+;; «.ee-1stclassvideos-field»  (to "ee-1stclassvideos-field")
 ;; «.second-class-videos»      (to "second-class-videos")
 ;;   «.code-eevvideo»          (to "code-eevvideo")
 
@@ -411,6 +413,7 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
 ;;; |_|  |_|\___/|_|  \___| |_|_| |_|_|  \___/ 
 ;;;                                            
 ;; «more-info»  (to ".more-info")
+;; «ee-1stclassvideos-info»  (to ".ee-1stclassvideos-info")
 ;; More info on the first-class videos, in a format that is easy to
 ;; access from Lisp. I am just starting to play with this, and the
 ;; functions that transform the data in this variable into other
@@ -436,7 +439,14 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
     ("eev2021"
      :title "Test blocks"
      :mp4  "http://angg.twu.net/eev-videos/emacsconf2021.mp4";
-     ;; :yt "(Not yet)"
+     :yt   "http://www.youtube.com/watch?v=qM0Luz78qGw";
+     :page "http://angg.twu.net/emacsconf2021.html";)
+    ;;
+    ;; «eev2021b»  (to ".eev2021b")
+    ("eev2021b"
+     :title "Test blocks in Dednat6"
+     :mp4  "http://angg.twu.net/eev-videos/emacsconf2021-dednat6.mp4";
+     :yt   "http://www.youtube.com/watch?v=QUMo7vgkHJI";
      :page "http://angg.twu.net/emacsconf2021.html";)
     ;;
     ;; «eevnav»  (to ".eevnav")
@@ -453,8 +463,8 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
      :yt    "http://www.youtube.com/watch?v=91-9YfRPsuk";
      :page  "http://angg.twu.net/2020-some-template-based.html";)
     ;;
-    ;; «fherel»  (to ".fherel")
-    ("fherel"
+    ;; «eevfherel»  (to ".eevfherel")
+    ("eevfherel"
      :title "How to create hyperlinks to \"here\" with `find-here-links'"
      :mp4   "http://angg.twu.net/eev-videos/2020-find-here-links.mp4";
      :yt    "http://www.youtube.com/watch?v=8jtiBlaDor4";
@@ -462,7 +472,7 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
     ;;
     ;; «eevtestbls»  (to ".eevtestbls")
     ("eevtestbls"
-     :title "Using test blocks in eev"
+     :title "Using test blocks in eev (jan/2021)"
      :mp4   "http://angg.twu.net/eev-videos/2021-test-blocks.mp4";
      :yt    "http://www.youtube.com/watch?v=fpsF_M55W4o";
      :page  "http://angg.twu.net/2021-test-blocks.html";)
@@ -487,7 +497,7 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
      :lang  "portuguese")
     ;;
     ;; «oficina2021b»  (to ".oficina2021b")
-    (oficina2021b
+    ("oficina2021b"
      :title "Exercícios de criar e guardar links (1)"
      :mp4   "http://angg.twu.net/eev-videos/2021-oficina-2.mp4";
      :yt    "https://www.youtube.com/watch?v=XbuDnkfizYs";
@@ -497,6 +507,34 @@ and: (find-video-links-intro \"7. `find-eev-video'\")
     ))
 
 
+;; «ee-1stclassvideos-field»  (to ".ee-1stclassvideos-field")
+;;
+;;                           (find-eppp ee-1stclassvideos-info)
+;;                     (assoc "eev2021" ee-1stclassvideos-info)
+;;                (cdr (assoc "eev2021" ee-1stclassvideos-info))
+;;     (plist-get (cdr (assoc "eev2021" ee-1stclassvideos-info)) :page)
+;;     (plist-get (cdr (assoc "foo"     ee-1stclassvideos-info)) :page)
+;; (ee-1stclassvideos-field   "eev2021" :page)
+;; (ee-1stclassvideos-field   "eev2021" :mp4)
+;; (ee-1stclassvideos-field   "eev2021" :yt)
+;; (ee-1stclassvideos-mp4stem "eev2021")
+;; (ee-1stclassvideos-hash    "eev2021")
+;; (find-eev "eev-videolinks.el" "more-info")
+;;
+(defun ee-1stclassvideos-field (c &optional field)
+  (plist-get (cdr (assoc c ee-1stclassvideos-info)) field))
+
+(defun ee-1stclassvideos-mp4stem (c)
+  (let ((mp4 (ee-1stclassvideos-field c :mp4)))
+     (replace-regexp-in-string "^.*/\\([^/]*\\)\\.mp4$" "\\1" mp4)))
+
+(defun ee-1stclassvideos-hash (c)
+  (let ((yt (ee-1stclassvideos-field c :yt)))
+     (replace-regexp-in-string "^.*=\\([^=]*\\)$" "\\1" yt)))
+
+
+
+
 
 
 ;;;                _                                   _     _            
diff --git a/eev.el b/eev.el
index b044a9e..0c4f43c 100644
--- a/eev.el
+++ b/eev.el
@@ -6,7 +6,7 @@
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: lisp e-scripts
 ;; URL: http://angg.twu.net/#eev
-;; Version: 20211127
+;; Version: 20211201
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by



reply via email to

[Prev in Thread] Current Thread [Next in Thread]