summaryrefslogtreecommitdiffstats
path: root/2023/info/one-after.md
blob: e7b63c57cd6173bde7469948e4c369e30959a4d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
<!-- Automatically generated by emacsconf-publish-after-page -->


<a name="one-mainVideo-transcript"></a>
# Transcript


[[!template new="1" text="""Introduction""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]]

[[!template text="""Hi, everybody. Welcome to the EmacsConf 2023.""" start="00:00:00.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""I hope you're doing well and you're having fun.""" start="00:00:04.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""I'm Tony Aldon, and in this talk,""" start="00:00:06.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""we are going to see how to build a static website""" start="00:00:08.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""with the package one.el that I wrote.""" start="00:00:11.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""But before we start, I'd like to thank""" start="00:00:14.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""all the people who organized that conference,""" start="00:00:17.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""so thank you all for the great work.""" start="00:00:20.560" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Documentation""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now let's jump into the documentation of one.el,""" start="00:00:24.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is built with one.el. In the install page,""" start="00:00:27.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""we can see that we have a sidebar""" start="00:00:31.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""with all of the pages in the documentation,""" start="00:00:33.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""some buttons to switch between pages,""" start="00:00:35.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we also have a table of contents""" start="00:00:39.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""for some of the pages if we need it.""" start="00:00:41.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now let's jump into one.el repository""" start="00:00:45.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""and see why I like how it is implemented,""" start="00:00:49.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""because the website that we've seen,""" start="00:00:52.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""the documentation, is just one file.""" start="00:00:53.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is that file, with the headline of level 1""" start="00:00:55.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""being the web pages.""" start="00:01:00.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""There needs to be a web page to have the property,""" start="00:01:03.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""the Org property `:ONE:`, set to a render function.""" start="00:01:06.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""We are going to see how they work after.""" start="00:01:09.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""And the `:CUSTOM_ID:`, the value of the `:CUSTOM_ID:`,""" start="00:01:11.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""is the path of the page. So really,""" start="00:01:14.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""the website that we have on the left""" start="00:01:17.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""is this file. So to me, this is something simple like that""" start="00:01:20.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""that I wanted.""" start="00:01:24.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""And another thing is that when we want to""" start="00:01:25.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""change something with one.el,""" start="00:01:29.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""we don't change configuration""" start="00:01:33.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""or write JavaScript or anything else.""" start="00:01:36.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""We just write Emacs Lisp code or a bit of CSS.""" start="00:01:38.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is what we have with a minibuffer website""" start="00:01:43.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""that is built with one.el,""" start="00:01:45.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the only thing that I had to do""" start="00:01:47.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""is to write Emacs Lisp code.""" start="00:01:50.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""So those are two things: the content in one file,""" start="00:01:51.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""and if we want to change the layout, CSS and Emacs Lisp.""" start="00:01:55.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is one.el.""" start="00:01:58.680" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Starting a new project""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now let's go to our node,""" start="00:02:02.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we are going to start a new project.""" start="00:02:03.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""How do we do that?""" start="00:02:07.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""In a new empty directory,""" start="00:02:09.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""so new project directory,""" start="00:02:11.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""we call the function `one-default-new-project`.""" start="00:02:15.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""We have that project, which is one file with the""" start="00:02:19.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""five default type of pages that we have,""" start="00:02:22.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""and one CSS file.""" start="00:02:25.760" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Building""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]]

[[!template text="""How to build that website?""" start="00:02:27.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""Okay, so we call the function `one-build`.""" start="00:02:29.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""This builds the website.""" start="00:02:32.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""We jump into a terminal, and now if we run tree,""" start="00:02:33.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""we can see that the website""" start="00:02:36.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""has been built in the public directory""" start="00:02:39.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""with the information in the Org properties""" start="00:02:42.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the content of one.org files. Okay, cool.""" start="00:02:45.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now we are going to render that in the browser""" start="00:02:50.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""to serve that, and to do that""" start="00:02:53.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""we can use browser-sync utility,""" start="00:02:58.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is cool with that,""" start="00:03:01.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""in that each time we are going to...""" start="00:03:02.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we go into public...""" start="00:03:06.420" video="mainVideo-one" id="subtitle"]]
[[!template text="""Each time we are going to change and rebuild the website,""" start="00:03:07.861" video="mainVideo-one" id="subtitle"]]
[[!template text="""this will be reloaded in the browser.""" start="00:03:11.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""So one, this is that website, is now this one.""" start="00:03:14.320" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Side by side""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]]

[[!template text="""So let's put them side by side.""" start="00:03:19.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""We go there, and we may do something like that.""" start="00:03:22.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""So one.el, the home page, so our custom ID""" start="00:03:26.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""with the value just a /,""" start="00:03:30.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""is rendered with that function `one-default-home`,""" start="00:03:32.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is a render function,""" start="00:03:36.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the first argument of that function is the headline,""" start="00:03:37.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""this current headline. So, parsed with the Org parser,""" start="00:03:41.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""and then we do the thing that we want to do,""" start="00:03:45.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the render function returns an HTML string""" start="00:03:48.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""that is used to build the pages at the custom ID.""" start="00:03:52.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now we can go to another web page, the second web page,""" start="00:03:57.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see that there is a different value""" start="00:04:03.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""for the `:ONE:` property, so another render function,""" start="00:04:05.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the custom ID at the path of that page.""" start="00:04:10.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we can see that in the browser.""" start="00:04:14.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is `/blog/default-home-list-pages`.""" start="00:04:16.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is that. Now there are three other pages,""" start="00:04:19.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""but we can list that like that.""" start="00:04:23.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""We do a grep in that files,""" start="00:04:25.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see the different default render function.""" start="00:04:28.360" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Writing a render function""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]]

[[!template text="""In the second part of that talk,""" start="00:04:32.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""we are going to write a render function.""" start="00:04:34.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we are going to see that after.""" start="00:04:38.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now maybe we can go to the default page,""" start="00:04:41.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""and let's modify that default page.""" start="00:04:47.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""We see that this uses `one-default` render function,""" start="00:04:50.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now let's write &quot;foo bar baz&quot;.""" start="00:04:54.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""We want to modify the content. We save.""" start="00:04:57.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""We call again one-build distribute,""" start="00:05:00.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see here we have it: foo bar baz in the default page.""" start="00:05:10.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now we can use... When we use one-build,""" start="00:05:16.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""this also copies the files in the asset directory""" start="00:05:19.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""into the public directory.""" start="00:05:23.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is not always what we want to do.""" start="00:05:25.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""Sometimes we just change the content,""" start="00:05:28.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""and for that we can use `one-render-page-at-point`.""" start="00:05:29.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""If we use that one, this just renders the current page.""" start="00:05:34.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we see that we have again &quot;foo bar baz&quot; in the page.""" start="00:05:39.480" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""New page""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now let's add a new page. To add a new page,""" start="00:05:44.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""we just have to copy one of them, maybe the default page.""" start="00:05:47.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""We are going to call it maybe emacsconf-2023.""" start="00:05:52.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""We still use one default render function to render it,""" start="00:05:58.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""but we want to change the path.""" start="00:06:01.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""So the custom ID, we are going to give it /blog""" start="00:06:04.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and emacsconf-2023 with a slash at the end,""" start="00:06:08.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the content... We no longer want this one,""" start="00:06:12.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""but maybe &quot;We're having a lot of fun&quot;.""" start="00:06:18.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we save that, we rebuild with `one-build` this,""" start="00:06:22.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we can look at the top""" start="00:06:28.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and pass it the path `/blog/emacsconf-2023/.""" start="00:06:33.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we have that new page.""" start="00:06:39.280" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Linking between pages""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now, how to link between pages?""" start="00:06:41.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we are going to write a link""" start="00:06:44.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""that links to the last page,""" start="00:06:46.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""so a page with the table of contents.""" start="00:06:48.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""To do that, we just have to use the value of the custom ID,""" start="00:06:50.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and to link to a custom ID inside Org mode,""" start="00:06:54.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""we use the hashtag. We pass it here,""" start="00:06:58.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""then we pass it in the description,""" start="00:07:03.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""so TOC and sidebar,""" start="00:07:07.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now if we press RET inside Emacs,""" start="00:07:09.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""we jump to that page. So this is cool.""" start="00:07:12.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now we build again,""" start="00:07:15.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see that we are going to have""" start="00:07:17.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""the link to the page in the browser.""" start="00:07:19.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this link to the default page with a table of contents,""" start="00:07:22.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""fine, but maybe what we want to do""" start="00:07:27.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""is to link to the &quot;Headline foo&quot; in that page.""" start="00:07:29.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""How do we do that?""" start="00:07:33.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""We do that by adding a custom id.""" start="00:07:34.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""We keep the first part,""" start="00:07:36.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is the page where we are,""" start="00:07:41.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we added hash with foo,""" start="00:07:43.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""so that Headline foo will have the ID &quot;foo&quot;""" start="00:07:46.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""in its H2 tag, HTML tag,""" start="00:07:50.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we can link it here with still custom ID, so &quot;foo&quot;,""" start="00:07:57.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now it's headline... headline with what?""" start="00:08:05.081" video="mainVideo-one" id="subtitle"]]
[[!template text="""Headline foo in TOC page. So we have that.""" start="00:08:10.540" video="mainVideo-one" id="subtitle"]]
[[!template text="""If we press RET, we jump to that headline in Emacs.""" start="00:08:14.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is super cool.""" start="00:08:19.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""And now, if we call `one-build`,""" start="00:08:20.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""we see in the browser""" start="00:08:23.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we have a new link,""" start="00:08:25.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""and this link linked to that specific headline.""" start="00:08:26.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is cool. So we have the link between pages""" start="00:08:30.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""that works inside Emacs""" start="00:08:34.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""and that works well also in the browser.""" start="00:08:36.320" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""CSS""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now let's say that we want to change the CSS.""" start="00:08:40.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we've added a page with specific content,""" start="00:08:44.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we've done some links.""" start="00:08:50.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now we want to modify the CSS file""" start="00:08:51.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is in the asset directory, the one.css.""" start="00:08:55.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""Each time we change it,""" start="00:09:00.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""we want to have live reload""" start="00:09:02.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""that copy that file into the public directory,""" start="00:09:05.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""so the same. We go back here,""" start="00:09:10.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""and there is a utility called `entr`, e-n-t-r.""" start="00:09:14.660" video="mainVideo-one" id="subtitle"]]
[[!template text="""Yes, this one, and using that, so a new terminal,""" start="00:09:18.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""we are at the beginning.""" start="00:09:26.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""This will watch the changing in what.css,""" start="00:09:28.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""and `entr` will copy it into the public directory""" start="00:09:32.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""each time this changes. Let's go back to Org mode,""" start="00:09:35.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""because I chose some color that is cool,""" start="00:09:38.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we go back to the CSS files.""" start="00:09:43.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""We put them side by side, and maybe we go to the new page""" start="00:09:47.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we were changing,""" start="00:09:53.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we are going to change the body,""" start="00:09:55.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""the background color, and maybe we can change""" start="00:10:01.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""with the color that we've just taken.""" start="00:10:03.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we save, and we see the changing happening.""" start="00:10:06.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""We can do it again with the color""" start="00:10:10.220" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we have at the beginning,""" start="00:10:14.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""and this is the user experience""" start="00:10:16.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we have with one.el and the default function.""" start="00:10:18.880" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""How to write a render function""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now that we've seen that,""" start="00:10:23.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""we've done all of that part,""" start="00:10:26.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we are going to see""" start="00:10:30.461" video="mainVideo-one" id="subtitle"]]
[[!template text="""how to write a render function.""" start="00:10:31.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""So let's go. The render function,""" start="00:10:34.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""so one.org, we remember these are the functions""" start="00:10:36.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""that are in the `:ONE:` Org property.""" start="00:10:41.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we are going to remove that part.""" start="00:10:43.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""We no longer want that one. We don't want this.""" start="00:10:45.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""We just keep that. `one-default`,""" start="00:10:49.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""we want this to be the home of our website.""" start="00:10:52.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""We have that. We rebuild,""" start="00:10:55.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we just have one page, and we have that page.""" start="00:10:57.660" video="mainVideo-one" id="subtitle"]]
[[!template text="""We are going to add another page that we call &quot;foo&quot;,""" start="00:11:05.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""and here we pass it the render function foo""" start="00:11:10.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""that doesn't exist yet, and we are going to write it.""" start="00:11:15.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""So maybe with some content, and we copy, copy.""" start="00:11:20.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""We have that. We call it &quot;bar&quot; to have something to show.""" start="00:11:27.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""So here we are. If we build that, so we build it,""" start="00:11:33.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see in the echo area at the bottom""" start="00:11:39.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we have an error &quot;void&quot;,""" start="00:11:42.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is because the function foo doesn't exist.""" start="00:11:43.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""So now we are going to write that function,""" start="00:11:46.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we write it in the onerc.el""" start="00:11:48.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""where we put any Elisp code""" start="00:11:53.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we want to be run""" start="00:11:57.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""each time we build the website or render the pages.""" start="00:11:58.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we want a render function called foo.""" start="00:12:03.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""So that takes three arguments: page-tree, pages, and global.""" start="00:12:06.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""We are going to look at the page-tree in our case,""" start="00:12:10.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the render function return an HTML string.""" start="00:12:16.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is the thing that we want from them.""" start="00:12:19.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""So maybe foo, bar, and baz.""" start="00:12:22.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now this is something well-defined,""" start="00:12:25.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""and with one.org here, the file, we rebuild this,""" start="00:12:28.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we can see now in the browser,""" start="00:12:34.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""if we go to the page foo, that we have &quot;foo bar baz&quot;.""" start="00:12:39.620" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is exactly what we have rendered""" start="00:12:42.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""by the render function that is set,""" start="00:12:45.460" video="mainVideo-one" id="subtitle"]]
[[!template text="""we see at the bottom in the one.org file,""" start="00:12:47.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""in the `:ONE:` property. Now this is HTML, so we can pass it,""" start="00:12:51.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""for instance, h1, the tag h1.""" start="00:12:56.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""We save that file. We go in the one.org file,""" start="00:13:00.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""we build again, and now we see that we have an h1.""" start="00:13:06.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""Okay, this is interesting, but if we would have to""" start="00:13:10.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""build this function with a string like that,""" start="00:13:14.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is boring and not the best way.""" start="00:13:18.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we can use the library Jack,""" start="00:13:22.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""which offers function `jack-html`""" start="00:13:24.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""that takes some data structure,""" start="00:13:27.589" video="mainVideo-one" id="subtitle"]]
[[!template text="""for instance, an h1, a nested list""" start="00:13:31.581" video="mainVideo-one" id="subtitle"]]
[[!template text="""that represents the HTML that we want to render,""" start="00:13:34.180" video="mainVideo-one" id="subtitle"]]
[[!template text="""and transform it into an HTML string.""" start="00:13:38.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we have that, we saved,""" start="00:13:41.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""we rebuild in the one.org file with `one-build`,""" start="00:13:43.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see now that this has been built using `jack-html`.""" start="00:13:48.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now what do we want to do?""" start="00:13:55.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""Okay, see, the thing that we want to do""" start="00:13:59.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""is to understand page-tree. So what is page-tree?""" start="00:14:02.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""page-tree is when we go to one.org,""" start="00:14:05.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is really for foo,""" start="00:14:07.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is the parsed data of that headline, that page.""" start="00:14:09.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""So this is done with, no, not this one, we use,""" start="00:14:17.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""so in the mini-buffer, we use `one-parse-buffer`,""" start="00:14:23.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see this is the data""" start="00:14:27.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we have with that function, first headline,""" start="00:14:30.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the second headline,""" start="00:14:33.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is the parse tree that we have there.""" start="00:14:34.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is that data that is passed to""" start="00:14:38.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""the `foo` render function. One thing that is cool,""" start="00:14:40.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""so I see here, is that as we are dealing with data,""" start="00:14:45.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""we have all the data of the website,""" start="00:14:51.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""we can show them in the web page. Now, why not?""" start="00:14:53.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""It's great to write the website""" start="00:14:57.361" video="mainVideo-one" id="subtitle"]]
[[!template text="""and also to debug if we need to debug at some point.""" start="00:15:00.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""So let's render page-tree directly in the page, one.org,""" start="00:15:02.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we rebuild, we reload, and we see this is what we have,""" start="00:15:10.280" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is the data that we have, okay?""" start="00:15:15.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""And we have, for instance, the `:raw-value` with this &quot;foo&quot;,""" start="00:15:17.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""which is the headline,""" start="00:15:20.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""the content of the headline in a raw format,""" start="00:15:22.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we also have custom,""" start="00:15:27.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""so here we have the `:CUSTOM_ID: foo` and `:ONE: foo`,""" start="00:15:29.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""which are the properties,""" start="00:15:33.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""and when we are inside those render functions,""" start="00:15:35.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""we have access to this.""" start="00:15:40.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""So let's, what can we do now, is to,""" start="00:15:43.241" video="mainVideo-one" id="subtitle"]]
[[!template text="""let's get the row value.""" start="00:15:46.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""So we no longer need that.""" start="00:15:48.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""Maybe we can do something like that.""" start="00:15:51.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""We create now HTML. In HTML, we want the body,""" start="00:15:54.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""we want an h1 tag, and we are going to pass it""" start="00:16:04.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""a title, and in the title,""" start="00:16:08.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""this is something that we let-bind here,""" start="00:16:10.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""so the value of the title,""" start="00:16:13.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""we get it with `org-element-property`,""" start="00:16:15.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the `:raw-value`, so this is the property that we want,""" start="00:16:24.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""so `raw-value`, and from which data we want that,""" start="00:16:29.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""to page-tree. So now, let's have one.org at the bottom,""" start="00:16:34.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""we build again, and now we reload,""" start="00:16:40.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we see that we get a foo. This is that title,""" start="00:16:46.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""the value of that variable in that data structure.""" start="00:16:50.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now, let's get those two properties.""" start="00:16:56.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""How do we get those two properties?""" start="00:17:00.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""The same way, `:ONE:` that we call one, so raw-value,""" start="00:17:03.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""we change that for `:ONE`, the other raw-value""" start="00:17:07.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""for `:CUSTOM_ID`, we change the title for `custom-id`,""" start="00:17:11.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""and what we want now is for instance,""" start="00:17:19.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""yes, h1 again, and org properties.""" start="00:17:23.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""We add the org properties, and let's do a list,""" start="00:17:30.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""another list, with li element, one,""" start="00:17:34.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""we want that value, and that value will be""" start="00:17:39.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""the value of the variable one.""" start="00:17:43.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""We can do that with also custom-id,""" start="00:17:45.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now, in the one that we have to save,""" start="00:17:52.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""and in one of our files, not like that,""" start="00:17:56.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""we rebuild that, and we see""" start="00:17:59.440" video="mainVideo-one" id="subtitle"]]
[[!template text="""that we can get those properties.""" start="00:18:03.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is super cool.""" start="00:18:05.800" video="mainVideo-one" id="subtitle"]]
[[!template text="""As we are dealing with data,""" start="00:18:07.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we have the information of the whole website,""" start="00:18:09.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""we can do whatever we want,""" start="00:18:11.720" video="mainVideo-one" id="subtitle"]]
[[!template text="""because we have access to that data.""" start="00:18:14.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""Let's, for instance, add a date, the date of 2023,""" start="00:18:16.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""so I think this is 02, when there is the conference, see,""" start="00:18:23.840" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we can get access to that `one` again,""" start="00:18:28.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""here, so `date`, and we go,""" start="00:18:32.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""we change the `:CUSTOM_ID` with the `:DATE`,""" start="00:18:37.955" video="mainVideo-one" id="subtitle"]]
[[!template text="""and in the list here,""" start="00:18:42.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""so we want in the list, this to be the date,""" start="00:18:46.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we build again that,""" start="00:18:53.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we have access to the date.""" start="00:18:56.560" video="mainVideo-one" id="subtitle"]]
[[!template text="""Really, we can do whatever we want.""" start="00:18:58.800" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Rendering content""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]]

[[!template text="""Now, we want the content. So far,""" start="00:19:03.200" video="mainVideo-one" id="subtitle"]]
[[!template text="""we get the property, but what about the content,""" start="00:19:06.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""so h1, and now we put &quot;Org content&quot;,""" start="00:19:11.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and this is going to be something in the variable content,""" start="00:19:17.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we have to add that variable,""" start="00:19:21.360" video="mainVideo-one" id="subtitle"]]
[[!template text="""so in the let binding, we write our content,""" start="00:19:25.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""we are going to have that content from the page-tree.""" start="00:19:28.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""To do that, we use `org-export`,""" start="00:19:30.640" video="mainVideo-one" id="subtitle"]]
[[!template text="""so we need to export something into HTML,""" start="00:19:33.680" video="mainVideo-one" id="subtitle"]]
[[!template text="""we export the data with the backend.""" start="00:19:36.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""So the data that we want is page-tree,""" start="00:19:37.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""but we don't want the first headline,""" start="00:19:40.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""so we use `org-element-contents`,""" start="00:19:42.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we pass it `page-tree`, so this is that.""" start="00:19:46.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""But for the exported, we need to pass it,""" start="00:19:50.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""and also, how do we call that, we call that an Org backend.""" start="00:19:53.120" video="mainVideo-one" id="subtitle"]]
[[!template text="""So `one-ox` is our backend provided by one.el,""" start="00:20:00.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and the last argument is nil.""" start="00:20:06.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""We are almost done. Now with one.org,""" start="00:20:09.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""we build the website, and we see that we have an error,""" start="00:20:14.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""it's because this is not a content,""" start="00:20:18.880" video="mainVideo-one" id="subtitle"]]
[[!template text="""so there.. No, okay,""" start="00:20:22.080" video="mainVideo-one" id="subtitle"]]
[[!template text="""there was this `org-element-contents`, I think,""" start="00:20:27.040" video="mainVideo-one" id="subtitle"]]
[[!template text="""and now we build it, and we must see it here.""" start="00:20:32.840" video="mainVideo-one" id="subtitle"]]

[[!template new="1" text="""Rendering CSS""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]]

[[!template text="""So we have the content,""" start="00:20:37.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""we have the Org values,""" start="00:20:39.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""and last thing that we can do maybe is to put some CSS.""" start="00:20:43.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""Let's have a look to `one-default` function.""" start="00:20:48.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""We can see in one.el file that we have a lot of""" start="00:20:51.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""default functions that we can use to take inspiration.""" start="00:20:56.400" video="mainVideo-one" id="subtitle"]]
[[!template text="""The last thing that we need""" start="00:21:01.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""is to link to the one.css file,""" start="00:21:05.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""so we are going to do that `onerc` file.""" start="00:21:08.000" video="mainVideo-one" id="subtitle"]]
[[!template text="""This is here, so `html` we don't need,""" start="00:21:14.920" video="mainVideo-one" id="subtitle"]]
[[!template text="""we have that one, we want the head to be here,""" start="00:21:20.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we pass it a class, which is a title,""" start="00:21:26.480" video="mainVideo-one" id="subtitle"]]
[[!template text="""a div with the class content. We have that.""" start="00:21:37.320" video="mainVideo-one" id="subtitle"]]
[[!template text="""Now with one.org, we build it again,""" start="00:21:42.240" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we should see the website render with the CSS,""" start="00:21:46.160" video="mainVideo-one" id="subtitle"]]
[[!template text="""the property, and all the content,""" start="00:21:50.600" video="mainVideo-one" id="subtitle"]]
[[!template text="""and we've done that just with that Emacs Lisp file,""" start="00:21:56.760" video="mainVideo-one" id="subtitle"]]
[[!template text="""so this is all I wanted to show you today with one.el,""" start="00:22:01.520" video="mainVideo-one" id="subtitle"]]
[[!template text="""I hope you enjoyed the talk, and have a nice day,""" start="00:22:08.960" video="mainVideo-one" id="subtitle"]]
[[!template text="""and a nice conference.""" start="00:22:14.880" video="mainVideo-one" id="subtitle"]]



Captioner: sachac

<a name="one-qanda-transcript"></a>
# Q&A transcript (unedited)

[[!template text="""[Speaker 0]: So, will you, when I'm looking at my,""" start="00:00:00.459" video="qanda-one" id="subtitle"]]
[[!template text="""the other screen, I don't see the chat,""" start="00:00:06.279" video="qanda-one" id="subtitle"]]
[[!template text="""so maybe someone can tell me.""" start="00:00:08.480" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: It's fine, don't worry about it,""" start="00:00:11.259" video="qanda-one" id="subtitle"]]
[[!template text="""and we are live. So hi again everyone.""" start="00:00:12.360" video="qanda-one" id="subtitle"]]
[[!template text="""Hi Tony, how are you doing?""" start="00:00:15.060" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Really well, and you?""" start="00:00:17.040" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: I am doing fantastically,""" start="00:00:19.440" video="qanda-one" id="subtitle"]]
[[!template text="""as fantastically as I can be doing,""" start="00:00:21.380" video="qanda-one" id="subtitle"]]
[[!template text="""having to put out fire in the background""" start="00:00:24.099" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Cool!""" start="00:00:30.140" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: during MaxConf. But I'm doing great! Alright,""" start="00:00:25.840" video="qanda-one" id="subtitle"]]
[[!template text="""Let me just try to set up everything so that""" start="00:00:31.640" video="qanda-one" id="subtitle"]]
[[!template text="""I can show the questions and all this.""" start="00:00:34.960" video="qanda-one" id="subtitle"]]
[[!template text="""Do you mind if I read you the question?""" start="00:00:37.260" video="qanda-one" id="subtitle"]]
[[!template text="""It might be a little more interactive and""" start="00:00:38.600" video="qanda-one" id="subtitle"]]
[[!template text="""this way you can focus on either presenting""" start="00:00:39.960" video="qanda-one" id="subtitle"]]
[[!template text="""stuff on your end.""" start="00:00:42.800" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, tell me what are the questions and what""" start="00:00:44.059" video="qanda-one" id="subtitle"]]
[[!template text="""to do and I will do that.""" start="00:00:48.680" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Okay great so what I'll do,""" start="00:00:53.420" video="qanda-one" id="subtitle"]]
[[!template text="""I'll invite people to go to the pad and ask""" start="00:00:56.400" video="qanda-one" id="subtitle"]]
[[!template text="""questions because it was a very interesting""" start="00:00:58.580" video="qanda-one" id="subtitle"]]
[[!template text="""talk and I'm sure you have plenty of""" start="00:01:00.060" video="qanda-one" id="subtitle"]]
[[!template text="""questions but I only see 1 right now.""" start="00:01:01.480" video="qanda-one" id="subtitle"]]
[[!template text="""Do we have people on BigBlueButton?""" start="00:01:03.460" video="qanda-one" id="subtitle"]]
[[!template text="""Yes we do have people joining right now.""" start="00:01:05.640" video="qanda-one" id="subtitle"]]
[[!template text="""So reading the first question then.""" start="00:01:11.000" video="qanda-one" id="subtitle"]]
[[!template text="""So what's the main motivation for this new""" start="00:01:12.620" video="qanda-one" id="subtitle"]]
[[!template text="""package? I used to use org.yugo""" start="00:01:14.380" video="qanda-one" id="subtitle"]]
[[!template text="""and use GitHub Actions to build a blog.""" start="00:01:16.280" video="qanda-one" id="subtitle"]]
[[!template text="""So can you go in a little bit of details on""" start="00:01:18.340" video="qanda-one" id="subtitle"]]
[[!template text="""this?""" start="00:01:20.600" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, OK. So the main goal,""" start="00:01:21.540" video="qanda-one" id="subtitle"]]
[[!template text="""I didn't want to have,""" start="00:01:30.900" video="qanda-one" id="subtitle"]]
[[!template text="""to, I will push that here.""" start="00:01:33.805" video="qanda-one" id="subtitle"]]
[[!template text="""So my goal was to not have to rely on another""" start="00:01:38.040" video="qanda-one" id="subtitle"]]
[[!template text="""static site generator to produce my website.""" start="00:01:45.060" video="qanda-one" id="subtitle"]]
[[!template text="""So if you use a Yugo, that means that you""" start="00:01:49.920" video="qanda-one" id="subtitle"]]
[[!template text="""take, so this is the website that we've seen""" start="00:01:54.780" video="qanda-one" id="subtitle"]]
[[!template text="""in the talk, this 1. And I didn't want to""" start="00:02:01.960" video="qanda-one" id="subtitle"]]
[[!template text="""have to use a piece of software in Emacs that""" start="00:02:07.880" video="qanda-one" id="subtitle"]]
[[!template text="""translate to some other files to be feed to""" start="00:02:13.320" video="qanda-one" id="subtitle"]]
[[!template text="""another statistic generator because this way""" start="00:02:16.960" video="qanda-one" id="subtitle"]]
[[!template text="""I have 2 things to understand.""" start="00:02:20.680" video="qanda-one" id="subtitle"]]
[[!template text="""I have to understand how that software""" start="00:02:23.680" video="qanda-one" id="subtitle"]]
[[!template text="""translates my files into the other files and""" start="00:02:26.780" video="qanda-one" id="subtitle"]]
[[!template text="""then I have to understand how Hugo works.""" start="00:02:32.440" video="qanda-one" id="subtitle"]]
[[!template text="""So if I want to change something I need to""" start="00:02:37.060" video="qanda-one" id="subtitle"]]
[[!template text="""understand Hugo. So at some point I need to""" start="00:02:39.480" video="qanda-one" id="subtitle"]]
[[!template text="""work with Hugo. So if I need to work with""" start="00:02:43.660" video="qanda-one" id="subtitle"]]
[[!template text="""Hugo, maybe I can work with it directly.""" start="00:02:46.200" video="qanda-one" id="subtitle"]]
[[!template text="""And I wanted also something that was purely""" start="00:02:51.800" video="qanda-one" id="subtitle"]]
[[!template text="""Emacs-centric and working on it,""" start="00:02:56.960" video="qanda-one" id="subtitle"]]
[[!template text="""I found out about that solution.""" start="00:03:03.700" video="qanda-one" id="subtitle"]]
[[!template text="""And I wanted also something that we have only""" start="00:03:05.600" video="qanda-one" id="subtitle"]]
[[!template text="""1 file that have all the entries.""" start="00:03:11.780" video="qanda-one" id="subtitle"]]
[[!template text="""And when I thought about that,""" start="00:03:15.560" video="qanda-one" id="subtitle"]]
[[!template text="""finally I found a way that maybe we can just""" start="00:03:19.140" video="qanda-one" id="subtitle"]]
[[!template text="""use 1 or 3 to pass it the information of the""" start="00:03:22.720" video="qanda-one" id="subtitle"]]
[[!template text="""website. And if you look,""" start="00:03:30.360" video="qanda-one" id="subtitle"]]
[[!template text="""If you just try to work with Gatsby,""" start="00:03:33.405" video="qanda-one" id="subtitle"]]
[[!template text="""Ugo or all those websites,""" start="00:03:37.920" video="qanda-one" id="subtitle"]]
[[!template text="""when you start, you download 10,""" start="00:03:40.940" video="qanda-one" id="subtitle"]]
[[!template text="""20, 30, thousand for hundreds of dependencies""" start="00:03:46.240" video="qanda-one" id="subtitle"]]
[[!template text="""to do. Just to me, I'm a small guy and I just""" start="00:03:53.440" video="qanda-one" id="subtitle"]]
[[!template text="""want to have some documentation on the""" start="00:03:59.620" video="qanda-one" id="subtitle"]]
[[!template text="""website like this 1. It just,""" start="00:04:02.720" video="qanda-one" id="subtitle"]]
[[!template text="""it shouldn't need that much of a dependency.""" start="00:04:05.460" video="qanda-one" id="subtitle"]]
[[!template text="""And if you look at the website,""" start="00:04:09.160" video="qanda-one" id="subtitle"]]
[[!template text="""if you want to hack on something,""" start="00:04:11.460" video="qanda-one" id="subtitle"]]
[[!template text="""you need a lot of to understand how the""" start="00:04:13.540" video="qanda-one" id="subtitle"]]
[[!template text="""config files work. So you need to,""" start="00:04:17.320" video="qanda-one" id="subtitle"]]
[[!template text="""how does it work this config file?""" start="00:04:19.459" video="qanda-one" id="subtitle"]]
[[!template text="""But I want, it's always happened that you""" start="00:04:21.060" video="qanda-one" id="subtitle"]]
[[!template text="""want to add 1 thing or to add that things.""" start="00:04:23.320" video="qanda-one" id="subtitle"]]
[[!template text="""What do you have to do?""" start="00:04:26.420" video="qanda-one" id="subtitle"]]
[[!template text="""You have to, you can't because it's not""" start="00:04:27.780" video="qanda-one" id="subtitle"]]
[[!template text="""offered by the configuration file.""" start="00:04:30.340" video="qanda-one" id="subtitle"]]
[[!template text="""With that solution that I built for me first,""" start="00:04:34.380" video="qanda-one" id="subtitle"]]
[[!template text="""I don't care if I need something else.""" start="00:04:38.920" video="qanda-one" id="subtitle"]]
[[!template text="""I just have to go in that file.""" start="00:04:42.020" video="qanda-one" id="subtitle"]]
[[!template text="""It doesn't need to be that file because as I""" start="00:04:49.840" video="qanda-one" id="subtitle"]]
[[!template text="""am in Emacs if the render functions are""" start="00:04:52.440" video="qanda-one" id="subtitle"]]
[[!template text="""already evaluated they exist and I can use it""" start="00:04:56.120" video="qanda-one" id="subtitle"]]
[[!template text="""but I just have to change that file so if I""" start="00:04:58.940" video="qanda-one" id="subtitle"]]
[[!template text="""want something more I just I go there let's""" start="00:05:02.520" video="qanda-one" id="subtitle"]]
[[!template text="""say so does it answer the question or I""" start="00:05:07.860" video="qanda-one" id="subtitle"]]
[[!template text="""continue to show something?""" start="00:05:10.920" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: It's up to you, I think you are answering the""" start="00:05:14.320" video="qanda-one" id="subtitle"]]
[[!template text="""question. I think you veered off a little bit""" start="00:05:16.060" video="qanda-one" id="subtitle"]]
[[!template text="""from just why not you go but then you kind of""" start="00:05:17.600" video="qanda-one" id="subtitle"]]
[[!template text="""redid part of your presentation to justify""" start="00:05:19.940" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: own system. But stop me if I go because I""" start="00:05:23.480" video="qanda-one" id="subtitle"]]
[[!template text="""used to want to show more things than what""" start="00:05:26.360" video="qanda-one" id="subtitle"]]
[[!template text="""there is in the question.""" start="00:05:29.920" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: why you had to roll your Yeah that's fine.""" start="00:05:21.940" video="qanda-one" id="subtitle"]]
[[!template text="""Just for people who do not know,""" start="00:05:32.080" video="qanda-one" id="subtitle"]]
[[!template text="""we tend to restrict speakers when they submit""" start="00:05:33.340" video="qanda-one" id="subtitle"]]
[[!template text="""a presentation. We tell them,""" start="00:05:35.500" video="qanda-one" id="subtitle"]]
[[!template text="""oh, you can do a flash talk in 10 minutes or""" start="00:05:36.620" video="qanda-one" id="subtitle"]]
[[!template text="""a bit of a longer talk in 20 minutes or 40""" start="00:05:39.000" video="qanda-one" id="subtitle"]]
[[!template text="""minutes. And usually, because we have a lot""" start="00:05:41.100" video="qanda-one" id="subtitle"]]
[[!template text="""of speakers, we have to kind of coerce people""" start="00:05:43.180" video="qanda-one" id="subtitle"]]
[[!template text="""into going to shorter formats and sometimes""" start="00:05:46.260" video="qanda-one" id="subtitle"]]
[[!template text="""it's a lot about killing your darlings.""" start="00:05:48.340" video="qanda-one" id="subtitle"]]
[[!template text="""But just to reassure you,""" start="00:05:51.100" video="qanda-one" id="subtitle"]]
[[!template text="""we're just about to go on a launch break in""" start="00:05:52.360" video="qanda-one" id="subtitle"]]
[[!template text="""about 10 minutes, so you've got the full 10""" start="00:05:54.560" video="qanda-one" id="subtitle"]]
[[!template text="""minutes to use however you want,""" start="00:05:56.840" video="qanda-one" id="subtitle"]]
[[!template text="""but I'll just tell you,""" start="00:05:58.320" video="qanda-one" id="subtitle"]]
[[!template text="""you have a lot of questions so you might want""" start="00:05:59.340" video="qanda-one" id="subtitle"]]
[[!template text="""to perhaps move on to the next 1 as soon as""" start="00:06:01.080" video="qanda-one" id="subtitle"]]
[[!template text="""you can.""" start="00:06:03.400" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes okay so tell me the next 1 and if people""" start="00:06:04.540" video="qanda-one" id="subtitle"]]
[[!template text="""want to stay more I can also stay more.""" start="00:06:08.940" video="qanda-one" id="subtitle"]]
[[!template text="""Right. I understand if people need to go to""" start="00:06:14.240" video="qanda-one" id="subtitle"]]
[[!template text="""lunch, they can, but people that want to""" start="00:06:17.220" video="qanda-one" id="subtitle"]]
[[!template text="""stay, if it's possible,""" start="00:06:19.020" video="qanda-one" id="subtitle"]]
[[!template text="""I'm here to answer any question.""" start="00:06:20.340" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Splendid. All right, so moving on to the next""" start="00:06:24.060" video="qanda-one" id="subtitle"]]
[[!template text="""question. Is it possible to include the""" start="00:06:26.240" video="qanda-one" id="subtitle"]]
[[!template text="""include org tag to add content from other""" start="00:06:29.180" video="qanda-one" id="subtitle"]]
[[!template text="""files. Do you see what I'm talking about?""" start="00:06:31.560" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, so it's not included.""" start="00:06:35.200" video="qanda-one" id="subtitle"]]
[[!template text="""So the idea was really to have only 1 file""" start="00:06:39.380" video="qanda-one" id="subtitle"]]
[[!template text="""and have no options. So if you look at the,""" start="00:06:45.720" video="qanda-one" id="subtitle"]]
[[!template text="""let's go into, so the answer is no,""" start="00:06:49.760" video="qanda-one" id="subtitle"]]
[[!template text="""but if you want, you can write the code that""" start="00:06:52.240" video="qanda-one" id="subtitle"]]
[[!template text="""do it. But let's just go into one.n,""" start="00:06:56.320" video="qanda-one" id="subtitle"]]
[[!template text="""so that files. So this is the files where you""" start="00:07:02.280" video="qanda-one" id="subtitle"]]
[[!template text="""have everything, and there is only 2""" start="00:07:07.900" video="qanda-one" id="subtitle"]]
[[!template text="""dependencies. Maybe we can see that at the""" start="00:07:11.440" video="qanda-one" id="subtitle"]]
[[!template text="""top so which are htmlis on the Jack and the""" start="00:07:13.980" video="qanda-one" id="subtitle"]]
[[!template text="""other are Augment. So for me,""" start="00:07:18.080" video="qanda-one" id="subtitle"]]
[[!template text="""they're not dependencies because they come""" start="00:07:19.840" video="qanda-one" id="subtitle"]]
[[!template text="""with Emacs. But the question is,""" start="00:07:21.820" video="qanda-one" id="subtitle"]]
[[!template text="""can I add other things?""" start="00:07:25.440" video="qanda-one" id="subtitle"]]
[[!template text="""If you look at that, you don't see the orange""" start="00:07:27.440" video="qanda-one" id="subtitle"]]
[[!template text="""color which are viable,""" start="00:07:31.640" video="qanda-one" id="subtitle"]]
[[!template text="""it's because I didn't want any configuration""" start="00:07:33.600" video="qanda-one" id="subtitle"]]
[[!template text="""nor option. So there is no,""" start="00:07:38.440" video="qanda-one" id="subtitle"]]
[[!template text="""if you think about, you are used to use org""" start="00:07:41.960" video="qanda-one" id="subtitle"]]
[[!template text="""export normally and to use all the options""" start="00:07:45.660" video="qanda-one" id="subtitle"]]
[[!template text="""that are possible on all the things they are""" start="00:07:49.540" video="qanda-one" id="subtitle"]]
[[!template text="""not included. You can add them because when""" start="00:07:52.000" video="qanda-one" id="subtitle"]]
[[!template text="""you are in a render function.""" start="00:08:04.900" video="qanda-one" id="subtitle"]]
[[!template text="""So this is the render function that I showed""" start="00:08:07.060" video="qanda-one" id="subtitle"]]
[[!template text="""in the theme. You have a page tree so you""" start="00:08:08.940" video="qanda-one" id="subtitle"]]
[[!template text="""have the information but in the global I""" start="00:08:11.980" video="qanda-one" id="subtitle"]]
[[!template text="""think, yes in global, you can pass anything""" start="00:08:18.358" video="qanda-one" id="subtitle"]]
[[!template text="""you want and if you want you can pass the""" start="00:08:21.020" video="qanda-one" id="subtitle"]]
[[!template text="""parse tree of the whole file.""" start="00:08:24.720" video="qanda-one" id="subtitle"]]
[[!template text="""So if you pass the parse tree of the whole""" start="00:08:28.080" video="qanda-one" id="subtitle"]]
[[!template text="""file, what you can do is that you can get it""" start="00:08:30.840" video="qanda-one" id="subtitle"]]
[[!template text="""there. So I don't have it right now,""" start="00:08:35.400" video="qanda-one" id="subtitle"]]
[[!template text="""but you might have your include stuff and you""" start="00:08:38.659" video="qanda-one" id="subtitle"]]
[[!template text="""get it with a node property that target""" start="00:08:43.980" video="qanda-one" id="subtitle"]]
[[!template text="""something in the global variable.""" start="00:08:48.580" video="qanda-one" id="subtitle"]]
[[!template text="""So if we look just to be short but those 3""" start="00:08:50.940" video="qanda-one" id="subtitle"]]
[[!template text="""parts, the first 1 is page tree.""" start="00:08:55.320" video="qanda-one" id="subtitle"]]
[[!template text="""So it's this page that you are on the right,""" start="00:08:57.180" video="qanda-one" id="subtitle"]]
[[!template text="""pages are a list of all the pages and global""" start="00:08:59.160" video="qanda-one" id="subtitle"]]
[[!template text="""is something that you can set and reset once""" start="00:09:02.840" video="qanda-one" id="subtitle"]]
[[!template text="""and you have the whole part street.""" start="00:09:06.580" video="qanda-one" id="subtitle"]]
[[!template text="""So anything that you add in your op-files""" start="00:09:10.840" video="qanda-one" id="subtitle"]]
[[!template text="""could go in global if you want,""" start="00:09:15.040" video="qanda-one" id="subtitle"]]
[[!template text="""but it's not included.""" start="00:09:16.840" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: All right. I think that's also answering the""" start="00:09:20.600" video="qanda-one" id="subtitle"]]
[[!template text="""question. Can this generate a single file""" start="00:09:23.140" video="qanda-one" id="subtitle"]]
[[!template text="""from different sources like blog.org,""" start="00:09:24.840" video="qanda-one" id="subtitle"]]
[[!template text="""videos.org? I think you've just answered""" start="00:09:26.880" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, I think yes.""" start="00:09:30.040" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: this, right? Right. Okay.""" start="00:09:28.820" video="qanda-one" id="subtitle"]]
[[!template text="""So moving on to the other question.""" start="00:09:32.660" video="qanda-one" id="subtitle"]]
[[!template text="""Do you have pre-made templates already along""" start="00:09:34.660" video="qanda-one" id="subtitle"]]
[[!template text="""with the 1.el package?""" start="00:09:37.200" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: So, yes and no. So, The answer is if we go to""" start="00:09:41.680" video="qanda-one" id="subtitle"]]
[[!template text="""1.n, so this file, so the first are blah,""" start="00:09:49.960" video="qanda-one" id="subtitle"]]
[[!template text="""blah, blah. How it works,""" start="00:09:55.520" video="qanda-one" id="subtitle"]]
[[!template text="""so, okay, so you have the 1-hocs,""" start="00:10:01.780" video="qanda-one" id="subtitle"]]
[[!template text="""which is what can translate the org parse""" start="00:10:07.200" video="qanda-one" id="subtitle"]]
[[!template text="""tree into HTML. So this is for the content of""" start="00:10:11.980" video="qanda-one" id="subtitle"]]
[[!template text="""each page. So this is very useful.""" start="00:10:16.260" video="qanda-one" id="subtitle"]]
[[!template text="""Then we have a bunch of functions that help""" start="00:10:18.480" video="qanda-one" id="subtitle"]]
[[!template text="""to render the function,""" start="00:10:22.660" video="qanda-one" id="subtitle"]]
[[!template text="""each page. And you have a bunch of...""" start="00:10:26.040" video="qanda-one" id="subtitle"]]
[[!template text="""Everything that starts with dash default is a""" start="00:10:31.360" video="qanda-one" id="subtitle"]]
[[!template text="""render function. So there's no template,""" start="00:10:33.920" video="qanda-one" id="subtitle"]]
[[!template text="""but each page that if you want,""" start="00:10:37.480" video="qanda-one" id="subtitle"]]
[[!template text="""so that 1, the home, you can use 1 default""" start="00:10:42.240" video="qanda-one" id="subtitle"]]
[[!template text="""home. So, if you want to list the page,""" start="00:10:46.400" video="qanda-one" id="subtitle"]]
[[!template text="""you have that 1. For a page with no table of""" start="00:10:48.740" video="qanda-one" id="subtitle"]]
[[!template text="""content, you use that thing.""" start="00:10:53.220" video="qanda-one" id="subtitle"]]
[[!template text="""And if you go back to be short,""" start="00:10:55.840" video="qanda-one" id="subtitle"]]
[[!template text="""if we go there, I put this like that.""" start="00:10:58.260" video="qanda-one" id="subtitle"]]
[[!template text="""So this that we see here is the first inline""" start="00:11:03.900" video="qanda-one" id="subtitle"]]
[[!template text="""of 1.org. By the way, it doesn't have to be""" start="00:11:09.960" video="qanda-one" id="subtitle"]]
[[!template text="""called 1.org. It's just as you want,""" start="00:11:14.440" video="qanda-one" id="subtitle"]]
[[!template text="""but maybe we can call it.""" start="00:11:17.160" video="qanda-one" id="subtitle"]]
[[!template text="""So default, what was the other 1?""" start="00:11:20.740" video="qanda-one" id="subtitle"]]
[[!template text="""Default with sidebar. Or is it default with""" start="00:11:23.220" video="qanda-one" id="subtitle"]]
[[!template text="""sidebar or default? Yes,""" start="00:11:28.280" video="qanda-one" id="subtitle"]]
[[!template text="""with sidebar. Sidebar,""" start="00:11:30.080" video="qanda-one" id="subtitle"]]
[[!template text="""if it's worked correctly.""" start="00:11:36.400" video="qanda-one" id="subtitle"]]
[[!template text="""Okay, so, okay, so I don't know why the CSS""" start="00:11:39.140" video="qanda-one" id="subtitle"]]
[[!template text="""is not working correctly.""" start="00:11:46.760" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: It's okay. It wouldn't be a live demo without""" start="00:11:50.740" video="qanda-one" id="subtitle"]]
[[!template text="""problems occurring at some point.""" start="00:11:53.860" video="qanda-one" id="subtitle"]]
[[!template text="""Okay.""" start="00:11:55.440" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: But so maybe we can use this 1.""" start="00:11:56.980" video="qanda-one" id="subtitle"]]
[[!template text="""Or we stuck. So we are going to use this 1,""" start="00:12:02.940" video="qanda-one" id="subtitle"]]
[[!template text="""we've talked this 1, but maybe better in this""" start="00:12:06.980" video="qanda-one" id="subtitle"]]
[[!template text="""1 that add something. So we build it again""" start="00:12:16.020" video="qanda-one" id="subtitle"]]
[[!template text="""and now, oh, come on. We have it and we have""" start="00:12:20.340" video="qanda-one" id="subtitle"]]
[[!template text="""the, sorry, if we have just default,""" start="00:12:32.180" video="qanda-one" id="subtitle"]]
[[!template text="""we rebuild and now this is the default layer""" start="00:12:37.820" video="qanda-one" id="subtitle"]]
[[!template text="""that if we do with table of content,""" start="00:12:41.120" video="qanda-one" id="subtitle"]]
[[!template text="""you have it, you have the default content.""" start="00:12:46.060" video="qanda-one" id="subtitle"]]
[[!template text="""So how to change, and they are not template.""" start="00:12:48.620" video="qanda-one" id="subtitle"]]
[[!template text="""They are render functions that takes your""" start="00:12:53.940" video="qanda-one" id="subtitle"]]
[[!template text="""page as a tree and render HTML string.""" start="00:13:00.300" video="qanda-one" id="subtitle"]]
[[!template text="""So you can build any function that you want.""" start="00:13:06.260" video="qanda-one" id="subtitle"]]
[[!template text="""So yes, I think that answers the question.""" start="00:13:10.600" video="qanda-one" id="subtitle"]]
[[!template text="""There is no template like in other systems.""" start="00:13:12.280" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Cool, that makes sense.""" start="00:13:17.780" video="qanda-one" id="subtitle"]]
[[!template text="""We have 2 more questions and then we'll need""" start="00:13:19.020" video="qanda-one" id="subtitle"]]
[[!template text="""to go on a lunch break.""" start="00:13:21.000" video="qanda-one" id="subtitle"]]
[[!template text="""I don't see anyone join the room.""" start="00:13:22.200" video="qanda-one" id="subtitle"]]
[[!template text="""Remember, Tony has said that he would be""" start="00:13:23.740" video="qanda-one" id="subtitle"]]
[[!template text="""willing to answer more questions during the""" start="00:13:25.640" video="qanda-one" id="subtitle"]]
[[!template text="""lunch break, perhaps because it's not lunch""" start="00:13:27.500" video="qanda-one" id="subtitle"]]
[[!template text="""break for you. Are you in Europe right now?""" start="00:13:29.120" video="qanda-one" id="subtitle"]]
[[!template text="""So that's why for us, also for me it's very""" start="00:13:32.360" video="qanda-one" id="subtitle"]]
[[!template text="""dark, but it's not lunch break for us,""" start="00:13:34.600" video="qanda-one" id="subtitle"]]
[[!template text="""it's going to be dinner break soon actually.""" start="00:13:37.660" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes. Yes, exactly, so I'm just,""" start="00:13:31.280" video="qanda-one" id="subtitle"]]
[[!template text="""I'm okay.""" start="00:13:44.020" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Right, Okay, so moving on to 1 of the last 2""" start="00:13:45.580" video="qanda-one" id="subtitle"]]
[[!template text="""questions. What additional features are there""" start="00:13:49.200" video="qanda-one" id="subtitle"]]
[[!template text="""that you would like to add to 1.EL""" start="00:13:51.680" video="qanda-one" id="subtitle"]]
[[!template text="""in the future?""" start="00:13:53.960" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, there's only 1, which is a full text""" start="00:13:56.120" video="qanda-one" id="subtitle"]]
[[!template text="""search done in a simple way.""" start="00:14:00.560" video="qanda-one" id="subtitle"]]
[[!template text="""So I don't meet what simple way means,""" start="00:14:06.540" video="qanda-one" id="subtitle"]]
[[!template text="""but when I see something complicated,""" start="00:14:10.320" video="qanda-one" id="subtitle"]]
[[!template text="""it doesn't enter in 1 to me.""" start="00:14:12.620" video="qanda-one" id="subtitle"]]
[[!template text="""So, but really, if you see that,""" start="00:14:15.400" video="qanda-one" id="subtitle"]]
[[!template text="""I would like to have some way.""" start="00:14:19.120" video="qanda-one" id="subtitle"]]
[[!template text="""So, this is the documentation and I would""" start="00:14:22.300" video="qanda-one" id="subtitle"]]
[[!template text="""like to have some way to just have another""" start="00:14:25.080" video="qanda-one" id="subtitle"]]
[[!template text="""function because we are not talking about""" start="00:14:27.500" video="qanda-one" id="subtitle"]]
[[!template text="""those websites on the 1.L.""" start="00:14:31.300" video="qanda-one" id="subtitle"]]
[[!template text="""It's not made for a big company or of your""" start="00:14:34.440" video="qanda-one" id="subtitle"]]
[[!template text="""things, it's just for a random guy that have""" start="00:14:39.520" video="qanda-one" id="subtitle"]]
[[!template text="""a blog or a few blogs and If you are a great""" start="00:14:42.440" video="qanda-one" id="subtitle"]]
[[!template text="""blogger, maybe you are going to write 100 or""" start="00:14:46.200" video="qanda-one" id="subtitle"]]
[[!template text="""200 or 300 pages in many years.""" start="00:14:53.040" video="qanda-one" id="subtitle"]]
[[!template text="""So this enter in that category.""" start="00:14:57.240" video="qanda-one" id="subtitle"]]
[[!template text="""So it's small. So I think it can,""" start="00:15:00.060" video="qanda-one" id="subtitle"]]
[[!template text="""we could find a way to make a full text""" start="00:15:04.080" video="qanda-one" id="subtitle"]]
[[!template text="""search. And that is simple.""" start="00:15:07.580" video="qanda-one" id="subtitle"]]
[[!template text="""I don't need to, to go with,""" start="00:15:10.240" video="qanda-one" id="subtitle"]]
[[!template text="""with solution like Algolia that is,""" start="00:15:13.520" video="qanda-one" id="subtitle"]]
[[!template text="""that works super fine.""" start="00:15:16.620" video="qanda-one" id="subtitle"]]
[[!template text="""But this is something that I don't control""" start="00:15:17.900" video="qanda-one" id="subtitle"]]
[[!template text="""and I have to give them the data and I'm not""" start="00:15:21.600" video="qanda-one" id="subtitle"]]
[[!template text="""against that but it's just that I think with""" start="00:15:26.200" video="qanda-one" id="subtitle"]]
[[!template text="""a bit of work something can be done with full""" start="00:15:29.320" video="qanda-one" id="subtitle"]]
[[!template text="""textile. But this is the only thing that I""" start="00:15:32.800" video="qanda-one" id="subtitle"]]
[[!template text="""would like to add.""" start="00:15:35.600" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Very clear answer. Next question.""" start="00:15:38.720" video="qanda-one" id="subtitle"]]
[[!template text="""Can you create navbars on a website and fancy""" start="00:15:41.580" video="qanda-one" id="subtitle"]]
[[!template text="""things like carousels using 1.EL?""" start="00:15:44.380" video="qanda-one" id="subtitle"]]
[[!template text="""Now carousels is just,""" start="00:15:46.800" video="qanda-one" id="subtitle"]]
[[!template text="""I think, a fancy way to display pictures and""" start="00:15:48.260" video="qanda-one" id="subtitle"]]
[[!template text="""please correct me whoever asked this""" start="00:15:51.820" video="qanda-one" id="subtitle"]]
[[!template text="""question. Otherwise I see you taking notes""" start="00:15:53.800" video="qanda-one" id="subtitle"]]
[[!template text="""for the answers, thank you very much.""" start="00:15:55.440" video="qanda-one" id="subtitle"]]
[[!template text="""But if you could specify maybe carousels so""" start="00:15:56.820" video="qanda-one" id="subtitle"]]
[[!template text="""that Tony and I may get a better idea.""" start="00:15:58.740" video="qanda-one" id="subtitle"]]
[[!template text="""But still, first part of the question,""" start="00:16:01.920" video="qanda-one" id="subtitle"]]
[[!template text="""can you create navbars on a website?""" start="00:16:03.340" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes. So if, for instance,""" start="00:16:05.980" video="qanda-one" id="subtitle"]]
[[!template text="""you see there, to me, it's not a,""" start="00:16:10.900" video="qanda-one" id="subtitle"]]
[[!template text="""it's a navbar. So you already have it.""" start="00:16:14.600" video="qanda-one" id="subtitle"]]
[[!template text="""I didn't show that in the talk,""" start="00:16:19.860" video="qanda-one" id="subtitle"]]
[[!template text="""but the CSS for the default function that""" start="00:16:23.080" video="qanda-one" id="subtitle"]]
[[!template text="""works is responsive. So,""" start="00:16:27.440" video="qanda-one" id="subtitle"]]
[[!template text="""out of the box, if you are using something,""" start="00:16:31.720" video="qanda-one" id="subtitle"]]
[[!template text="""you will have an app bar done for you with""" start="00:16:34.600" video="qanda-one" id="subtitle"]]
[[!template text="""all the pages that you have.""" start="00:16:37.540" video="qanda-one" id="subtitle"]]
[[!template text="""So, if we go to install,""" start="00:16:38.680" video="qanda-one" id="subtitle"]]
[[!template text="""we have that. And if we no longer have that,""" start="00:16:40.920" video="qanda-one" id="subtitle"]]
[[!template text="""we have that sidebar there.""" start="00:16:44.900" video="qanda-one" id="subtitle"]]
[[!template text="""And how it's done. So,""" start="00:16:50.220" video="qanda-one" id="subtitle"]]
[[!template text="""the same way. I like simple fields that are""" start="00:16:52.660" video="qanda-one" id="subtitle"]]
[[!template text="""flexible and I didn't want configuration""" start="00:16:56.380" video="qanda-one" id="subtitle"]]
[[!template text="""because if you want to write the code to""" start="00:16:58.860" video="qanda-one" id="subtitle"]]
[[!template text="""change something you just have to write code.""" start="00:17:01.280" video="qanda-one" id="subtitle"]]
[[!template text="""So any function, render function,""" start="00:17:03.480" video="qanda-one" id="subtitle"]]
[[!template text="""is yours. So you can do whatever you want and""" start="00:17:05.859" video="qanda-one" id="subtitle"]]
[[!template text="""you enter the html that you want to render.""" start="00:17:08.760" video="qanda-one" id="subtitle"]]
[[!template text="""So let's see how do we get that navigation""" start="00:17:11.520" video="qanda-one" id="subtitle"]]
[[!template text="""bar that we have when we do that this is a""" start="00:17:17.920" video="qanda-one" id="subtitle"]]
[[!template text="""CSS stuff. But when we click,""" start="00:17:20.920" video="qanda-one" id="subtitle"]]
[[!template text="""this is a JS stuff that,""" start="00:17:23.099" video="qanda-one" id="subtitle"]]
[[!template text="""so let's go to one.l And maybe this is a""" start="00:17:27.040" video="qanda-one" id="subtitle"]]
[[!template text="""sidebar. Why that function because,""" start="00:17:32.320" video="qanda-one" id="subtitle"]]
[[!template text="""okay. So when that function,""" start="00:17:36.300" video="qanda-one" id="subtitle"]]
[[!template text="""so 1 default sidebar is 1 that is used to do""" start="00:17:40.680" video="qanda-one" id="subtitle"]]
[[!template text="""some of the things at some point,""" start="00:17:45.340" video="qanda-one" id="subtitle"]]
[[!template text="""what we return is a JackHTML that take a data""" start="00:17:47.120" video="qanda-one" id="subtitle"]]
[[!template text="""structure and return a string.""" start="00:17:52.120" video="qanda-one" id="subtitle"]]
[[!template text="""So this is your HTML. So you can see at the""" start="00:17:54.340" video="qanda-one" id="subtitle"]]
[[!template text="""top you have the end, then you have the body,""" start="00:17:57.280" video="qanda-one" id="subtitle"]]
[[!template text="""and if we go at the end we can add a script""" start="00:18:01.120" video="qanda-one" id="subtitle"]]
[[!template text="""thing. So what we've seen with the sidebar""" start="00:18:06.080" video="qanda-one" id="subtitle"]]
[[!template text="""it's just that much line of JavaScript.""" start="00:18:08.920" video="qanda-one" id="subtitle"]]
[[!template text="""So this is the only JavaScript that there is""" start="00:18:11.920" video="qanda-one" id="subtitle"]]
[[!template text="""to get what we have here when we do that.""" start="00:18:17.440" video="qanda-one" id="subtitle"]]
[[!template text="""So you can add whatever you want.""" start="00:18:25.360" video="qanda-one" id="subtitle"]]
[[!template text="""It's code and you're the master of that code.""" start="00:18:29.500" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Splendid, great. So to specify the carousel""" start="00:18:35.280" video="qanda-one" id="subtitle"]]
[[!template text="""stuff that we mentioned before,""" start="00:18:38.800" video="qanda-one" id="subtitle"]]
[[!template text="""it's pictures rolling or sliding from 1 to""" start="00:18:39.860" video="qanda-one" id="subtitle"]]
[[!template text="""the other. It's kind of like having a""" start="00:18:42.520" video="qanda-one" id="subtitle"]]
[[!template text="""gallery, imagine a fancy dynamic gallery""" start="00:18:44.620" video="qanda-one" id="subtitle"]]
[[!template text="""where you can scroll pictures.""" start="00:18:47.540" video="qanda-one" id="subtitle"]]
[[!template text="""Do you see what I'm talking about?""" start="00:18:48.740" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Yes, so that things would just be I think""" start="00:18:50.380" video="qanda-one" id="subtitle"]]
[[!template text="""some javascript added somewhere and I can""" start="00:18:53.620" video="qanda-one" id="subtitle"]]
[[!template text="""show you another website.""" start="00:18:57.620" video="qanda-one" id="subtitle"]]
[[!template text="""So for instance if we go because there are""" start="00:18:59.440" video="qanda-one" id="subtitle"]]
[[!template text="""not all the data of the website are not all""" start="00:19:04.200" video="qanda-one" id="subtitle"]]
[[!template text="""public, but the website they are.""" start="00:19:08.160" video="qanda-one" id="subtitle"]]
[[!template text="""So for instance, a mini-buffer,""" start="00:19:10.140" video="qanda-one" id="subtitle"]]
[[!template text="""it's not a carousel, but at the home page,""" start="00:19:14.480" video="qanda-one" id="subtitle"]]
[[!template text="""we can do whatever we want.""" start="00:19:19.140" video="qanda-one" id="subtitle"]]
[[!template text="""Still those pages, still,""" start="00:19:22.660" video="qanda-one" id="subtitle"]]
[[!template text="""this is only 1 file for each page.""" start="00:19:24.560" video="qanda-one" id="subtitle"]]
[[!template text="""So if we click, we can get those things.""" start="00:19:28.980" video="qanda-one" id="subtitle"]]
[[!template text="""It's just that when we,""" start="00:19:31.720" video="qanda-one" id="subtitle"]]
[[!template text="""for the home page for instance,""" start="00:19:33.420" video="qanda-one" id="subtitle"]]
[[!template text="""when we go back on that home page,""" start="00:19:35.860" video="qanda-one" id="subtitle"]]
[[!template text="""we have the list at that point.""" start="00:19:38.160" video="qanda-one" id="subtitle"]]
[[!template text="""So let's go back to that function that we're,""" start="00:19:40.580" video="qanda-one" id="subtitle"]]
[[!template text="""so not that 1, maybe the 1,""" start="00:19:45.540" video="qanda-one" id="subtitle"]]
[[!template text="""1 different, it's better because that 1 is""" start="00:19:47.740" video="qanda-one" id="subtitle"]]
[[!template text="""simpler. So almost nothing happened.""" start="00:19:50.760" video="qanda-one" id="subtitle"]]
[[!template text="""We have the list of the pages.""" start="00:19:53.620" video="qanda-one" id="subtitle"]]
[[!template text="""So I can do whatever I want with that list.""" start="00:19:56.240" video="qanda-one" id="subtitle"]]
[[!template text="""I can loop over and we can see that 1,""" start="00:20:00.360" video="qanda-one" id="subtitle"]]
[[!template text="""that default home list of pages,""" start="00:20:06.340" video="qanda-one" id="subtitle"]]
[[!template text="""so that list of the pages,""" start="00:20:08.600" video="qanda-one" id="subtitle"]]
[[!template text="""and we see where is the list.""" start="00:20:10.260" video="qanda-one" id="subtitle"]]
[[!template text="""Okay, so this is a, here we have a function""" start="00:20:13.200" video="qanda-one" id="subtitle"]]
[[!template text="""that just, we want the pages,""" start="00:20:17.680" video="qanda-one" id="subtitle"]]
[[!template text="""but I think we, but the home page,""" start="00:20:21.100" video="qanda-one" id="subtitle"]]
[[!template text="""and we have that list,""" start="00:20:24.620" video="qanda-one" id="subtitle"]]
[[!template text="""and then here we do that.""" start="00:20:28.300" video="qanda-one" id="subtitle"]]
[[!template text="""And we get something listed,""" start="00:20:37.740" video="qanda-one" id="subtitle"]]
[[!template text="""But then as you control everything that you""" start="00:20:40.680" video="qanda-one" id="subtitle"]]
[[!template text="""do, you can pass any CSS class that you want""" start="00:20:44.060" video="qanda-one" id="subtitle"]]
[[!template text="""to do those things. So,""" start="00:20:51.820" video="qanda-one" id="subtitle"]]
[[!template text="""for instance, that div,""" start="00:20:53.620" video="qanda-one" id="subtitle"]]
[[!template text="""add the class either. Yes,""" start="00:20:55.260" video="qanda-one" id="subtitle"]]
[[!template text="""you can do. I don't remember the question,""" start="00:21:00.660" video="qanda-one" id="subtitle"]]
[[!template text="""but I think I was answering the right 1.""" start="00:21:02.840" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: No, no, you were answering it.""" start="00:21:05.860" video="qanda-one" id="subtitle"]]
[[!template text="""It was about carousels and about having fancy""" start="00:21:07.260" video="qanda-one" id="subtitle"]]
[[!template text="""display for image galleries.""" start="00:21:09.720" video="qanda-one" id="subtitle"]]
[[!template text="""And I think you've answered.""" start="00:21:11.720" video="qanda-one" id="subtitle"]]
[[!template text="""Basically, you just put your JavaScript,""" start="00:21:12.660" video="qanda-one" id="subtitle"]]
[[!template text="""you embed it inside the code.""" start="00:21:14.160" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Exactly.""" start="00:21:16.620" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: So, other question. Would there be an""" start="00:21:18.620" video="qanda-one" id="subtitle"]]
[[!template text="""automated way to convert an existing HTML""" start="00:21:20.220" video="qanda-one" id="subtitle"]]
[[!template text="""document into a JackHTML form?""" start="00:21:22.860" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Okay, so that 1, I don't have 1.""" start="00:21:28.180" video="qanda-one" id="subtitle"]]
[[!template text="""It's another topic, but maybe there are some""" start="00:21:32.200" video="qanda-one" id="subtitle"]]
[[!template text="""kind of session because some people that""" start="00:21:35.660" video="qanda-one" id="subtitle"]]
[[!template text="""know, that are used to Lisp,""" start="00:21:37.940" video="qanda-one" id="subtitle"]]
[[!template text="""common Lisp or Clojure or other,""" start="00:21:43.080" video="qanda-one" id="subtitle"]]
[[!template text="""Jack-html, that function,""" start="00:21:46.300" video="qanda-one" id="subtitle"]]
[[!template text="""is something classic, but I didn't find,""" start="00:21:50.740" video="qanda-one" id="subtitle"]]
[[!template text="""So I wrote it because I didn't find it""" start="00:21:53.680" video="qanda-one" id="subtitle"]]
[[!template text="""already done the way I want for Emacs.""" start="00:22:00.840" video="qanda-one" id="subtitle"]]
[[!template text="""And this is something for E-cup closure.""" start="00:22:06.040" video="qanda-one" id="subtitle"]]
[[!template text="""So really I take, it's not that I take my""" start="00:22:09.640" video="qanda-one" id="subtitle"]]
[[!template text="""impression, just that when you have something""" start="00:22:13.260" video="qanda-one" id="subtitle"]]
[[!template text="""that exists and you look at how it's done.""" start="00:22:15.060" video="qanda-one" id="subtitle"]]
[[!template text="""So you have a eCup for Crusher,""" start="00:22:20.640" video="qanda-one" id="subtitle"]]
[[!template text="""does the same thing that HTML.""" start="00:22:25.160" video="qanda-one" id="subtitle"]]
[[!template text="""It's more that I do a Jack HTML do what eCup""" start="00:22:26.660" video="qanda-one" id="subtitle"]]
[[!template text="""does, but maybe they do it a better way.""" start="00:22:32.440" video="qanda-one" id="subtitle"]]
[[!template text="""So I think maybe in that community,""" start="00:22:37.800" video="qanda-one" id="subtitle"]]
[[!template text="""it might already exist something that go from""" start="00:22:42.320" video="qanda-one" id="subtitle"]]
[[!template text="""HTML to Jack. So you can see,""" start="00:22:46.320" video="qanda-one" id="subtitle"]]
[[!template text="""is it big enough? I will make it big enough.""" start="00:22:53.640" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: It's good enough, don't worry.""" start="00:22:57.626" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: So if you see- So you have the hash HTML and""" start="00:22:56.820" video="qanda-one" id="subtitle"]]
[[!template text="""you see those things. There are things that I""" start="00:23:01.420" video="qanda-one" id="subtitle"]]
[[!template text="""couldn't do, for instance,""" start="00:23:04.200" video="qanda-one" id="subtitle"]]
[[!template text="""for the ID, I couldn't use the hash in the""" start="00:23:05.460" video="qanda-one" id="subtitle"]]
[[!template text="""name of, of how do we name that,""" start="00:23:09.280" video="qanda-one" id="subtitle"]]
[[!template text="""of the keywords, because it's used for""" start="00:23:14.760" video="qanda-one" id="subtitle"]]
[[!template text="""something else in a Emacs Lisp.""" start="00:23:18.480" video="qanda-one" id="subtitle"]]
[[!template text="""So, I use... Anyway, so you see that you have""" start="00:23:21.180" video="qanda-one" id="subtitle"]]
[[!template text="""that things but in Emacs we don't have the""" start="00:23:25.520" video="qanda-one" id="subtitle"]]
[[!template text="""map with that syntax. We have a hash map but""" start="00:23:30.260" video="qanda-one" id="subtitle"]]
[[!template text="""they are not with that syntax and I wanted""" start="00:23:34.960" video="qanda-one" id="subtitle"]]
[[!template text="""that syntax so we use only list and Here we""" start="00:23:37.120" video="qanda-one" id="subtitle"]]
[[!template text="""have an array with a hash map.""" start="00:23:46.080" video="qanda-one" id="subtitle"]]
[[!template text="""So let me just say, so the question was,""" start="00:23:49.200" video="qanda-one" id="subtitle"]]
[[!template text="""does it exist something?""" start="00:23:52.360" video="qanda-one" id="subtitle"]]
[[!template text="""I think not, but it could be built or maybe""" start="00:23:55.240" video="qanda-one" id="subtitle"]]
[[!template text="""exist for E-Cups, you are interested.""" start="00:23:58.680" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Okay, great. I think that answers the""" start="00:24:03.240" video="qanda-one" id="subtitle"]]
[[!template text="""question perfectly. And our final question,""" start="00:24:04.860" video="qanda-one" id="subtitle"]]
[[!template text="""does this or you use any other Emacs packages""" start="00:24:08.440" video="qanda-one" id="subtitle"]]
[[!template text="""for your packages slash website,""" start="00:24:12.240" video="qanda-one" id="subtitle"]]
[[!template text="""example, or publish? Like,""" start="00:24:14.840" video="qanda-one" id="subtitle"]]
[[!template text="""rephrasing the question,""" start="00:24:17.020" video="qanda-one" id="subtitle"]]
[[!template text="""do you use it for your own personal usage or""" start="00:24:17.960" video="qanda-one" id="subtitle"]]
[[!template text="""do you interact with other packages?""" start="00:24:20.820" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: I'm not sure I understand the question.""" start="00:24:24.120" video="qanda-one" id="subtitle"]]
[[!template text="""Can you please repeat the question?""" start="00:24:26.640" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Yes, I will reread it as it is written and I""" start="00:24:29.820" video="qanda-one" id="subtitle"]]
[[!template text="""will leave you interpret it however you want.""" start="00:24:32.460" video="qanda-one" id="subtitle"]]
[[!template text="""Thank you. Does this or you use any other""" start="00:24:34.760" video="qanda-one" id="subtitle"]]
[[!template text="""Emacs packages for your package slash website""" start="00:24:39.220" video="qanda-one" id="subtitle"]]
[[!template text="""like org-publish?""" start="00:24:43.840" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: No, no, no. I don't use nothing.""" start="00:24:46.620" video="qanda-one" id="subtitle"]]
[[!template text="""I just accept dependency of 1.n.""" start="00:24:49.660" video="qanda-one" id="subtitle"]]
[[!template text="""So, we are in 1.n and we go at the top and we""" start="00:24:57.660" video="qanda-one" id="subtitle"]]
[[!template text="""see that those are the dependencies.""" start="00:25:01.000" video="qanda-one" id="subtitle"]]
[[!template text="""I use nothing. So what I do is that I""" start="00:25:04.820" video="qanda-one" id="subtitle"]]
[[!template text="""publish, I just generate the public""" start="00:25:09.520" video="qanda-one" id="subtitle"]]
[[!template text="""directory. So if we go to public,""" start="00:25:12.620" video="qanda-one" id="subtitle"]]
[[!template text="""this 1, no, I don't want this 1.""" start="00:25:16.500" video="qanda-one" id="subtitle"]]
[[!template text="""I want to go to the website of the video.""" start="00:25:18.240" video="qanda-one" id="subtitle"]]
[[!template text="""If we see here, everything is rendered in the""" start="00:25:23.620" video="qanda-one" id="subtitle"]]
[[!template text="""public. Any services, if you use your own""" start="00:25:27.400" video="qanda-one" id="subtitle"]]
[[!template text="""server and you save those files,""" start="00:25:37.380" video="qanda-one" id="subtitle"]]
[[!template text="""you have your website.""" start="00:25:39.280" video="qanda-one" id="subtitle"]]
[[!template text="""So I don't use anything else.""" start="00:25:40.580" video="qanda-one" id="subtitle"]]
[[!template text="""I just git push and I'm using Netlify as a""" start="00:25:42.580" video="qanda-one" id="subtitle"]]
[[!template text="""service to run to save my files,""" start="00:25:49.700" video="qanda-one" id="subtitle"]]
[[!template text="""but you can use anything you want.""" start="00:25:52.580" video="qanda-one" id="subtitle"]]
[[!template text="""Because your website is really what is into a""" start="00:25:55.900" video="qanda-one" id="subtitle"]]
[[!template text="""public. So, this is another,""" start="00:25:58.620" video="qanda-one" id="subtitle"]]
[[!template text="""It's not the concern of 1.L""" start="00:26:01.360" video="qanda-one" id="subtitle"]]
[[!template text="""to answer. I'm not using org.publish.""" start="00:26:04.860" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Cool, great. Well, thank you.""" start="00:26:08.960" video="qanda-one" id="subtitle"]]
[[!template text="""I think the question was also about other""" start="00:26:10.900" video="qanda-one" id="subtitle"]]
[[!template text="""things, but I think If the person wants a""" start="00:26:13.000" video="qanda-one" id="subtitle"]]
[[!template text="""more clear answer to their question,""" start="00:26:16.500" video="qanda-one" id="subtitle"]]
[[!template text="""feel free to clarify the question and Tony""" start="00:26:18.820" video="qanda-one" id="subtitle"]]
[[!template text="""might be able to answer it later on.""" start="00:26:21.260" video="qanda-one" id="subtitle"]]
[[!template text="""Alright Tony, I think that's all the""" start="00:26:22.960" video="qanda-one" id="subtitle"]]
[[!template text="""questions we had. Thank you so much for""" start="00:26:24.220" video="qanda-one" id="subtitle"]]
[[!template text="""taking the time not only to present Adimax""" start="00:26:25.760" video="qanda-one" id="subtitle"]]
[[!template text="""Kant, but also for answering all the""" start="00:26:27.680" video="qanda-one" id="subtitle"]]
[[!template text="""questions people had.""" start="00:26:29.240" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: Thank you to everybody participating,""" start="00:26:31.220" video="qanda-one" id="subtitle"]]
[[!template text="""organizing and thank you for all those""" start="00:26:34.540" video="qanda-one" id="subtitle"]]
[[!template text="""questions and you can send me any emails if""" start="00:26:38.000" video="qanda-one" id="subtitle"]]
[[!template text="""you have a question and open the issues if""" start="00:26:42.180" video="qanda-one" id="subtitle"]]
[[!template text="""it's not working the way it should work for""" start="00:26:45.180" video="qanda-one" id="subtitle"]]
[[!template text="""you. Please send me those things.""" start="00:26:47.720" video="qanda-one" id="subtitle"]]
[[!template text="""Thank you, everybody.""" start="00:26:49.840" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: Splendid, thank you. And before,""" start="00:26:51.940" video="qanda-one" id="subtitle"]]
[[!template text="""so right now we're gonna go on a lunch break.""" start="00:26:54.280" video="qanda-one" id="subtitle"]]
[[!template text="""We'll be back in about 40 minutes for the""" start="00:26:56.140" video="qanda-one" id="subtitle"]]
[[!template text="""talk called Emacs Turbocharges My Writing.""" start="00:26:58.660" video="qanda-one" id="subtitle"]]
[[!template text="""And I will not tell you more.""" start="00:27:01.300" video="qanda-one" id="subtitle"]]
[[!template text="""You can look at the talk page to see a little""" start="00:27:02.540" video="qanda-one" id="subtitle"]]
[[!template text="""bit of a synopsis but otherwise keep the""" start="00:27:04.280" video="qanda-one" id="subtitle"]]
[[!template text="""surprise. So have a good lunch or have a good""" start="00:27:06.340" video="qanda-one" id="subtitle"]]
[[!template text="""dinner if you are in dinner-friendly times""" start="00:27:08.900" video="qanda-one" id="subtitle"]]
[[!template text="""and I will see you afterwards.""" start="00:27:11.880" video="qanda-one" id="subtitle"]]
[[!template text="""Thank you again, Tony.""" start="00:27:13.180" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 0]: See you.""" start="00:27:14.860" video="qanda-one" id="subtitle"]]
[[!template text="""[Speaker 1]: All right. Let me just close everything.""" start="00:27:17.960" video="qanda-one" id="subtitle"]]
[[!template text="""All right, got it. OK,""" start="00:27:29.080" video="qanda-one" id="subtitle"]]
[[!template text="""so thank you so much, Tony.""" start="00:27:30.480" video="qanda-one" id="subtitle"]]
[[!template text="""I just had to clear everything up on the""" start="00:27:31.400" video="qanda-one" id="subtitle"]]
[[!template text="""stream. I'm going to need to...""" start="00:27:33.520" video="qanda-one" id="subtitle"]]
[[!template text="""Sorry. I'm going to stop.""" start="00:27:36.160" video="qanda-one" id="subtitle"]]

Questions or comments? Please e-mail [tony@tonyaldon.com](mailto:tony@tonyaldon.com?subject=Comment%20for%20EmacsConf%202023%20one%3A%20one.el%3A%20the%20static%20site%20generator%20for%20Emacs%20Lisp%20Programmers)


<!-- End of emacsconf-publish-after-page -->