Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/SUBTITLES/emacsconf2022-py.lua.html -- http://anggtwu.net/SUBTITLES/emacsconf2022-py.lua -- (find-angg "SUBTITLES/emacsconf2022-py.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- Title: Short hyperlinks to Python docs (eev @ EmacsConf2022) -- MP4: http://anggtwu.net/eev-videos/emacsconf2022-py.mp4 -- YT: http://www.youtube.com/watch?v=QeqCYQSlz-I -- Page: http://anggtwu.net/emacsconf2022-py.html -- Comment: A video about eev-rstdoc.el. -- Date: 2022dec04 -- Length: 14:03 -- -- (defun l () (interactive) (find-angg "SUBTITLES/emacsconf2022-py.lua")) -- (defun l () (interactive) (find-SUBS "emacsconf2022-py.lua")) -- (defun b () (interactive) (find-TH "emacsconf2022-py")) -- (defun p () (interactive) (find-TH "emacsconf2022-py")) -- (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-subs-links "eev2022py") -- Old: (find-editeevsubtitles-links-1 "eev2022py") -- (find-efunction 'find-editeevsubtitles-links-1) -- Yttr: (find-yttranscript-links "eev2022py" "QeqCYQSlz-I") -- Info: (find-1stclassvideo-links "eev2022py") -- Play: (find-eev2022pyvideo "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 "emacsconf2022-py.lua" sts = Subtitles.fromsexps(subs_bigstr):addtime("14:03") -- sts.lang = "pt-BR" = sts outfname = "$S/http/anggtwu.net/eev-videos/emacsconf2022-py.vtt" outfname = "/tmp/emacsconf2022-py.vtt" out = sts:vtt().."\n\n" ee_writefile(outfname, out) -- (find-fline "/tmp/emacsconf2022-py.vtt") ** Test the .vtt ** (find-eev2022pyvideo "0:00") ** Select /tmp/ or ee-eevvideosdir ** (find-eevvideosfile "") ** (find-eevvideosfile "" "emacsconf2022-py.mp4") ** (find-eevvideossh0 "cp -v emacsconf2022-py.mp4 /tmp/") ** (code-video "eev2022pyvideo" "/tmp/emacsconf2022-py.mp4") ** (code-video "eev2022pyvideo" "$S/http/anggtwu.net/eev-videos/emacsconf2022-py.mp4") ** (find-eev2022pyvideo "0:00") ** Upload the emacsconf2022-py.vtt ** to http://anggtwu.net/eev-videos/ * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/ scp emacsconf2022-py.vtt $LINP/eev-videos/ scp emacsconf2022-py.vtt $LINS/eev-videos/ Scp-np emacsconf2022-py.vtt $TWUP/eev-videos/ Scp-np emacsconf2022-py.vtt $TWUS/eev-videos/ ** Upload the subtitles to youtube ** http://www.youtube.com/watch?v=QeqCYQSlz-I ** Check that the "psne subtitles" thing works ** (find-1stclassvideo-links "eev2022py") --]] --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "emacsconf2022-py.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-eev2022pyvideo "00:00" "Hi! My name is Eduardo Ochs. I'm the author") (find-eev2022pyvideo "00:04" "of an Emacs package called eev...") (find-eev2022pyvideo "00:06" "and eev is about taking executable notes") (find-eev2022pyvideo "00:10" "of everything that you do, and this") (find-eev2022pyvideo "00:13" "presentation is about how I use this...") (find-eev2022pyvideo "00:16" "how I finally found a way to take") (find-eev2022pyvideo "00:18" "executable notes of what the python docs") (find-eev2022pyvideo "00:22" "say.") (find-eev2022pyvideo "00:23" "Let me explain that in another way. I've") (find-eev2022pyvideo "00:28" "try to Learn Python many times, but") (find-eev2022pyvideo "00:31" "hm, my brain is wired in a weird way, so") (find-eev2022pyvideo "00:34" "it didn't work... and finally a few") (find-eev2022pyvideo "00:37" "months ago I found a way of studying") (find-eev2022pyvideo "00:40" "Python that finally clicked for me.") (find-eev2022pyvideo "00:44" "The idea is that... well, it's here in") (find-eev2022pyvideo "00:47" "the title - is a way to create short") (find-eev2022pyvideo "00:50" "hyperlinks to the") (find-eev2022pyvideo "00:52" "documentation of python.") (find-eev2022pyvideo "00:54" "Here's an example.") (find-eev2022pyvideo "00:56" "This file contains some some chunks") (find-eev2022pyvideo "01:00" "of code from the Python tutorial and") (find-eev2022pyvideo "01:03" "some links to the places in which") (find-eev2022pyvideo "01:05" "I found these chunks of code.") (find-eev2022pyvideo "01:07" "For example, if I run this link here") (find-eev2022pyvideo "01:12" "it opens a certain page of the Python") (find-eev2022pyvideo "01:14" "tutorial in my browser - note that it") (find-eev2022pyvideo "01:18" "opens the local copy of the documentation...") (find-eev2022pyvideo "01:22" "and if I run this link here") (find-eev2022pyvideo "01:27" "it opens the source in .rst") (find-eev2022pyvideo "01:29" "of the same page.") (find-eev2022pyvideo "01:32" "So the first link opens") (find-eev2022pyvideo "01:34" "the HTML and this one opens the RST.") (find-eev2022pyvideo "01:37" "This is useful because in the beginning") (find-eev2022pyvideo "01:40" "I was copying these chunks of code in") (find-eev2022pyvideo "01:44" "the obvious way - I would simply") (find-eev2022pyvideo "01:46" "visit the the documentation in HTML and") (find-eev2022pyvideo "01:50" "I would mark a snippet of code here") (find-eev2022pyvideo "01:54" "and I would copy it to my notes.") (find-eev2022pyvideo "01:58" "And then after a while I") (find-eev2022pyvideo "02:01" "realized that it was much easier to") (find-eev2022pyvideo "02:03" "simply go to the RST sources and to copy") (find-eev2022pyvideo "02:07" "the chunks of code from there... and") (find-eev2022pyvideo "02:10" "note that these links look quite similar.") (find-eev2022pyvideo "02:14" "There's one difference here, that is") (find-eev2022pyvideo "02:17" "this `r' that is prepended to the name") (find-eev2022pyvideo "02:20" "of the function... and the `r' means") (find-eev2022pyvideo "02:23" "\"open the RST\"...") (find-eev2022pyvideo "02:26" "and if I use the suffix `w' it means") (find-eev2022pyvideo "02:30" "use the documentation on the web instead") (find-eev2022pyvideo "02:32" "of using the local copy.") (find-eev2022pyvideo "02:34" "So this one opens a local copy") (find-eev2022pyvideo "02:38" "and this one...") (find-eev2022pyvideo "02:42" "takes a while...") (find-eev2022pyvideo "02:45" "and opens the page") (find-eev2022pyvideo "02:49" "of the documentation in the") (find-eev2022pyvideo "02:52" "site of Python blah blah...") (find-eev2022pyvideo "02:56" "and this thing here is") (find-eev2022pyvideo "02:58" "executable in the usual eev sense, that...") (find-eev2022pyvideo "03:02" "if we type f8 several times here") (find-eev2022pyvideo "03:05" "the f8s on the lines that start with") (find-eev2022pyvideo "03:08" "red stars create a target buffer here...") (find-eev2022pyvideo "03:12" "and in this case it creates a") (find-eev2022pyvideo "03:14" "target buffer running Python, and if I") (find-eev2022pyvideo "03:17" "type f8 on these other lines these are") (find-eev2022pyvideo "03:20" "the lines are sent") (find-eev2022pyvideo "03:23" "to that REPL.") (find-eev2022pyvideo "03:25" "But anyway, let me go back.") (find-eev2022pyvideo "03:30" "Most of the things that I'm going to") (find-eev2022pyvideo "03:32" "present here are in the tutorial of this...") (find-eev2022pyvideo "03:35" "package...") (find-eev2022pyvideo "03:37" "we can go to the source code") (find-eev2022pyvideo "03:41" "here in the eev directory - it's a file") (find-eev2022pyvideo "03:44" "called eev-rstdoc.el... but the best") (find-eev2022pyvideo "03:50" "docs are in the tutorial, here...") (find-eev2022pyvideo "03:53" "and the tutorial also has some") (find-eev2022pyvideo "03:56" "executable") (find-eev2022pyvideo "03:58" "chunks... some snippets of Python") (find-eev2022pyvideo "04:02" "code that are executable, but they") (find-eev2022pyvideo "04:05" "don't have those nice colors... so") (find-eev2022pyvideo "04:07" "apologies for that.") (find-eev2022pyvideo "04:11" "We need to run this thing here to make") (find-eev2022pyvideo "04:13" "everything work.") (find-eev2022pyvideo "04:15" "This thing will define some functions") (find-eev2022pyvideo "04:17" "with funny names that I will") (find-eev2022pyvideo "04:19" "explain later.") (find-eev2022pyvideo "04:26" "Let me explain something new.") (find-eev2022pyvideo "04:30" "let's compare all these") (find-eev2022pyvideo "04:35" "links here. They take this argument") (find-eev2022pyvideo "04:38" "here and they expand the the argument in") (find-eev2022pyvideo "04:41" "a certain way. For example, this string is") (find-eev2022pyvideo "04:44" "expanded to this long URL here... note that") (find-eev2022pyvideo "04:49" "it got a prefix here,") (find-eev2022pyvideo "04:52" "that's quite long... it got the .html here,") (find-eev2022pyvideo "04:56" "and then the hash and the anchor here...") (find-eev2022pyvideo "04:59" "and each one of the functions in the") (find-eev2022pyvideo "05:03" "pydoc family expands this") (find-eev2022pyvideo "05:06" "argument in a different way.") (find-eev2022pyvideo "05:09" "The one that that opens the doc in the") (find-eev2022pyvideo "05:12" "web uses another prefix -") (find-eev2022pyvideo "05:16" "this one - and the one that opens the rst") (find-eev2022pyvideo "05:20" "file ignores the part after the hash") (find-eev2022pyvideo "05:24" "for technical reasons... I was never") (find-eev2022pyvideo "05:28" "able to to find a good way to convert") (find-eev2022pyvideo "05:30" "this hash into a string to search for,") (find-eev2022pyvideo "05:33" "so to make something that goes to") (find-eev2022pyvideo "05:35" "the right section in the link to the rst") (find-eev2022pyvideo "05:38" "doc I have to convert by hand, and by") (find-eev2022pyvideo "05:42" "trial and error, this thing here into a") (find-eev2022pyvideo "05:46" "pointer to that section, like") (find-eev2022pyvideo "05:48" "this one...") (find-eev2022pyvideo "05:50" "in which the \"_numeric-types:\"") (find-eev2022pyvideo "05:55" "is here.") (find-eev2022pyvideo "05:58" "So all these links here are based on") (find-eev2022pyvideo "06:02" "expansion, and this is easy to") (find-eev2022pyvideo "06:04" "understand...") (find-eev2022pyvideo "06:05" "but suppose that I want to") (find-eev2022pyvideo "06:08" "create a link like this, or suppose that") (find-eev2022pyvideo "06:11" "I'm browsing the docs here") (find-eev2022pyvideo "06:16" "and I just I follow some some links...") (find-eev2022pyvideo "06:21" "let me do something random here...") (find-eev2022pyvideo "06:31" "Suppose that I decided that this") (find-eev2022pyvideo "06:34" "section is very interesting. How can I") (find-eev2022pyvideo "06:35" "create a link to that? I can") (find-eev2022pyvideo "06:39" "use this pilcrow symbol and the") (find-eev2022pyvideo "06:44" "\"Copy link address\",") (find-eev2022pyvideo "06:45" "and copy the link to") (find-eev2022pyvideo "06:49" "my notes...") (find-eev2022pyvideo "06:51" "and then the Python family...") (find-eev2022pyvideo "06:55" "well, we saw that the functions in the") (find-eev2022pyvideo "06:58" "Python family have a certain way - have") (find-eev2022pyvideo "07:00" "several ways of expanding these") (find-eev2022pyvideo "07:03" "short arguments... and they also have a") (find-eev2022pyvideo "07:06" "certain way of shortening URLs") (find-eev2022pyvideo "07:09" "like this one.") (find-eev2022pyvideo "07:11" "If I type `M-x pdk' the message") (find-eev2022pyvideo "07:13" "is this one... `pdk' is a mnemonic for") (find-eev2022pyvideo "07:17" "\"Python doc kill\", and this") (find-eev2022pyvideo "07:20" "\"kill\" means \"copy to the kill ring\"") (find-eev2022pyvideo "07:23" "so if I type `M-x pdk' here it") (find-eev2022pyvideo "07:27" "considers that this thing is a link") (find-eev2022pyvideo "07:31" "to the python Docs, and it") (find-eev2022pyvideo "07:34" "shortens this link in a certain way,") (find-eev2022pyvideo "07:36" "and it kills a short link.") (find-eev2022pyvideo "07:42" "I can insert the short link with C-y") (find-eev2022pyvideo "07:45" "(yank), and then I can test this link") (find-eev2022pyvideo "07:48" "to be sure that it points") (find-eev2022pyvideo "07:50" "to where I want, and") (find-eev2022pyvideo "07:52" "then I can delete this thing, and ta-da,") (find-eev2022pyvideo "07:55" "now I have a short link, and of course I") (find-eev2022pyvideo "07:57" "can modify this link by adding a suffix") (find-eev2022pyvideo "08:00" "here...") (find-eev2022pyvideo "08:02" "and in this case here") (find-eev2022pyvideo "08:06" "I will have to change the identifier") (find-eev2022pyvideo "08:09" "to something else...") (find-eev2022pyvideo "08:12" "but I'm not going to do that now.") (find-eev2022pyvideo "08:18" "This module of eev comes with three") (find-eev2022pyvideo "08:20" "families predefined. One is a family that") (find-eev2022pyvideo "08:24" "points to the the documentation of") (find-eev2022pyvideo "08:26" "Python itself, another one points the") (find-eev2022pyvideo "08:28" "documentation of SymPy, that is a program") (find-eev2022pyvideo "08:30" "for symbolic computation, like for doing") (find-eev2022pyvideo "08:34" "mathematics equations...") (find-eev2022pyvideo "08:37" "and the other one points to the") (find-eev2022pyvideo "08:40" "documentation of MatPlotLib.") (find-eev2022pyvideo "08:43" "How do these families work?") (find-eev2022pyvideo "08:47" "Each family has to be defined in two") (find-eev2022pyvideo "08:51" "parts. Remember that eev has lots of") (find-eev2022pyvideo "08:57" "families like this one... sorry, lots of") (find-eev2022pyvideo "09:01" "functions like this one... this one") (find-eev2022pyvideo "09:03" "is the most basic, and it is explained here,") (find-eev2022pyvideo "09:07" "in this section of the main tutorial...") (find-eev2022pyvideo "09:09" "and this section explains that") (find-eev2022pyvideo "09:13" "a sexp like this one produces lots of") (find-eev2022pyvideo "09:16" "functions - produces a family of") (find-eev2022pyvideo "09:19" "functions - and it does that by producing") (find-eev2022pyvideo "09:23" "a certain chunk of code and then") (find-eev2022pyvideo "09:25" "executing this chunk of code...") (find-eev2022pyvideo "09:28" "and if we add a certain prefix here...") (find-eev2022pyvideo "09:30" "\"find-\"... and if we execute this") (find-eev2022pyvideo "09:32" "we can... instead of executing") (find-eev2022pyvideo "09:35" "that chunk of code we can see what is") (find-eev2022pyvideo "09:37" "that chunk of code.") (find-eev2022pyvideo "09:39" "In the case of `code-c-d' it is this:") (find-eev2022pyvideo "09:41" "it is a `setq', several `defun's, ") (find-eev2022pyvideo "09:43" "and some comments here, with") (find-eev2022pyvideo "09:47" "links to the documentation.") (find-eev2022pyvideo "09:49" "In the case of rstdoc it's the same.") (find-eev2022pyvideo "09:52" "We have this function here that defines") (find-eev2022pyvideo "09:54" "the function in the python family...") (find-eev2022pyvideo "09:56" "and we can run this to understand what") (find-eev2022pyvideo "09:59" "this `code-rstdoc' does...") (find-eev2022pyvideo "10:03" "it creates this temporary buffer here...") (find-eev2022pyvideo "10:05" "with lots of `defun's, a `code-c-d' here,") (find-eev2022pyvideo "10:09" "and lots of comments here... and the") (find-eev2022pyvideo "10:10" "comments include some tests. For example") (find-eev2022pyvideo "10:13" "we can use these functions here to test") (find-eev2022pyvideo "10:16" "how the expansion works.") (find-eev2022pyvideo "10:21" "And") (find-eev2022pyvideo "10:23" "note that in this buffer here we don't") (find-eev2022pyvideo "10:26" "have the paths that that this family") (find-eev2022pyvideo "10:28" "uses. We don't have for example") (find-eev2022pyvideo "10:31" "the URL that points to the site of") (find-eev2022pyvideo "10:33" "Python, to the directory that contains") (find-eev2022pyvideo "10:36" "the reference manual, or whatever... all") (find-eev2022pyvideo "10:40" "these things are in another part of the") (find-eev2022pyvideo "10:42" "definition of that family - that is a") (find-eev2022pyvideo "10:44" "variable.") (find-eev2022pyvideo "10:46" "If we execute this we go to the") (find-eev2022pyvideo "10:48" "source code of eev-rstdoc,") (find-eev2022pyvideo "10:50" "to the parts in which") (find-eev2022pyvideo "10:54" "this variable is defined...") (find-eev2022pyvideo "10:57" "and") (find-eev2022pyvideo "10:59" "for each family we have a variable like") (find-eev2022pyvideo "11:01" "this, whose value is a property list") (find-eev2022pyvideo "11:05" "with several fields...") (find-eev2022pyvideo "11:07" "these first fields are very easy to") (find-eev2022pyvideo "11:09" "understand - they are used in the") (find-eev2022pyvideo "11:10" "expansion... this one too. And these") (find-eev2022pyvideo "11:16" "two fields are used in the shrinking -") (find-eev2022pyvideo "11:19" "in the shortening - and") (find-eev2022pyvideo "11:21" "this field here") (find-eev2022pyvideo "11:25" "tells what is the name of the") (find-eev2022pyvideo "11:28" "killing function") (find-eev2022pyvideo "11:30" "so the fields of this thing here are") (find-eev2022pyvideo "11:33" "used to generate...") (find-eev2022pyvideo "11:36" "some fields are used to generate the") (find-eev2022pyvideo "11:39" "code that appears here, and some fields") (find-eev2022pyvideo "11:41" "are simply") (find-eev2022pyvideo "11:44" "read by functions like this one, that") (find-eev2022pyvideo "11:47" "consults the variable.") (find-eev2022pyvideo "11:51" "Now the natural question is: how can we") (find-eev2022pyvideo "11:53" "define new families? Or: how can we change") (find-eev2022pyvideo "11:57" "a family like this one to point to") (find-eev2022pyvideo "11:59" "another version of Python?") (find-eev2022pyvideo "12:03" "There are some template-based functions") (find-eev2022pyvideo "12:06" "for doing that. They are explained in") (find-eev2022pyvideo "12:09" "this section of the tutorial...") (find-eev2022pyvideo "12:10" "where is that?...") (find-eev2022pyvideo "12:14" "oh God, it's far away...") (find-eev2022pyvideo "12:17" "here.") (find-eev2022pyvideo "12:20" "Suppose that we have a package foo, that") (find-eev2022pyvideo "12:23" "we want to create a family that points") (find-eev2022pyvideo "12:25" "to the docs") (find-eev2022pyvideo "12:27" "of that package foo... so, we") (find-eev2022pyvideo "12:31" "can execute this thing here, and it") (find-eev2022pyvideo "12:32" "generates this") (find-eev2022pyvideo "12:34" "this thing from a template.") (find-eev2022pyvideo "12:37" "If we just want to modify a current") (find-eev2022pyvideo "12:40" "definition we can run something like") (find-eev2022pyvideo "12:42" "this - note that the family `:py'") (find-eev2022pyvideo "12:44" "already exists, and instead of using") (find-eev2022pyvideo "12:47" "placeholders in some of these") (find-eev2022pyvideo "12:51" "URLs it will use the current values of") (find-eev2022pyvideo "12:53" "the fields...") (find-eev2022pyvideo "12:55" "so we can also use this to modify") (find-eev2022pyvideo "12:59" "existing families.") (find-eev2022pyvideo "13:01" "Well, these are the technical details.") (find-eev2022pyvideo "13:05" "Now the natural question is: why do I") (find-eev2022pyvideo "13:08" "want this? This doesn't") (find-eev2022pyvideo "13:12" "any sense to me! Why should I") (find-eev2022pyvideo "13:14" "try this?") (find-eev2022pyvideo "13:15" "And the best answer: for most people") (find-eev2022pyvideo "13:18" "this way of using executable notes") (find-eev2022pyvideo "13:22" "do not make any sense") (find-eev2022pyvideo "13:24" "at all at first sight...") (find-eev2022pyvideo "13:27" "so what I'm trying to do is: I'm trying") (find-eev2022pyvideo "13:30" "to write to these tutorials with") (find-eev2022pyvideo "13:33" "many examples that are very easy to run,") (find-eev2022pyvideo "13:35" "and that examine data structures,") (find-eev2022pyvideo "13:38" "and functions, and test things,") (find-eev2022pyvideo "13:40" "and so on... so my main argument") (find-eev2022pyvideo "13:46" "for convincing people to") (find-eev2022pyvideo "13:48" "test this is: this is trivial to test -") (find-eev2022pyvideo "13:52" "simply install eev and run this thing") (find-eev2022pyvideo "13:54" "here, and run the examples, and probably") (find-eev2022pyvideo "13:56" "you're going to find that this") (find-eev2022pyvideo "13:58" "tutorial is fun to follow.") (find-eev2022pyvideo "14:01" "So... that's it! =)") ]==] unrevised_bigstr = [==[ ]==] -- Local Variables: -- coding: utf-8-unix -- End: