WEBVTT 00:00:01.680 --> 00:00:04.080 oh you are now muted 00:00:04.080 --> 00:00:07.359 all right then well uh hello everyone 00:00:07.359 --> 00:00:09.840 I hope uh you're all enjoying the Emacs 00:00:09.840 --> 00:00:11.519 conf 00:00:11.519 --> 00:00:14.480 my name is musa alhassi and I hope 00:00:14.480 --> 00:00:15.040 you're 00:00:15.040 --> 00:00:17.920 excited to learn about uh powering up 00:00:17.920 --> 00:00:19.840 special blocks 00:00:19.840 --> 00:00:22.880 um so let's let's first off uh find out 00:00:22.880 --> 00:00:24.800 what these special blocks are and 00:00:24.800 --> 00:00:27.920 and see what we can uh go from so 00:00:27.920 --> 00:00:30.240 uh yesterday I saw a lot of cool talks 00:00:30.240 --> 00:00:32.719 and uh people were chatting about how do 00:00:32.719 --> 00:00:33.200 you 00:00:33.200 --> 00:00:35.520 I know how should you present should you 00:00:35.520 --> 00:00:37.200 do it this way or that way and 00:00:37.200 --> 00:00:38.640 I thought maybe I should try a different 00:00:38.640 --> 00:00:41.120 way uh but but I'm talking about special 00:00:41.120 --> 00:00:42.239 blocks and if I 00:00:42.239 --> 00:00:45.039 show you an emax then I have to export 00:00:45.039 --> 00:00:47.039 the html so you can see what it looks 00:00:47.039 --> 00:00:47.840 like 00:00:47.840 --> 00:00:50.800 or export to a pdf so you can see what 00:00:50.800 --> 00:00:51.920 it looks like 00:00:51.920 --> 00:00:54.239 uh so I ended up writing an org reveal 00:00:54.239 --> 00:00:56.399 and 00:00:56.399 --> 00:00:58.960 joyously this this just works you can 00:00:58.960 --> 00:01:00.879 you can just see things here 00:01:00.879 --> 00:01:02.960 uh I was worried that I'd have to take 00:01:02.960 --> 00:01:04.559 pictures and then you know 00:01:04.559 --> 00:01:07.600 uh uh you know insert pings so that that 00:01:07.600 --> 00:01:09.760 was a delight 00:01:09.760 --> 00:01:12.159 okay uh so special blocks are these 00:01:12.159 --> 00:01:12.960 things like 00:01:12.960 --> 00:01:16.000 a center small quote uh that's what a 00:01:16.000 --> 00:01:17.280 special block is 00:01:17.280 --> 00:01:19.360 and with a bit of lisp we can we can 00:01:19.360 --> 00:01:20.720 make special blocks 00:01:20.720 --> 00:01:23.200 and link types right so uh using a 00:01:23.200 --> 00:01:24.799 single interface 00:01:24.799 --> 00:01:26.720 um and the interface is going to be 00:01:26.720 --> 00:01:27.840 similar to one 00:01:27.840 --> 00:01:29.439 many people are familiar with in 00:01:29.439 --> 00:01:32.560 particular org babel's 00:01:32.560 --> 00:01:35.840 source interface as well as using global 00:01:35.840 --> 00:01:37.840 header arguments for link types 00:01:37.840 --> 00:01:39.680 and the idea is to write it once and 00:01:39.680 --> 00:01:41.200 generate many different kinds 00:01:41.200 --> 00:01:44.159 right you write uh an org markup and you 00:01:44.159 --> 00:01:44.720 can have 00:01:44.720 --> 00:01:47.680 uh html you can have pdf and and 00:01:47.680 --> 00:01:48.560 joyously 00:01:48.560 --> 00:01:51.840 uh org reveal so that was uh that was an 00:01:51.840 --> 00:01:53.600 unexpected delight 00:01:53.600 --> 00:01:56.640 um so here is a few that you'll you'll 00:01:56.640 --> 00:01:57.840 just see as we 00:01:57.840 --> 00:02:01.759 uh in this presentation you know some uh 00:02:01.759 --> 00:02:04.000 uh I won't show some of these uh link 00:02:04.000 --> 00:02:05.040 only ones 00:02:05.040 --> 00:02:06.799 but we'll see a few of these other ones 00:02:06.799 --> 00:02:08.080 just to make the uh 00:02:08.080 --> 00:02:09.920 presentation look nice so the 00:02:09.920 --> 00:02:11.520 presentation is really going to 00:02:11.520 --> 00:02:14.000 present these blocks and the mechanism 00:02:14.000 --> 00:02:15.120 at the same time 00:02:15.120 --> 00:02:18.400 so uh so this no no html was written 00:02:18.400 --> 00:02:21.280 look ma no html just pure org mode and 00:02:21.280 --> 00:02:22.000 and 00:02:22.000 --> 00:02:23.520 you get all these beautiful boxes and 00:02:23.520 --> 00:02:25.840 things okay 00:02:25.840 --> 00:02:27.680 so the motivation for this is you know 00:02:27.680 --> 00:02:29.120 what uh 00:02:29.120 --> 00:02:31.200 you're you're online you run into a blog 00:02:31.200 --> 00:02:32.239 and you see something you like and 00:02:32.239 --> 00:02:33.120 you're like man 00:02:33.120 --> 00:02:35.280 you know I wish I could uh you know 00:02:35.280 --> 00:02:36.640 produce that 00:02:36.640 --> 00:02:39.519 um uh but you you check in the author 00:02:39.519 --> 00:02:40.160 wrote raw 00:02:40.160 --> 00:02:44.239 html you know plus html everywhere 00:02:44.239 --> 00:02:46.800 and uh that's that's you know gonna 00:02:46.800 --> 00:02:47.840 obscure 00:02:47.840 --> 00:02:49.680 your your real content it's going to be 00:02:49.680 --> 00:02:51.200 surrounded by all this uh 00:02:51.200 --> 00:02:54.239 styling information that's unfortunate 00:02:54.239 --> 00:02:56.400 uh the author decides to use an org 00:02:56.400 --> 00:02:58.959 macro all right a bit better 00:02:58.959 --> 00:03:01.120 but then what if you decide hey I want 00:03:01.120 --> 00:03:03.360 to make a 00:03:03.360 --> 00:03:06.000 not pdf great and then the worst of all 00:03:06.000 --> 00:03:07.840 the author doesn't give you the source 00:03:07.840 --> 00:03:10.159 and then you have to view page source 00:03:10.159 --> 00:03:10.879 and 00:03:10.879 --> 00:03:13.760 learn cascading style sheets and and you 00:03:13.760 --> 00:03:14.239 know 00:03:14.239 --> 00:03:16.159 sit in a corner and cry decide to do 00:03:16.159 --> 00:03:18.080 other things with your life 00:03:18.080 --> 00:03:20.959 so uh we want to give you org users 00:03:20.959 --> 00:03:22.640 numerous styles 00:03:22.640 --> 00:03:26.000 and uh and an extensible mechanism to 00:03:26.000 --> 00:03:27.200 add more of these 00:03:27.200 --> 00:03:28.799 aesthetically pleasing styles you know 00:03:28.799 --> 00:03:31.200 to have really nice things 00:03:31.200 --> 00:03:34.720 look one way in the html and look almost 00:03:34.720 --> 00:03:35.599 the same way 00:03:35.599 --> 00:03:39.120 in the pdf and other uh back ends and 00:03:39.120 --> 00:03:41.680 if by having these newer ones you know 00:03:41.680 --> 00:03:42.159 people 00:03:42.159 --> 00:03:44.879 might be encouraged to try making new 00:03:44.879 --> 00:03:45.519 ones 00:03:45.519 --> 00:03:47.920 especially when the interface is uh not 00:03:47.920 --> 00:03:49.040 so difficult 00:03:49.040 --> 00:03:54.159 uh that's the that's the aim okay 00:03:54.159 --> 00:03:57.360 uh so let's let's have a a real story to 00:03:57.360 --> 00:03:59.120 motivate this even more 00:03:59.120 --> 00:04:02.319 um so here's three friends uh I hope I 00:04:02.319 --> 00:04:03.599 don't butcher their names but these 00:04:03.599 --> 00:04:04.640 friends are called 00:04:04.640 --> 00:04:07.040 amin sasha and corwin and then they're 00:04:07.040 --> 00:04:08.720 organizing a conference 00:04:08.720 --> 00:04:12.080 uh EmacsConf 2020. 00:04:12.080 --> 00:04:14.239 so sasha decides to write an org file 00:04:14.239 --> 00:04:16.479 and and she would like some feedback 00:04:16.479 --> 00:04:19.199 okay and and just uh make it clear 00:04:19.199 --> 00:04:19.840 there's no 00:04:19.840 --> 00:04:22.960 uh just how easy this looks 00:04:22.960 --> 00:04:27.280 let's look at the source for this block 00:04:27.280 --> 00:04:30.000 notice it's just the word green then a 00:04:30.000 --> 00:04:30.720 colon 00:04:30.720 --> 00:04:34.560 than amine uh so no 00:04:34.560 --> 00:04:37.759 no div style coloring just just you know 00:04:37.759 --> 00:04:38.479 green color 00:04:38.479 --> 00:04:41.520 immune a very pleasant uh or markup 00:04:41.520 --> 00:04:43.600 so that's that's quite nice put some 00:04:43.600 --> 00:04:44.960 bold around it 00:04:44.960 --> 00:04:47.840 not not too difficult so hopefully uh 00:04:47.840 --> 00:04:49.040 this will be useful to 00:04:49.040 --> 00:04:51.680 other people as well so what kind of 00:04:51.680 --> 00:04:52.240 feedback 00:04:52.240 --> 00:04:56.639 uh would sasha expect to get um so maybe 00:04:56.639 --> 00:04:59.120 she would expect top level remarks 00:04:59.120 --> 00:04:59.680 visible 00:04:59.680 --> 00:05:01.759 in the export you know when she makes an 00:05:01.759 --> 00:05:04.400 html she can see right there a big block 00:05:04.400 --> 00:05:07.840 right maybe 00:05:07.840 --> 00:05:09.840 amin will suggest to sasha please 00:05:09.840 --> 00:05:11.120 replace this part 00:05:11.120 --> 00:05:12.960 with this other part or replace this 00:05:12.960 --> 00:05:14.639 word with this other word 00:05:14.639 --> 00:05:16.960 right um this is not really possible 00:05:16.960 --> 00:05:17.680 with raw 00:05:17.680 --> 00:05:21.919 html or uh yeah or with even latex 00:05:21.919 --> 00:05:24.000 you'd have to have multiple arguments 00:05:24.000 --> 00:05:25.360 the first argument and then 00:05:25.360 --> 00:05:27.840 the replacement argument and it's a bit 00:05:27.840 --> 00:05:28.800 clunky 00:05:28.800 --> 00:05:30.960 um but with our setup you just write 00:05:30.960 --> 00:05:32.080 some text 00:05:32.080 --> 00:05:34.479 write hashtag plus replace with and then 00:05:34.479 --> 00:05:36.240 write more text and you're good to go 00:05:36.240 --> 00:05:39.440 normal uh org markup um 00:05:39.440 --> 00:05:40.720 everyone speaks different languages 00:05:40.720 --> 00:05:42.479 maybe they want to use a 00:05:42.479 --> 00:05:45.919 uh one word or they're arguing about 00:05:45.919 --> 00:05:48.000 whether we talk about frames or windows 00:05:48.000 --> 00:05:49.759 um so maybe they want to have some 00:05:49.759 --> 00:05:50.560 translations 00:05:50.560 --> 00:05:52.479 right so there's different kinds of 00:05:52.479 --> 00:05:55.360 feedbacks uh let's let's take an example 00:05:55.360 --> 00:05:59.360 uh look at what they are okay 00:05:59.360 --> 00:06:02.560 uh so for example sasha might write 00:06:02.560 --> 00:06:06.160 uh this org mode right here and uh 00:06:06.160 --> 00:06:08.319 and then in her html exports you might 00:06:08.319 --> 00:06:09.759 see this 00:06:09.759 --> 00:06:12.080 and uh her feedback might look really 00:06:12.080 --> 00:06:13.840 nicely from anyone who says you know 00:06:13.840 --> 00:06:14.560 let's uh 00:06:14.560 --> 00:06:16.639 let's do some lisp instead of uh 00:06:16.639 --> 00:06:18.560 mathematics let's just do some list 00:06:18.560 --> 00:06:20.960 and and corwin says you know let's let's 00:06:20.960 --> 00:06:22.479 not be so silly 00:06:22.479 --> 00:06:25.120 maybe let's just say 9 a.m and move on 00:06:25.120 --> 00:06:28.080 okay 00:06:28.080 --> 00:06:31.360 um so amin likes to export to pdf 00:06:31.360 --> 00:06:33.039 and so he writes his top-level remarks 00:06:33.039 --> 00:06:34.720 using latex that's how 00:06:34.720 --> 00:06:37.600 so to get this uh square I mean please 00:06:37.600 --> 00:06:38.960 change whatever 00:06:38.960 --> 00:06:41.440 he might write like this hashtag you 00:06:41.440 --> 00:06:43.120 know plus latex 00:06:43.120 --> 00:06:46.960 hashtag plus latex right but then 00:06:46.960 --> 00:06:50.000 sasha only exports to p to html uh for 00:06:50.000 --> 00:06:50.880 example 00:06:50.880 --> 00:06:54.880 um and uh so she doesn't look at the pdf 00:06:54.880 --> 00:06:57.199 and she may not see his top-level 00:06:57.199 --> 00:06:58.560 feedback you know with those nice 00:06:58.560 --> 00:06:59.440 brackets and 00:06:59.440 --> 00:07:02.160 and bold right and so she might think 00:07:02.160 --> 00:07:03.120 everything's good 00:07:03.120 --> 00:07:06.160 right and that can be a bit disastrous 00:07:06.160 --> 00:07:09.039 um so maybe sasha will will then uh make 00:07:09.039 --> 00:07:09.440 some 00:07:09.440 --> 00:07:13.199 of her own feedback all right uh but 00:07:13.199 --> 00:07:16.160 and to produce it she might write html 00:07:16.160 --> 00:07:16.560 uh 00:07:16.560 --> 00:07:20.639 um html commands hashtag plus html to 00:07:20.639 --> 00:07:21.680 get that 00:07:21.680 --> 00:07:24.240 uh but then amin will make a pdf and 00:07:24.240 --> 00:07:25.680 this won't stick out 00:07:25.680 --> 00:07:27.759 and then so he might think everything's 00:07:27.759 --> 00:07:30.160 okay even even though it's not 00:07:30.160 --> 00:07:33.520 um then corwin actually decides hey 00:07:33.520 --> 00:07:36.240 uh let me read the exported result and 00:07:36.240 --> 00:07:36.800 these 00:07:36.800 --> 00:07:38.319 there's all those feedback from two 00:07:38.319 --> 00:07:39.919 people who haven't uh 00:07:39.919 --> 00:07:42.080 read anything because maybe they were in 00:07:42.080 --> 00:07:43.840 a russian and didn't 00:07:43.840 --> 00:07:46.400 see the top level feedback and so they 00:07:46.400 --> 00:07:48.160 agree hey let's have a uniform org 00:07:48.160 --> 00:07:50.000 interface that exports 00:07:50.000 --> 00:07:53.280 to both html and pdf make both of us 00:07:53.280 --> 00:07:54.080 happy 00:07:54.080 --> 00:07:57.280 okay so they decide to use org special 00:07:57.280 --> 00:07:58.160 blocks 00:07:58.160 --> 00:08:01.840 right um and to set this up they need to 00:08:01.840 --> 00:08:04.400 you know maybe read a little bit of lisp 00:08:04.400 --> 00:08:04.879 hooks 00:08:04.879 --> 00:08:08.879 advice macros to get all of this set up 00:08:08.879 --> 00:08:10.840 and then they'll use org as the main 00:08:10.840 --> 00:08:12.319 interface okay 00:08:12.319 --> 00:08:14.400 it's a lot of work but it's worth it 00:08:14.400 --> 00:08:16.479 right maybe 00:08:16.479 --> 00:08:19.360 um but then corwin corbin's a bit tears 00:08:19.360 --> 00:08:19.759 so 00:08:19.759 --> 00:08:22.960 uh corwin maybe doesn't want to write 00:08:22.960 --> 00:08:24.800 uh using blocks he thinks they're 00:08:24.800 --> 00:08:26.080 overkill and 00:08:26.080 --> 00:08:29.360 and sasha wants html and uh and 00:08:29.360 --> 00:08:31.840 I mean wants pdf and corwin wants org 00:08:31.840 --> 00:08:32.560 reveal 00:08:32.560 --> 00:08:34.240 so now they have to reformat all their 00:08:34.240 --> 00:08:36.320 code and then they need to use org link 00:08:36.320 --> 00:08:37.120 types to 00:08:37.120 --> 00:08:39.599 reduce the overkill all right so they 00:08:39.599 --> 00:08:41.519 can try to avoid duplication by 00:08:41.519 --> 00:08:44.000 factoring things out into self-contained 00:08:44.000 --> 00:08:46.800 uh defined functions or defunds 00:08:46.800 --> 00:08:50.320 um but now to set up or links 00:08:50.320 --> 00:08:53.440 uh we'll have uh to learn a new 00:08:53.440 --> 00:08:54.399 interface 00:08:54.399 --> 00:08:57.040 org setup link um learn a little bit 00:08:57.040 --> 00:08:58.000 about fonts 00:08:58.000 --> 00:09:02.160 follow links exports handles 00:09:02.160 --> 00:09:05.040 it's so much that's so much but but then 00:09:05.040 --> 00:09:06.800 you know the friends they learn a lot 00:09:06.800 --> 00:09:08.399 you know they learn about defund all 00:09:08.399 --> 00:09:11.120 right so these these words are red 00:09:11.120 --> 00:09:12.480 you get a little explanation I think 00:09:12.480 --> 00:09:14.320 it's a bit too small for anyone to read 00:09:14.320 --> 00:09:16.720 this is lisp documentation right for 00:09:16.720 --> 00:09:18.000 defund 00:09:18.000 --> 00:09:19.680 advice ad there's some list 00:09:19.680 --> 00:09:21.600 documentation right 00:09:21.600 --> 00:09:23.600 they learn about destructuring let's so 00:09:23.600 --> 00:09:25.279 this is from the dash library 00:09:25.279 --> 00:09:26.959 here's all that you know glorious 00:09:26.959 --> 00:09:28.800 glorious documentation with examples 00:09:28.800 --> 00:09:29.360 sorry 00:09:29.360 --> 00:09:31.680 I like that they might make an ad-hoc 00:09:31.680 --> 00:09:33.760 mechanism to simulate 00:09:33.760 --> 00:09:36.000 arguments for special blocks so 00:09:36.000 --> 00:09:37.040 something maybe called 00:09:37.040 --> 00:09:40.399 extract arguments and then of course to 00:09:40.399 --> 00:09:41.920 make new link types they have to learn 00:09:41.920 --> 00:09:42.480 about 00:09:42.480 --> 00:09:45.120 org link set parameters and then it's 00:09:45.120 --> 00:09:46.480 numerous uh 00:09:46.480 --> 00:09:49.920 bits and pieces all right so let's oh 00:09:49.920 --> 00:09:50.720 let's uh 00:09:50.720 --> 00:09:53.600 close all these ones down and and uh of 00:09:53.600 --> 00:09:55.040 course they also need to be uh 00:09:55.040 --> 00:09:56.080 comfortable with 00:09:56.080 --> 00:09:58.720 uh loops and maps and matching and 00:09:58.720 --> 00:09:59.920 string functions 00:09:59.920 --> 00:10:02.560 so it's it's a bit of a pain it's a bit 00:10:02.560 --> 00:10:03.360 of a pain 00:10:03.360 --> 00:10:05.839 um so it's probably not worth it so 00:10:05.839 --> 00:10:06.560 maybe I'll just 00:10:06.560 --> 00:10:09.360 rush things quickly or do an ad hoc you 00:10:09.360 --> 00:10:10.320 know 00:10:10.320 --> 00:10:13.680 we have things to do right 00:10:13.680 --> 00:10:15.920 so maybe maybe the squad wants to have a 00:10:15.920 --> 00:10:17.839 modular 00:10:17.839 --> 00:10:21.120 and unified interface so everyone's 00:10:21.120 --> 00:10:23.040 comfortable with defunct to define a 00:10:23.040 --> 00:10:25.279 function and they say you know what 00:10:25.279 --> 00:10:26.480 it would be nice if we could just you 00:10:26.480 --> 00:10:29.440 know define simultaneously 00:10:29.440 --> 00:10:32.959 both a block and the link type right 00:10:32.959 --> 00:10:34.880 and uh that way we have a single 00:10:34.880 --> 00:10:36.000 interface 00:10:36.000 --> 00:10:38.240 org mode for for these things and it 00:10:38.240 --> 00:10:39.040 would be nice was 00:10:39.040 --> 00:10:42.079 modular so if I defined a 00:10:42.079 --> 00:10:43.680 one kind of block and you defined 00:10:43.680 --> 00:10:45.519 another we could compose them 00:10:45.519 --> 00:10:47.600 right and then get a you know a nice 00:10:47.600 --> 00:10:49.360 bigger block like lego 00:10:49.360 --> 00:10:52.320 that would be nice building box okay and 00:10:52.320 --> 00:10:54.160 uh this is uh what we 00:10:54.160 --> 00:10:56.240 have come up with called death block and 00:10:56.240 --> 00:10:57.600 it also has a 00:10:57.600 --> 00:11:00.240 long documentation string containing 00:11:00.240 --> 00:11:01.760 examples and things 00:11:01.760 --> 00:11:04.800 so that way you can try to be useful 00:11:04.800 --> 00:11:08.320 okay um so let's let's look at a a 00:11:08.320 --> 00:11:10.880 solution to these friends uh trilemma 00:11:10.880 --> 00:11:12.800 all right so here's here's a way to 00:11:12.800 --> 00:11:14.320 define a block 00:11:14.320 --> 00:11:17.040 um it looks it's it doesn't look that 00:11:17.040 --> 00:11:19.200 difficult but this is how they can 00:11:19.200 --> 00:11:22.320 define a block for um 00:11:22.320 --> 00:11:25.920 for uh their top-level feedback right 00:11:25.920 --> 00:11:27.680 so let's let's look at the three main 00:11:27.680 --> 00:11:28.959 parts together 00:11:28.959 --> 00:11:31.920 it's not that uh difficult I hope just 00:11:31.920 --> 00:11:33.040 six lines 00:11:33.040 --> 00:11:34.720 and that's including a documentation 00:11:34.720 --> 00:11:36.160 string and you know 00:11:36.160 --> 00:11:39.440 uh new lines and things okay so in line 00:11:39.440 --> 00:11:41.279 one we just define the block just like 00:11:41.279 --> 00:11:42.000 you define 00:11:42.000 --> 00:11:44.880 a function we define a block the flag 00:11:44.880 --> 00:11:46.399 the block name is going to be called 00:11:46.399 --> 00:11:49.680 feedback it has an author who 00:11:49.680 --> 00:11:53.360 right the author has no default 00:11:53.360 --> 00:11:56.160 value it has a color and the color has a 00:11:56.160 --> 00:11:57.760 default value of red 00:11:57.760 --> 00:12:00.560 okay so just just as when you define 00:12:00.560 --> 00:12:01.680 functions they 00:12:01.680 --> 00:12:04.880 they uh you start by uh define 00:12:04.880 --> 00:12:08.639 or def block than the name some 00:12:08.639 --> 00:12:10.720 mandatory argument and some optional 00:12:10.720 --> 00:12:13.440 arguments okay 00:12:13.440 --> 00:12:15.760 then the next stage is well and 00:12:15.760 --> 00:12:18.480 definition a documentation you know 00:12:18.480 --> 00:12:20.880 uh the people who use this which are 00:12:20.880 --> 00:12:22.880 future you or future me you know 00:12:22.880 --> 00:12:25.519 uh might want to know what this is all 00:12:25.519 --> 00:12:27.839 right so let's get to document this 00:12:27.839 --> 00:12:30.560 uh and uh for for corwin who might want 00:12:30.560 --> 00:12:32.079 to use uh tooltips 00:12:32.079 --> 00:12:34.560 uh when corwin writes feedback whatever 00:12:34.560 --> 00:12:35.120 and 00:12:35.120 --> 00:12:37.120 Emacs they'll see a nice little tooltip 00:12:37.120 --> 00:12:38.639 and the tooltip will have 00:12:38.639 --> 00:12:41.279 this uh documentation string right so 00:12:41.279 --> 00:12:43.279 that'll be nice 00:12:43.279 --> 00:12:45.200 okay and then here's the third part the 00:12:45.200 --> 00:12:46.480 last three lines are 00:12:46.480 --> 00:12:49.440 not not so difficult if the back end is 00:12:49.440 --> 00:12:49.680 in 00:12:49.680 --> 00:12:52.800 is html the backend is html 00:12:52.800 --> 00:12:55.360 please use this template string 00:12:55.360 --> 00:12:57.440 otherwise use the other string 00:12:57.440 --> 00:13:00.639 okay and for each of these uh string 00:13:00.639 --> 00:13:01.279 markers 00:13:01.279 --> 00:13:03.600 please put in the color who wrote it and 00:13:03.600 --> 00:13:04.959 then the contents 00:13:04.959 --> 00:13:07.279 of the special block or the link type 00:13:07.279 --> 00:13:08.160 okay 00:13:08.160 --> 00:13:10.639 um so that's pretty neat not not so 00:13:10.639 --> 00:13:11.600 difficult 00:13:11.600 --> 00:13:14.639 so I thought that was kind of cool and 00:13:14.639 --> 00:13:15.519 then notice it's 00:13:15.519 --> 00:13:18.480 anaphoric it's it's a this this def 00:13:18.480 --> 00:13:19.519 block 00:13:19.519 --> 00:13:21.760 gives you two new names it gives you a 00:13:21.760 --> 00:13:22.560 name called 00:13:22.560 --> 00:13:25.120 uh contents and it gives you a name 00:13:25.120 --> 00:13:26.480 called back end 00:13:26.480 --> 00:13:29.040 right and so even if you're writing a 00:13:29.040 --> 00:13:31.040 def block and you intend it to be used 00:13:31.040 --> 00:13:32.560 only for links 00:13:32.560 --> 00:13:35.440 uh like the uh these colors for example 00:13:35.440 --> 00:13:37.600 uh these colors were defined using dev 00:13:37.600 --> 00:13:38.399 block 00:13:38.399 --> 00:13:41.279 uh and I used them as links right here 00:13:41.279 --> 00:13:43.360 and you don't need to worry 00:13:43.360 --> 00:13:44.880 where does the text come from in the 00:13:44.880 --> 00:13:48.160 link you know if I say red colon bob uh 00:13:48.160 --> 00:13:48.959 is it bob 00:13:48.959 --> 00:13:50.720 or if I put a description is it the 00:13:50.720 --> 00:13:52.000 description so 00:13:52.000 --> 00:13:54.000 it's whatever is available will will 00:13:54.000 --> 00:13:56.720 become uh the value of contents 00:13:56.720 --> 00:13:59.199 and if you're really you know interested 00:13:59.199 --> 00:14:00.320 and you want to do some 00:14:00.320 --> 00:14:03.839 intricate stuff uh def block also gives 00:14:03.839 --> 00:14:04.959 you something called 00:14:04.959 --> 00:14:08.160 raw dash contents if you really want to 00:14:08.160 --> 00:14:09.360 touch the raw 00:14:09.360 --> 00:14:11.920 uh contents with all of the org markups 00:14:11.920 --> 00:14:12.639 still there 00:14:12.639 --> 00:14:16.000 okay so let's uh let's see 00:14:16.000 --> 00:14:18.320 how uh everyone can uh communicate 00:14:18.320 --> 00:14:19.440 amongst themselves 00:14:19.440 --> 00:14:22.480 using this new interface okay so 00:14:22.480 --> 00:14:26.000 uh uh sasha speculates and she how does 00:14:26.000 --> 00:14:28.399 she speculate for her organ html 00:14:28.399 --> 00:14:31.440 she might just write hey look at that no 00:14:31.440 --> 00:14:34.800 no no html nice and and 00:14:34.800 --> 00:14:37.519 amin wants to have some green and so he 00:14:37.519 --> 00:14:39.600 just says hey here's some color green 00:14:39.600 --> 00:14:42.240 and and uh there you go it looks almost 00:14:42.240 --> 00:14:42.959 the same 00:14:42.959 --> 00:14:46.560 right uh notice that the main argument 00:14:46.560 --> 00:14:49.680 is right here def block took an author 00:14:49.680 --> 00:14:52.480 and here's the author again and now the 00:14:52.480 --> 00:14:53.920 optional argument 00:14:53.920 --> 00:14:57.360 uses the org babel source interface you 00:14:57.360 --> 00:14:58.000 just say 00:14:58.000 --> 00:15:00.639 colon and then a key and then the 00:15:00.639 --> 00:15:01.440 argument 00:15:01.440 --> 00:15:05.040 quite quite nice and and corwin doesn't 00:15:05.040 --> 00:15:05.519 want to 00:15:05.519 --> 00:15:07.920 use blocks it's a bit of an overkill and 00:15:07.920 --> 00:15:09.760 can just write a 00:15:09.760 --> 00:15:12.959 a little um right 00:15:12.959 --> 00:15:16.000 so the main argument is now the uh uh 00:15:16.000 --> 00:15:17.440 the label of the link 00:15:17.440 --> 00:15:19.360 all right and then the description of 00:15:19.360 --> 00:15:21.600 the link is the contents 00:15:21.600 --> 00:15:24.959 of uh of the feedback so that was quite 00:15:24.959 --> 00:15:25.680 nice 00:15:25.680 --> 00:15:28.079 so it looks like uh everyone uses the 00:15:28.079 --> 00:15:29.360 same interface on the left 00:15:29.360 --> 00:15:32.800 and can have varying uh outputs 00:15:32.800 --> 00:15:34.480 and it looks I think it looks quite nice 00:15:34.480 --> 00:15:36.639 and I hope you do too 00:15:36.639 --> 00:15:40.000 um and there's a few more maybe 00:15:40.000 --> 00:15:42.160 as you saw in some previous ones we had 00:15:42.160 --> 00:15:43.920 text side beside side 00:15:43.920 --> 00:15:46.800 right now um or we folded some regions 00:15:46.800 --> 00:15:47.440 away 00:15:47.440 --> 00:15:49.360 that was quite nice we put some things 00:15:49.360 --> 00:15:50.959 in pretty boxes 00:15:50.959 --> 00:15:54.000 um uh we had some spoilers at the very 00:15:54.000 --> 00:15:57.120 beginning that we we uh hit some text uh 00:15:57.120 --> 00:15:58.160 we demoed uh 00:15:58.160 --> 00:15:59.600 some texts right you know here's some 00:15:59.600 --> 00:16:01.680 org and here's what it looks like 00:16:01.680 --> 00:16:04.480 um and and most importantly uh they they 00:16:04.480 --> 00:16:05.199 compose 00:16:05.199 --> 00:16:08.320 right there's uh uh there's a 00:16:08.320 --> 00:16:12.639 a macro called uh uh thread block 00:16:12.639 --> 00:16:14.720 uh thread block a thread block call and 00:16:14.720 --> 00:16:16.160 it lets you thread the 00:16:16.160 --> 00:16:18.000 the contents through a number of blocks 00:16:18.000 --> 00:16:20.639 treating them as if they were functions 00:16:20.639 --> 00:16:22.480 and so really you can think of a block 00:16:22.480 --> 00:16:23.680 as a as a 00:16:23.680 --> 00:16:26.560 as a string valued function so that's 00:16:26.560 --> 00:16:27.360 pretty neat 00:16:27.360 --> 00:16:30.959 I I think and uh thank you for listening 00:16:30.959 --> 00:16:31.759 and uh 00:16:31.759 --> 00:16:34.320 I I hope you've uh enjoyed this little 00:16:34.320 --> 00:16:34.880 uh 00:16:34.880 --> 00:16:37.600 happy fun time with uh with the Emacs 00:16:37.600 --> 00:16:38.160 and friends 00:16:38.160 --> 00:16:40.720 and uh I'll I'm I'll happy happily 00:16:40.720 --> 00:16:41.759 answer questions 00:16:41.759 --> 00:16:43.730 uh right now um 00:16:43.730 --> 00:16:45.360 [Music] 00:16:45.360 --> 00:16:48.160 so uh someone says why did you put 00:16:48.160 --> 00:16:50.480 optional arguments in a separate list 00:16:50.480 --> 00:16:53.600 rather than using cl style argument 00:16:53.600 --> 00:16:54.560 lists 00:16:54.560 --> 00:16:58.399 um so that's a very good question 00:16:58.399 --> 00:17:01.680 and I will answer that by 00:17:01.680 --> 00:17:04.400 showing you a more involved definition 00:17:04.400 --> 00:17:04.880 of 00:17:04.880 --> 00:17:08.959 feedback so let's look at a 00:17:08.959 --> 00:17:13.039 a more involved one 00:17:13.039 --> 00:17:16.079 right right here so for example 00:17:16.079 --> 00:17:19.280 this one is called rural mark all right 00:17:19.280 --> 00:17:21.760 and uh please let me know if my text is 00:17:21.760 --> 00:17:23.439 not sufficiently big 00:17:23.439 --> 00:17:26.799 so here is here is why uh we have 00:17:26.799 --> 00:17:29.520 two arguments that takes two arguments 00:17:29.520 --> 00:17:30.720 uh instead of one 00:17:30.720 --> 00:17:33.360 for for its argument list right so you 00:17:33.360 --> 00:17:34.799 you have def block 00:17:34.799 --> 00:17:37.679 then you have the name right then you 00:17:37.679 --> 00:17:38.400 have 00:17:38.400 --> 00:17:40.960 the first uh argument list and the 00:17:40.960 --> 00:17:42.880 second argument list 00:17:42.880 --> 00:17:46.080 the first argument list uh takes the 00:17:46.080 --> 00:17:49.280 takes the text right after the begin 00:17:49.280 --> 00:17:51.760 right the text right after the begin is 00:17:51.760 --> 00:17:52.320 the main 00:17:52.320 --> 00:17:55.760 argument okay and then the remaining key 00:17:55.760 --> 00:17:57.039 value pairs 00:17:57.039 --> 00:18:00.320 are in the second argument list okay 00:18:00.320 --> 00:18:03.280 now the reason we have two is because uh 00:18:03.280 --> 00:18:04.640 in order to 00:18:04.640 --> 00:18:06.799 streamline the interface to account for 00:18:06.799 --> 00:18:08.880 both uh special blocks 00:18:08.880 --> 00:18:12.320 and or link types uh what we do is we 00:18:12.320 --> 00:18:13.360 say hey 00:18:13.360 --> 00:18:16.160 uh in the first argument list uh you can 00:18:16.160 --> 00:18:18.000 give a name to the first argument 00:18:18.000 --> 00:18:21.039 give it a default value and anything 00:18:21.039 --> 00:18:24.240 else you provide will become uh 00:18:24.240 --> 00:18:27.760 uh part of the I'll co link 00:18:27.760 --> 00:18:30.000 information so for example this link we 00:18:30.000 --> 00:18:32.000 decided to make its face 00:18:32.000 --> 00:18:34.799 angry red um you might want to give 00:18:34.799 --> 00:18:35.840 other features to 00:18:35.840 --> 00:18:37.919 links so we're trying to streamline the 00:18:37.919 --> 00:18:39.679 interface for both 00:18:39.679 --> 00:18:42.320 special blocks and org link types and we 00:18:42.320 --> 00:18:42.880 thought 00:18:42.880 --> 00:18:46.240 this way was quite nice um so 00:18:46.240 --> 00:18:49.840 that was the main reason uh someone asks 00:18:49.840 --> 00:18:52.480 uh so if if you uh if that's uh if you 00:18:52.480 --> 00:18:55.039 need if you have follow-up please ask 00:18:55.039 --> 00:18:57.600 someone asks do you intend to try to 00:18:57.600 --> 00:19:00.559 upstream this amazing work into org 00:19:00.559 --> 00:19:03.600 well I'm glad you like it I I don't know 00:19:03.600 --> 00:19:04.559 how to upstream 00:19:04.559 --> 00:19:06.880 but but I I will look into it and any 00:19:06.880 --> 00:19:08.799 advice or guidance would be 00:19:08.799 --> 00:19:11.840 much appreciated um you know 00:19:11.840 --> 00:19:14.640 lisp is awesome and just as defunded as 00:19:14.640 --> 00:19:17.120 a macro deathblock is a macro and then 00:19:17.120 --> 00:19:20.240 source blocks are awesome and then now 00:19:20.240 --> 00:19:21.919 maybe we can have arguments and special 00:19:21.919 --> 00:19:24.080 blocks and motivate and encourage more 00:19:24.080 --> 00:19:25.280 people to uh 00:19:25.280 --> 00:19:28.799 to uh learn lisp right 00:19:28.799 --> 00:19:32.559 so another person asks 00:19:32.559 --> 00:19:35.280 um what is used to produce colorful 00:19:35.280 --> 00:19:38.559 boxes around the cursor 00:19:38.559 --> 00:19:40.400 I I'm not quite sure if you're asking 00:19:40.400 --> 00:19:41.840 are you talking about my cursor right 00:19:41.840 --> 00:19:42.559 here 00:19:42.559 --> 00:19:48.400 or are you talking about in the slide um 00:19:48.400 --> 00:19:50.559 so this this this cursor is some 00:19:50.559 --> 00:19:52.400 application called 00:19:52.400 --> 00:19:55.440 a stream brush that I had to purchase uh 00:19:55.440 --> 00:19:57.679 unfortunately I could not find a a 00:19:57.679 --> 00:19:59.039 suitable free one 00:19:59.039 --> 00:20:02.159 um and the blocks I can demonstrate some 00:20:02.159 --> 00:20:03.840 Emacs list but I can open up my Emacs if 00:20:03.840 --> 00:20:05.679 people like and we can try some things 00:20:05.679 --> 00:20:06.320 out 00:20:06.320 --> 00:20:09.440 happy to do that uh 00:20:09.440 --> 00:20:12.480 you're welcome uh someone asks 00:20:12.480 --> 00:20:14.880 a side question about org reveal how do 00:20:14.880 --> 00:20:15.520 you get 00:20:15.520 --> 00:20:17.440 bespoke or multiple column layouts 00:20:17.440 --> 00:20:19.120 without using html 00:20:19.120 --> 00:20:22.559 ah excellent question that's what we do 00:20:22.559 --> 00:20:24.640 that's that's what this uh project is 00:20:24.640 --> 00:20:26.000 about so it's not 00:20:26.000 --> 00:20:28.960 org reveal it's it's our fancy parallel 00:20:28.960 --> 00:20:29.440 uh 00:20:29.440 --> 00:20:32.240 uh block so we have this thing you say 00:20:32.240 --> 00:20:33.440 begin parallel 00:20:33.440 --> 00:20:35.679 you say how many columns you would like 00:20:35.679 --> 00:20:37.120 uh do you want a bar 00:20:37.120 --> 00:20:39.679 or not and then you write some text and 00:20:39.679 --> 00:20:40.960 then you uh 00:20:40.960 --> 00:20:42.480 you get some text and according with the 00:20:42.480 --> 00:20:44.400 bar or not right so that's 00:20:44.400 --> 00:20:47.520 that's how we achieve that in our slides 00:20:47.520 --> 00:20:50.080 so I'm not uh I'm not quite sure where 00:20:50.080 --> 00:20:52.880 this was 00:20:52.880 --> 00:20:59.520 somewhere here I think 00:20:59.520 --> 00:21:06.240 let me try to find this for you 00:21:06.240 --> 00:21:08.320 I can't seem to find where the parallel 00:21:08.320 --> 00:21:09.440 blocks were 00:21:09.440 --> 00:21:12.159 apologies let's move on to the next 00:21:12.159 --> 00:21:15.039 question I suppose 00:21:15.039 --> 00:21:17.760 uh I'm pretty sure they're here ah there 00:21:17.760 --> 00:21:18.400 they are 00:21:18.400 --> 00:21:21.360 yes so these these uh were just 00:21:21.360 --> 00:21:22.640 instances of using 00:21:22.640 --> 00:21:25.440 uh the parallel block and it makes 00:21:25.440 --> 00:21:26.480 things parallel 00:21:26.480 --> 00:21:29.600 so that's quite nice um another person 00:21:29.600 --> 00:21:33.360 asks uh yes 00:21:33.360 --> 00:21:36.720 excellent um how does this relate to 00:21:36.720 --> 00:21:37.840 banda pandoc 00:21:37.840 --> 00:21:39.360 which is used for converting between 00:21:39.360 --> 00:21:40.960 markup formats 00:21:40.960 --> 00:21:43.919 so all we're doing is we're we're saying 00:21:43.919 --> 00:21:44.400 hey 00:21:44.400 --> 00:21:46.799 please write org because org is just 00:21:46.799 --> 00:21:47.679 fantastic 00:21:47.679 --> 00:21:50.400 and we love it and it's the dream and if 00:21:50.400 --> 00:21:51.760 you would like to view things 00:21:51.760 --> 00:21:55.039 in html or in org reveal or 00:21:55.039 --> 00:21:58.559 in pdf that's up to the user so 00:21:58.559 --> 00:22:02.320 here is a um oh 00:22:02.320 --> 00:22:05.039 made it too small now so here is a an 00:22:05.039 --> 00:22:06.080 example 00:22:06.080 --> 00:22:08.880 so here's an uh how here's how parallel 00:22:08.880 --> 00:22:10.240 is implemented 00:22:10.240 --> 00:22:13.120 uh just as a quick example uh not too 00:22:13.120 --> 00:22:14.320 long 00:22:14.320 --> 00:22:16.880 uh about half of the implementation is 00:22:16.880 --> 00:22:18.400 documentation so 00:22:18.400 --> 00:22:20.720 uh hopefully that speaks for for how 00:22:20.720 --> 00:22:22.720 useful this feature is 00:22:22.720 --> 00:22:25.280 uh so we decide if there's a rule or not 00:22:25.280 --> 00:22:28.080 um we look for the column break 00:22:28.080 --> 00:22:29.760 and really here we're looking at the 00:22:29.760 --> 00:22:31.840 back end if the back end is latex 00:22:31.840 --> 00:22:34.960 uh please use this uh incantation with 00:22:34.960 --> 00:22:37.679 multi columns mini pages what have you 00:22:37.679 --> 00:22:38.559 and if the 00:22:38.559 --> 00:22:41.039 back end is something else uh please uh 00:22:41.039 --> 00:22:41.600 do this 00:22:41.600 --> 00:22:44.960 uh div and style and uh other uh 00:22:44.960 --> 00:22:46.640 gibberish that we don't really wanna 00:22:46.640 --> 00:22:48.080 look at uh so 00:22:48.080 --> 00:22:51.760 uh when you pandoc works from org 00:22:51.760 --> 00:22:55.280 so it might not work directly since our 00:22:55.280 --> 00:22:58.080 interface the way we set it up is when 00:22:58.080 --> 00:22:59.679 you try to export 00:22:59.679 --> 00:23:01.919 uh we hook in and we do a bunch of 00:23:01.919 --> 00:23:03.039 pre-processing 00:23:03.039 --> 00:23:05.919 so this this uh def block is a is a 00:23:05.919 --> 00:23:07.440 string valued function 00:23:07.440 --> 00:23:10.880 and so whenever we see these uh begin 00:23:10.880 --> 00:23:13.919 parallel uh when you do an export 00:23:13.919 --> 00:23:16.480 I tell Emacs hold up look for those 00:23:16.480 --> 00:23:16.960 begin 00:23:16.960 --> 00:23:19.360 parallels please oh you found them grab 00:23:19.360 --> 00:23:20.320 that text 00:23:20.320 --> 00:23:22.400 you grabbed it great now please apply 00:23:22.400 --> 00:23:24.080 this person's uh function 00:23:24.080 --> 00:23:27.120 onto that text and splice in the result 00:23:27.120 --> 00:23:29.760 okay so so when you export uh we're 00:23:29.760 --> 00:23:30.400 performing 00:23:30.400 --> 00:23:33.600 arbitrary computations on your uh uh on 00:23:33.600 --> 00:23:35.120 your text 00:23:35.120 --> 00:23:38.799 so uh um some people might not find that 00:23:38.799 --> 00:23:40.159 comforting to have 00:23:40.159 --> 00:23:43.039 arbitrary uh computations happening so 00:23:43.039 --> 00:23:45.039 in this article there's a few where 00:23:45.039 --> 00:23:47.520 uh we change your text upon export we 00:23:47.520 --> 00:23:48.320 translate it 00:23:48.320 --> 00:23:51.760 we do other things to it um 00:23:51.760 --> 00:23:55.360 so someone says uh if you export to 00:23:55.360 --> 00:23:57.360 latex to pdf does that work well with 00:23:57.360 --> 00:23:58.640 beamer as well 00:23:58.640 --> 00:24:00.320 to create slides with columns for 00:24:00.320 --> 00:24:02.080 example for uh 00:24:02.080 --> 00:24:05.200 um so uh actually uh 00:24:05.200 --> 00:24:08.000 so uh I I made a bunch of these changes 00:24:08.000 --> 00:24:09.200 earlier this morning 00:24:09.200 --> 00:24:12.320 and it just says latex right here um 00:24:12.320 --> 00:24:14.480 so if you want to go to beamer I think 00:24:14.480 --> 00:24:15.360 the back end for me 00:24:15.360 --> 00:24:18.240 beamer is called well beamer so instead 00:24:18.240 --> 00:24:18.960 of a 00:24:18.960 --> 00:24:21.200 a p case what we would do is we would 00:24:21.200 --> 00:24:22.000 say oh 00:24:22.000 --> 00:24:25.360 if it's a latex or it's a beamer 00:24:25.360 --> 00:24:29.279 then uh use this uh otherwise 00:24:29.279 --> 00:24:31.120 it's not a latex it will simply default 00:24:31.120 --> 00:24:33.039 to this one which could be 00:24:33.039 --> 00:24:36.400 dangerous for your needs um I think it's 00:24:36.400 --> 00:24:39.679 a bad practice to put a underscore but I 00:24:39.679 --> 00:24:41.279 did it really quickly because I just 00:24:41.279 --> 00:24:43.679 wanted to show you that it works fine in 00:24:43.679 --> 00:24:46.559 org reveal contributions are more than 00:24:46.559 --> 00:24:47.440 welcome 00:24:47.440 --> 00:24:51.039 I I uh happily uh would love any 00:24:51.039 --> 00:24:52.240 assistance 00:24:52.240 --> 00:24:56.080 um and and I have a uh we have a 00:24:56.080 --> 00:24:58.640 list a reference cheat sheet here to to 00:24:58.640 --> 00:25:00.159 learn a little bit about lisp if you're 00:25:00.159 --> 00:25:02.000 not comfortable or to 00:25:02.000 --> 00:25:04.640 ask some questions lots of helpful 00:25:04.640 --> 00:25:06.400 people 00:25:06.400 --> 00:25:09.440 so there's another question that says uh 00:25:09.440 --> 00:25:11.679 does typing in a block mess up with a 00:25:11.679 --> 00:25:13.120 syntax highlighting 00:25:13.120 --> 00:25:15.679 usually you use a single color inside an 00:25:15.679 --> 00:25:17.279 example block for example 00:25:17.279 --> 00:25:21.279 ah you found my crutch you found 00:25:21.279 --> 00:25:25.279 my crutch um so I so there's 00:25:25.279 --> 00:25:27.440 emax's is all encompassing and I'm not 00:25:27.440 --> 00:25:29.760 quite sure how fonts work or are 00:25:29.760 --> 00:25:32.559 you know I I learned enough to get by I 00:25:32.559 --> 00:25:33.840 learned enough to get by 00:25:33.840 --> 00:25:37.440 so let me um but here's 00:25:37.440 --> 00:25:39.760 here's how links work they're they're a 00:25:39.760 --> 00:25:40.799 bit complicated 00:25:40.799 --> 00:25:42.960 this this is a bit scary I don't 00:25:42.960 --> 00:25:43.919 recommend anyone 00:25:43.919 --> 00:25:47.039 uh read it um 00:25:47.039 --> 00:25:49.840 but uh actually let me open up an email 00:25:49.840 --> 00:25:50.559 and you can 00:25:50.559 --> 00:25:53.600 you can see what I see uh so here's an 00:25:53.600 --> 00:25:54.799 Emacs 00:25:54.799 --> 00:25:56.799 all right let's make that a bit bigger 00:25:56.799 --> 00:25:58.400 uh let's change this 00:25:58.400 --> 00:26:01.200 slightly nope that's worse there you go 00:26:01.200 --> 00:26:01.919 so 00:26:01.919 --> 00:26:05.760 here's here's some words um so here's 00:26:05.760 --> 00:26:09.360 red hello um 00:26:09.360 --> 00:26:12.000 but you're worried about uh preserving 00:26:12.000 --> 00:26:12.400 uh 00:26:12.400 --> 00:26:15.679 uh uh um quantification 00:26:15.679 --> 00:26:18.480 so let's make an emax list block all 00:26:18.480 --> 00:26:18.880 right 00:26:18.880 --> 00:26:22.840 and let's say plus one two ah 00:26:22.840 --> 00:26:28.000 where's the fun hello 00:26:28.000 --> 00:26:32.080 um bye okay where's the coloring 00:26:32.080 --> 00:26:34.880 if we if we zoom in on this on this 00:26:34.880 --> 00:26:36.000 begin source block 00:26:36.000 --> 00:26:39.200 if we zoom in you can see down here 00:26:39.200 --> 00:26:42.159 uh we have our our coloring all right 00:26:42.159 --> 00:26:43.279 when we zoom in 00:26:43.279 --> 00:26:46.960 if we if we zoom out ah no coloring 00:26:46.960 --> 00:26:50.080 zoom in coloring it's about ah no 00:26:50.080 --> 00:26:50.880 coloring 00:26:50.880 --> 00:26:53.840 let's take off these bad boys and oh 00:26:53.840 --> 00:26:55.679 look my coloring's back 00:26:55.679 --> 00:26:59.360 so um in a previous 00:26:59.360 --> 00:27:02.320 uh iteration of the system I was able to 00:27:02.320 --> 00:27:03.760 maintain coloring 00:27:03.760 --> 00:27:06.400 uh in this new iteration I am not I 00:27:06.400 --> 00:27:08.559 don't know how to do it I haven't uh 00:27:08.559 --> 00:27:11.039 had the time to to implement it I spent 00:27:11.039 --> 00:27:13.279 a lot of time writing this uh 00:27:13.279 --> 00:27:17.279 48 page uh documentation uh with uh 00:27:17.279 --> 00:27:19.679 with some fun examples to to to try to 00:27:19.679 --> 00:27:20.320 help 00:27:20.320 --> 00:27:21.760 people learn so but but I would 00:27:21.760 --> 00:27:23.760 appreciate any help or guidance on 00:27:23.760 --> 00:27:26.240 how to uh maintain the quantification I 00:27:26.240 --> 00:27:28.000 I really would like to keep those colors 00:27:28.000 --> 00:27:29.200 in 00:27:29.200 --> 00:27:31.840 um musa we have time for maybe one more 00:27:31.840 --> 00:27:32.640 question 00:27:32.640 --> 00:27:34.960 um one or two more questions and then we 00:27:34.960 --> 00:27:37.039 have to move on to the next talk 00:27:37.039 --> 00:27:39.120 um but yeah you're more than welcome to 00:27:39.120 --> 00:27:40.799 take continue taking the questions via 00:27:40.799 --> 00:27:42.559 irc or the pad 00:27:42.559 --> 00:27:45.760 okay thank you thank you 00:27:45.760 --> 00:27:48.480 let's uh the final question we'll take 00:27:48.480 --> 00:27:48.880 is 00:27:48.880 --> 00:27:52.320 um should packages implement 00:27:52.320 --> 00:27:54.399 interface to one specific format or 00:27:54.399 --> 00:27:55.840 attempt to be conclusive to all the 00:27:55.840 --> 00:27:57.279 potential output targets 00:27:57.279 --> 00:27:58.880 I think you should just make them as you 00:27:58.880 --> 00:28:01.120 go and you know add them as you need 00:28:01.120 --> 00:28:02.559 them we'll make uh 00:28:02.559 --> 00:28:05.600 help requests or things and uh 00:28:05.600 --> 00:28:07.840 we can we can share recipes in this uh 00:28:07.840 --> 00:28:09.279 document and then 00:28:09.279 --> 00:28:12.799 try to add other uh techniques and then 00:28:12.799 --> 00:28:16.000 and we can uh use these blocks as a 00:28:16.000 --> 00:28:19.200 common uh interface for 00:28:19.200 --> 00:28:22.240 for exporting to pdf and other things 00:28:22.240 --> 00:28:26.000 and since someone asked here is a um 00:28:26.000 --> 00:28:28.399 here is uh what a pdf looks like this is 00:28:28.399 --> 00:28:30.159 the same pdf and 00:28:30.159 --> 00:28:33.840 uh rendered uh just I made no effort to 00:28:33.840 --> 00:28:34.960 make it look good 00:28:34.960 --> 00:28:37.840 but it surprisingly does look good so so 00:28:37.840 --> 00:28:38.559 uh that was 00:28:38.559 --> 00:28:41.600 uh that was nice um that was a 00:28:41.600 --> 00:28:44.320 terrible magenta but that is life uh 00:28:44.320 --> 00:28:44.880 anyhow 00:28:44.880 --> 00:28:47.279 I hope you all enjoyed this talk I hope 00:28:47.279 --> 00:28:48.960 you will find um 00:28:48.960 --> 00:28:51.679 death block uh useful to you it is 00:28:51.679 --> 00:28:52.799 available on melbourne 00:28:52.799 --> 00:28:54.960 uh in a rush to make it available for 00:28:54.960 --> 00:28:57.679 EmacsConf 2020 some melba 00:28:57.679 --> 00:29:00.159 guidelines may not have been in here too 00:29:00.159 --> 00:29:00.960 please do not 00:29:00.960 --> 00:29:03.200 hit me um and I hope everyone enjoys the 00:29:03.200 --> 00:29:04.720 rest of the EmacsConf 00:29:04.720 --> 00:29:08.559 2020 thank you