summaryrefslogtreecommitdiffstats
path: root/2022/captions/emacsconf-2022-orgyear--this-year-in-org--timothy--main.vtt
blob: 32e3022eed193ac226622db81912ea056a805a5b (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
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
WEBVTT captioned by sachac

NOTE Introduction

00:00:00.000 --> 00:00:04.679
Hello. If you're listening to this talk,

00:00:04.680 --> 00:00:06.239
then you should be at least a bit interested

00:00:06.240 --> 00:00:09.199
in Org mode, which is fantastic

00:00:09.200 --> 00:00:11.252
because there have been quite a few

00:00:11.253 --> 00:00:14.599
interesting developments over the past year or so.

00:00:14.600 --> 00:00:19.399
I'm Timothy, as you may have gathered from the last talk,

00:00:19.400 --> 00:00:21.799
and I'm also quite involved with the Org project,

00:00:21.800 --> 00:00:23.999
so I'd like to go through a few of those developments

00:00:24.000 --> 00:00:27.439
over the past year or so and give you a few hints as well

00:00:27.440 --> 00:00:32.079
as to what potentially lies around the corner with Org mode.

NOTE Project housekeeping

00:00:32.080 --> 00:00:35.879
The starters, slightly on the more boring side

00:00:35.880 --> 00:00:37.679
but rather significant change to the project,

00:00:37.680 --> 00:00:40.799
occurred with the housekeeping or organisation.

00:00:40.800 --> 00:00:43.519
The codebase for the Org project has actually shifted over

00:00:43.520 --> 00:00:46.799
from a self-hosted Gogs instance over to Savannah,

00:00:46.800 --> 00:00:49.719
which means it's now living right alongside

00:00:49.720 --> 00:00:51.519
the Emacs codebase.

00:00:51.520 --> 00:00:53.279
This has been accompanied by the creation

00:00:53.280 --> 00:00:58.219
of a whole bunch of Org-related repos under

00:00:58.220 --> 00:01:03.359
Bastien's (Org's maintainer) personal sourceHut account.

00:01:03.360 --> 00:01:06.759
We've got the source of the website, the Org wiki Worg,

00:01:06.760 --> 00:01:08.799
as well as Org contrib.

NOTE Continuous integration

00:01:08.800 --> 00:01:13.119
Another recent addition to this list of Org-related repos

00:01:13.120 --> 00:01:17.799
is the new Org mode tests--continuous integration.

00:01:17.800 --> 00:01:22.039
Now, this is rather important, because while we do recommend

00:01:22.040 --> 00:01:25.879
that all contributors actually run make tests

00:01:25.880 --> 00:01:29.799
before submitting patches to the Org project,

00:01:29.800 --> 00:01:31.279
this doesn't always happen.

00:01:31.280 --> 00:01:34.559
It can also actually be a bit harder than you expect

00:01:34.560 --> 00:01:35.719
to run the tests because there are a lot

00:01:35.720 --> 00:01:37.759
of trans-dependencies you get with Org;

00:01:37.760 --> 00:01:40.199
for instance, with all of the various Babel libraries

00:01:40.200 --> 00:01:42.599
which actually require other packages

00:01:42.600 --> 00:01:46.079
or programming language to be installed on the system.

00:01:46.080 --> 00:01:50.079
Having a single self-contained test system

00:01:50.080 --> 00:01:53.319
to actually make sure that Org can be regularly

00:01:53.320 --> 00:01:57.519
and thoroughly tested should be a great help for actually

00:01:57.520 --> 00:02:04.679
ensuring the quality of the contributions.

NOTE Funding contributors

00:02:04.680 --> 00:02:07.079
The funding structure for Org has also undergone a bit

00:02:07.080 --> 00:02:10.559
of a shift. Historically, we've just directed everybody

00:02:10.560 --> 00:02:14.199
who's interested in financially supporting the Org project

00:02:14.200 --> 00:02:18.639
to the maintainer Bastien's personal GitHub sponsors

00:02:18.640 --> 00:02:22.399
and LibrePay accounts. Now, early this year,

00:02:22.400 --> 00:02:27.519
Bastion has created the Librepay Org mode team account,

00:02:27.520 --> 00:02:29.039
which means that you can actually now

00:02:29.040 --> 00:02:33.159
support the Org project as opposed to

00:02:33.160 --> 00:02:34.479
the person leading the Org project.

00:02:34.480 --> 00:02:39.159
Currently, this just distributes donations between Bastien,

00:02:39.160 --> 00:02:42.079
Ihor, and myself. However, the idea is that

00:02:42.080 --> 00:02:45.039
as the active contributors for the Org project

00:02:45.040 --> 00:02:50.839
come and go over time, the list of people on this team

00:02:50.840 --> 00:02:56.999
can be changed as seems sensible. The hope here is that

00:02:57.000 --> 00:03:00.159
it will simplify both how easy it is

00:03:00.160 --> 00:03:02.559
to actually financially support the Org project

00:03:02.560 --> 00:03:04.359
as well as how easily people contributing

00:03:04.360 --> 00:03:09.599
to the Org project can be supported.

00:03:09.600 --> 00:03:13.479
If you're interested in supporting the Org project,

00:03:13.480 --> 00:03:15.439
there's never been a better time than now

00:03:15.440 --> 00:03:16.919
to have a look at this

00:03:16.920 --> 00:03:23.159
and let anybody who might also might be interested know.

00:03:23.160 --> 00:03:25.279
Hopefully, this leads to a healthier funding structure

00:03:25.280 --> 00:03:28.199
that will scale better into the long term

00:03:28.200 --> 00:03:32.559
and thus better support the work that happens with Org.

NOTE New features

00:03:32.560 --> 00:03:37.079
Now, the project itself has of course also seen quite a bit

00:03:37.080 --> 00:03:38.519
of development over the past year.

00:03:38.520 --> 00:03:44.159
We've had about 800 comments from 80 contributors.

00:03:44.160 --> 00:03:46.519
Within these comments, there's been a lot of polishing

00:03:46.520 --> 00:03:48.759
quality-of-life improvements,

00:03:48.760 --> 00:03:50.519
and also quite a few new features.

00:03:50.520 --> 00:03:52.799
Now, I haven't got nearly enough time

00:03:52.800 --> 00:03:54.159
to go through this exhaustively,

00:03:54.160 --> 00:03:58.639
so we're just going to go through a quick highlight reel.

NOTE An assortment of export improvements

00:03:58.640 --> 00:04:00.239
There's a collection of export improvements

00:04:00.240 --> 00:04:04.319
from things which affect all export backends,

00:04:04.320 --> 00:04:07.319
like including remote content

00:04:07.320 --> 00:04:09.599
and adding new things like DOI links

00:04:09.600 --> 00:04:11.519
and support for encrypted Org files,

00:04:11.520 --> 00:04:14.679
as well as a whole lot of export-backend-specific changes.

00:04:14.680 --> 00:04:17.159
For example, quite a few backends--

00:04:17.160 --> 00:04:18.519
I've mentioned the LaTeX one here,

00:04:18.520 --> 00:04:23.119
but also others such as Texinfo--have now got

00:04:23.120 --> 00:04:26.799
rich support for various types of attributes and objects.

00:04:26.800 --> 00:04:31.919
The HTML backend has had a few things boosted up and well,

00:04:31.920 --> 00:04:33.519
if you want to see the full list,

00:04:33.520 --> 00:04:36.519
just take a look at the release notes.

NOTE A collection of babel improvements

00:04:36.520 --> 00:04:39.319
We've also seen a similar collection of improvements

00:04:39.320 --> 00:04:43.519
with the Babel backends. Once again, this is scattered--

00:04:43.520 --> 00:04:46.519
or well, it can be split into two sets of changes.

00:04:46.520 --> 00:04:49.599
There's some which affect all of Babel, essentially.

00:04:49.600 --> 00:04:52.599
For instance, the new syntax of parsing

00:04:52.600 --> 00:04:56.479
the raw content of code blocks, or the changes with Noweb.

00:04:56.480 --> 00:05:01.919
For example, :noweb-prefix is a new option that can be used.

00:05:01.920 --> 00:05:03.239
And then there's also a collection

00:05:03.240 --> 00:05:07.439
of backend-specific changes. So ASCII graphics with PlantUML

00:05:07.440 --> 00:05:12.279
or enhanced return capabilities with the ob-python library.

NOTE A multitude of general org-mode improvements

00:05:12.280 --> 00:05:17.479
And then of course, as before, a whole collection

00:05:17.480 --> 00:05:19.839
of more changes which you can find in the release notes.

00:05:19.840 --> 00:05:22.839
Last but by no means least,

00:05:22.840 --> 00:05:26.239
there have been quite a few changes within the rest of Org.

00:05:26.240 --> 00:05:30.839
So this is, once again, far too many things to list,

00:05:30.840 --> 00:05:33.759
but it's things like improved refiling,

00:05:33.760 --> 00:05:36.639
capture templates, image preview sizing,

00:05:36.640 --> 00:05:38.159
clocktable settings, agenda tweaks,

00:05:38.160 --> 00:05:41.159
and well, a whole lot more.

00:05:41.160 --> 00:05:45.039
Yes, basically, the essence of what's here

00:05:45.040 --> 00:05:47.999
is a lot of little changes

00:05:48.000 --> 00:05:50.799
which just address particular use cases in ways

00:05:50.800 --> 00:05:55.052
that I don't think anybody's going to be seeing

00:05:55.053 --> 00:05:55.786
the impact of all of them,

00:05:55.787 --> 00:05:57.559
but I think most people should at least

00:05:57.560 --> 00:06:00.119
find one or two things

00:06:00.120 --> 00:06:04.159
which actually improve their own usage.

NOTE Citations

00:06:04.160 --> 00:06:06.079
Now these are the sort of assorted

00:06:06.080 --> 00:06:07.399
relatively minor improvements,

00:06:07.400 --> 00:06:09.959
but there are also some major ones.

00:06:09.960 --> 00:06:12.159
And one in particular, citations.

00:06:12.160 --> 00:06:15.879
So I think this has been, at this point,

00:06:15.880 --> 00:06:17.079
over a decade in the making,

00:06:17.080 --> 00:06:21.919
but Org finally has first-class support for citations.

00:06:21.920 --> 00:06:23.759
And I have to say, it is marvellous.

00:06:23.760 --> 00:06:27.239
You'd hope so, after the labour. I think it is.

00:06:27.240 --> 00:06:30.119
It can be said that it's actually worth the wait.

00:06:30.120 --> 00:06:31.679
I think out of the various options you've got now,

00:06:31.680 --> 00:06:34.279
(for example, the way that Pandoc

00:06:34.280 --> 00:06:35.599
and Markdown otherwise[??] do it)

00:06:35.600 --> 00:06:40.519
Org has a fantastically succinct and flexible

00:06:40.520 --> 00:06:45.959
syntax for citations, which scales really well for all sorts

00:06:45.960 --> 00:06:47.199
of different use cases.

00:06:47.200 --> 00:06:51.159
Additionally, on the backend side of things,

00:06:51.160 --> 00:06:55.359
we've now got a generalised way for handling citations

00:06:55.360 --> 00:06:57.839
which has been quite helpful for the--I think

00:06:57.840 --> 00:07:00.359
I could say rather rapid development

00:07:00.360 --> 00:07:03.279
of multiple citation backends for Org.

00:07:03.280 --> 00:07:07.639
And I think it's just fantastic, really, seeing

00:07:07.640 --> 00:07:09.839
how quickly Org has gone

00:07:09.840 --> 00:07:12.239
from having no support for citations

00:07:12.240 --> 00:07:13.239
at the start of this year

00:07:13.240 --> 00:07:17.559
to what can be described as

00:07:17.560 --> 00:07:20.199
a wonderfully rich and flexible support

00:07:20.200 --> 00:07:23.559
with, well, multiple backends for citations.

00:07:23.560 --> 00:07:27.519
I think that's something that we can really be proud of.

00:07:27.520 --> 00:07:30.039
And it's been a fantastic contribution

00:07:30.040 --> 00:07:31.599
for everybody involved in this process.

NOTE Quality of life improvements

00:07:31.600 --> 00:07:36.119
Okay, so we've had features.

00:07:36.120 --> 00:07:38.039
There have also been a whole lot of

00:07:38.040 --> 00:07:39.559
quality of life improvements.

00:07:39.560 --> 00:07:43.479
Once again, many more than I can reasonably mention here.

00:07:43.480 --> 00:07:46.079
So I'm just going to flick it through

00:07:46.080 --> 00:07:48.319
a few of them. A few big ones though,

NOTE Org fold

00:07:48.320 --> 00:07:52.519
Ihor is responsible for three lovely developments with Org,

00:07:52.520 --> 00:07:55.119
one of which is Org fold. So this is a generalisation

00:07:55.120 --> 00:07:57.239
of the way that content is folded in Org.

00:07:57.240 --> 00:08:00.679
And I think quite a few of you will actually underestimate

00:08:00.680 --> 00:08:01.679
how much can be folded in Org.

00:08:01.680 --> 00:08:03.039
It's not just a matter of headlines.

00:08:03.040 --> 00:08:07.919
It's headlines, code blocks, lists, environments,

00:08:07.920 --> 00:08:10.519
all sorts of things can actually be folded in Org.

00:08:10.520 --> 00:08:14.679
And the introduction of Org fold is important

00:08:14.680 --> 00:08:18.919
for two reasons. One is that it has allowed for

00:08:18.920 --> 00:08:21.479
text-property-based folding,

00:08:21.480 --> 00:08:24.479
which in Emacs versions less than 29

00:08:24.480 --> 00:08:27.719
has a huge difference in performance,

00:08:27.720 --> 00:08:29.959
which is particularly apparent with larger files.

00:08:29.960 --> 00:08:32.639
The second significant thing about this is that

00:08:32.640 --> 00:08:36.479
it now actually provides a more general way

00:08:36.480 --> 00:08:39.879
to actually describe changes to the folding structure.

00:08:39.880 --> 00:08:42.559
So before there was direct modification of

00:08:42.560 --> 00:08:45.959
messing with overlays scattered around the Org code base.

00:08:45.960 --> 00:08:49.399
Now we have a much more well organised system

00:08:49.400 --> 00:08:53.319
where we use Org fold to say what is and isn't folded

00:08:53.320 --> 00:08:54.799
and to manage the state of all of that,

00:08:54.800 --> 00:08:59.239
which is, I think, just from a sort of design,

00:08:59.240 --> 00:09:02.479
sort of project design approach, a much better system.

NOTE Org element cache

00:09:02.480 --> 00:09:06.599
We've also got the Org element cache by Ihor.

00:09:06.600 --> 00:09:09.239
This is actually something which was discussed

00:09:09.240 --> 00:09:12.039
quite a while ago, but has somewhat stalled

00:09:12.040 --> 00:09:14.679
due to the difficulty of cache invalidation.

00:09:14.680 --> 00:09:17.279
Ihor has sunk a tremendous amount of effort into this

00:09:17.280 --> 00:09:19.759
and has improved it to the point

00:09:19.760 --> 00:09:21.799
where we've now actually been able to

00:09:21.800 --> 00:09:25.639
enable this by default. So what this basically does is

00:09:25.640 --> 00:09:27.999
it records lots of information

00:09:28.000 --> 00:09:30.159
about the structure of the Org document

00:09:30.160 --> 00:09:34.119
and allows for, well, with the appropriate modifications

00:09:34.120 --> 00:09:37.359
that Ihor has also made throughout the Org element library

00:09:37.360 --> 00:09:41.559
to use this information to speed up various operations

00:09:41.560 --> 00:09:44.879
based on the Org document syntax tree.

00:09:44.880 --> 00:09:48.279
And so this has been quite--

00:09:48.280 --> 00:09:49.839
the improvements have been scattered all over the place,

00:09:49.840 --> 00:09:52.719
but for a good example for libraries

00:09:52.720 --> 00:09:57.719
or anybody who's wanting to quickly map over Org elements

00:09:57.720 --> 00:10:00.639
is `org-element-cache-map', which now provides

00:10:00.640 --> 00:10:04.559
a much, much faster way to map over

00:10:04.560 --> 00:10:07.359
all of the Org elements in a document.

NOTE Org persist

00:10:07.360 --> 00:10:10.799
This also ties into the third major feature from Ihor

00:10:10.800 --> 00:10:13.919
which I'd like to mention, which is Org persist.

00:10:13.920 --> 00:10:17.959
So this provides a method of persisting values

00:10:17.960 --> 00:10:20.279
across Emacs sessions, basically saving them

00:10:20.280 --> 00:10:21.799
to a file somewhere and loading them.

00:10:21.800 --> 00:10:25.719
Now this works for Elisp values and it also works for files,

00:10:25.720 --> 00:10:29.679
which we made use of with the improved capabilities

00:10:29.680 --> 00:10:32.479
for remote files and exports.

00:10:32.480 --> 00:10:35.799
This has also been used with the `org-element-cache' data.

00:10:35.800 --> 00:10:37.479
So now, if you've got a massive Org file

00:10:37.480 --> 00:10:41.159
and you open it once, that data can be saved to

00:10:41.160 --> 00:10:44.319
with the Org element cache to Org persist,

00:10:44.320 --> 00:10:46.679
and the next time you load this file

00:10:46.680 --> 00:10:47.919
in another Emacs session,

00:10:47.920 --> 00:10:50.959
we can just start with the cached data

00:10:50.960 --> 00:10:53.119
instead of having to construct everything from scratch,

00:10:53.120 --> 00:10:56.439
which is quite nice. Once again, a change which

00:10:56.440 --> 00:10:57.719
much like the other ones,

00:10:57.720 --> 00:11:00.359
we will see more of an impact in larger files,

00:11:00.360 --> 00:11:02.719
but a very welcome one everywhere.

NOTE More careful resource downloading

00:11:02.720 --> 00:11:06.799
Now with remote files, there's also been the beginnings

00:11:06.800 --> 00:11:09.239
of a bit of an effort with Org

00:11:09.240 --> 00:11:13.119
to improve the approach we have to safety.

00:11:13.120 --> 00:11:14.999
So in this case previously,

00:11:15.000 --> 00:11:17.639
Org would unconditionally download

00:11:17.640 --> 00:11:19.559
all the remotes of files that's all referenced.

00:11:19.560 --> 00:11:23.759
And now, it's actually going to maintain a list of

00:11:23.760 --> 00:11:25.519
sort of safe resources and prompt you

00:11:25.520 --> 00:11:26.639
when it's surprised by something,

00:11:26.640 --> 00:11:29.886
to work out whether it should

00:11:29.887 --> 00:11:31.839
just download this one resource,

00:11:31.840 --> 00:11:35.279
mark the whole domain as safe, and a few other options.

00:11:35.280 --> 00:11:36.759
We're also going to probably see

00:11:36.760 --> 00:11:39.079
a similar approach extend to, for instance,

00:11:39.080 --> 00:11:40.199
bits of Babel execution in the future.

NOTE Bug fixes

00:11:40.200 --> 00:11:45.359
Okay bug fixes. It will be remiss of me not to mention that

00:11:45.360 --> 00:11:46.919
along with all of the features

00:11:46.920 --> 00:11:49.359
and quality of life improvements,

00:11:49.360 --> 00:11:51.879
there has been a huge pile of bug fixes.

00:11:51.880 --> 00:11:57.319
I think the best way to actually get a look at this

00:11:57.320 --> 00:11:59.039
would be to look at the release notes

00:11:59.040 --> 00:12:00.599
or maybe even the actual commit log,

00:12:00.600 --> 00:12:04.119
but you could also just take my word and say that

00:12:04.120 --> 00:12:05.639
there have been a whole load of them

00:12:05.640 --> 00:12:11.599
over the past year. So just yes, the code base, I think,

00:12:11.600 --> 00:12:15.799
is just gradually getting into better and better shape.

NOTE Asynchronous session evaluation

00:12:15.800 --> 00:12:18.199
Asynchronous session evaluation is I think possibly

00:12:18.200 --> 00:12:19.679
the final quality-of-life improvement

00:12:19.680 --> 00:12:22.119
I want to mention. This came early in the year,

00:12:22.120 --> 00:12:24.639
just with ob-python, and it's been delayed

00:12:24.640 --> 00:12:26.479
because in order to actually make it work,

00:12:26.480 --> 00:12:29.399
they've required some fundamental changes to the way

00:12:29.400 --> 00:12:31.079
that ob-comint works.

00:12:31.080 --> 00:12:33.599
Now that's been implemented,

00:12:33.600 --> 00:12:36.679
we've since seen support extended to ob-R,

00:12:36.680 --> 00:12:38.719
and hopefully, we'll see more languages join this list

00:12:38.720 --> 00:12:42.799
in the not-too-distant future.

NOTE Nicer tangle mode syntax

00:12:42.800 --> 00:12:45.799
Now I guess one bonus which I tacked on just for fun is

00:12:45.800 --> 00:12:47.639
it's now more convenient than ever

00:12:47.640 --> 00:12:52.039
to actually specify the permissions for tangled files.

00:12:52.040 --> 00:12:54.999
Previously you had to give a list expression

00:12:55.000 --> 00:12:55.839
which should be evaluated.

00:12:55.840 --> 00:12:58.319
Now you can give it directly in octal form

00:12:58.320 --> 00:12:59.719
instead of being a list expression

00:12:59.720 --> 00:13:01.959
that produces an integer representation

00:13:01.960 --> 00:13:03.639
of the octal permissions.

00:13:03.640 --> 00:13:08.439
Or you can use ls style: rwx and dashes.

00:13:08.440 --> 00:13:13.079
Or even just chmod. I want to be able to execute this

00:13:13.080 --> 00:13:16.386
as a user, which will basically modify

00:13:16.387 --> 00:13:18.279
the default permission to add that capability.

NOTE A flourishing ecosystem

00:13:18.280 --> 00:13:22.679
Alrighty. So that's the Org project itself,

00:13:22.680 --> 00:13:24.799
but there's also a whole ecosystem.

00:13:24.800 --> 00:13:27.439
So what have we got here?

00:13:27.440 --> 00:13:30.319
Well a whole bunch of Zettelkasten

00:13:30.320 --> 00:13:32.599
or personal-knowledge-base-type projects.

00:13:32.600 --> 00:13:36.239
One of which is logseq, so that's an online open source

00:13:36.240 --> 00:13:39.639
Zettelkasten which supports both Markdown

00:13:39.640 --> 00:13:41.799
and also Org mode as a first-class format.

00:13:41.800 --> 00:13:45.599
Then of course we have Org Roam, which provides

00:13:45.600 --> 00:13:48.879
a Zettelkasten built directly on top of Org within Emacs.

00:13:48.880 --> 00:13:51.639
Both of these are seen considerably interesting

00:13:51.640 --> 00:13:52.599
over the past year.

NOTE Org-modern

00:13:52.600 --> 00:13:56.799
Moving on to visuals, minad has produced

00:13:56.800 --> 00:14:00.439
another lovely minad package in the form of org-modern

00:14:00.440 --> 00:14:04.559
which just spruces up the visuals of all documents

00:14:04.560 --> 00:14:09.519
and seems to have been quite well received recently

00:14:09.520 --> 00:14:10.119
since its release.

NOTE citeproc-org

00:14:10.120 --> 00:14:13.159
Building on top of the citations from earlier,

00:14:13.160 --> 00:14:14.559
Andras Simonyi has produced

00:14:14.560 --> 00:14:16.559
the wonderful citeproc-org library,

00:14:16.560 --> 00:14:20.799
which, if you're not familiar,

00:14:20.800 --> 00:14:24.999
allows the capabilities of the citation style language

00:14:25.000 --> 00:14:26.639
which has now become something

00:14:26.640 --> 00:14:27.999
which is quite widely supported

00:14:28.000 --> 00:14:31.079
to be used for Org citation exports.

00:14:31.080 --> 00:14:33.799
This means that you've got access to I think at this point

00:14:33.800 --> 00:14:35.799
is it thousands or tens of thousands

00:14:35.800 --> 00:14:39.879
of different bibliography and citation formats

00:14:39.880 --> 00:14:42.919
which is obviously a huge boon to org citations.

00:14:42.920 --> 00:14:46.559
Lastly, just to be slightly critical,

00:14:46.560 --> 00:14:49.519
I'm actually going to mention the Neovim Org mode project,

00:14:49.520 --> 00:14:52.079
because I think this really shows the interest

00:14:52.080 --> 00:14:55.359
in Org as the format, beyond just Emacs.

00:14:55.360 --> 00:14:58.239
I think I haven't gone into it much here,

00:14:58.240 --> 00:15:00.919
but there's been quite a lot of development

00:15:00.920 --> 00:15:04.559
with external tools making use of the Org format.

00:15:04.560 --> 00:15:07.519
Clearly, we've done quite a few things right,

00:15:07.520 --> 00:15:11.599
and so I think it's interesting to see the interest

00:15:11.600 --> 00:15:13.319
that exists outside of Emacs,

00:15:13.320 --> 00:15:15.239
even without all the lovely tooling we've built,

00:15:15.240 --> 00:15:18.599
just out of appreciation of the formatting, its potential.

00:15:18.600 --> 00:15:21.079
Speaking of the format, though,

00:15:21.080 --> 00:15:24.159
we've also seen three new parsers on the scene this year.

00:15:24.160 --> 00:15:27.359
We've got one in Julia, Haskell

00:15:27.360 --> 00:15:28.599
and another one for Tree sitter.

00:15:28.600 --> 00:15:30.999
The last one, I think, is currently the least capable,

00:15:31.000 --> 00:15:32.479
but also potentially the most interesting

00:15:32.480 --> 00:15:36.959
in terms of what possibilities it allows for.

00:15:36.960 --> 00:15:42.079
Okay. So that's a quick speed run through

00:15:42.080 --> 00:15:44.039
some of the developments over the past year.

NOTE Continuing work on the Org format

00:15:44.040 --> 00:15:47.959
What's coming next? So there's been

00:15:47.960 --> 00:15:50.999
quite a lot of work done with the Org syntax document.

00:15:51.000 --> 00:15:54.199
In fact, I've completely written it,

00:15:54.200 --> 00:15:57.239
and we've now taken it up to spec

00:15:57.240 --> 00:15:59.799
to actually accurately describe the way

00:15:59.800 --> 00:16:03.199
that the Org format is, as of Org 9.6.

00:16:03.200 --> 00:16:08.079
Now, I think this is quite an important document

00:16:08.080 --> 00:16:09.799
for the growth in parsing tools

00:16:09.800 --> 00:16:11.279
to help actually ensure

00:16:11.280 --> 00:16:16.439
that the way that external tools process Org

00:16:16.440 --> 00:16:20.079
is actually in sync with the way that Org mode does.

00:16:20.080 --> 00:16:22.559
I think it's worth doing everything we can, really,

00:16:22.560 --> 00:16:24.839
to avoid the sort of implementation drift

00:16:24.840 --> 00:16:27.719
that we've seen with Markdown.

00:16:27.720 --> 00:16:29.839
I don't want anything near that.

00:16:29.840 --> 00:16:32.486
This is also quite good for the Org format itself because,

00:16:32.487 --> 00:16:34.479
in the process of going through this sort of effort,

00:16:34.480 --> 00:16:38.199
it brings attention to irregularities in the syntax

00:16:38.200 --> 00:16:41.519
which you might want to resolve, and as well as

00:16:41.520 --> 00:16:43.919
helping the robustness of org mode itself.

00:16:43.920 --> 00:16:46.279
So ultimately, this is to everybody's benefit, really.

00:16:46.280 --> 00:16:51.799
It's also my personal hope that this might actually

00:16:51.800 --> 00:16:54.879
get to the point where we consider submitting this

00:16:54.880 --> 00:16:59.039
as a text format to the Internet Engineering Task Force

00:16:59.040 --> 00:17:06.319
as a new text format. So that would be quite nice.

NOTE Mailing list management

00:17:06.320 --> 00:17:09.639
The Org project itself has a layer on top

00:17:09.640 --> 00:17:13.679
of the mailing list called Woof developed by Bastien,

00:17:13.680 --> 00:17:16.119
and that's about to have another major release.

00:17:16.120 --> 00:17:21.359
So what this is going to do is improve the ease of which

00:17:21.360 --> 00:17:23.319
we can actually monitor what's going on

00:17:23.320 --> 00:17:27.079
with the mailing list. So this is when people have patches,

00:17:27.080 --> 00:17:29.599
bug reports, or other types of things

00:17:29.600 --> 00:17:30.519
raised on the mailing list.

00:17:30.520 --> 00:17:34.039
It's a nice way to collect the status of those

00:17:34.040 --> 00:17:35.039
and put them all in one place.

00:17:35.040 --> 00:17:37.879
So improvements to this improve the ease of which

00:17:37.880 --> 00:17:40.399
the Org mode project can be managed,

00:17:40.400 --> 00:17:41.919
which is always quite nice to see.

NOTE Further engraving

00:17:41.920 --> 00:17:46.319
There's also been--jumping back to the export

00:17:46.320 --> 00:17:48.359
which is mentioned right at the start of this presentation--

00:17:48.360 --> 00:17:51.839
we've got the introduction of engraved faces

00:17:51.840 --> 00:17:54.479
to LaTeX export. Now what's quite interesting about this

00:17:54.480 --> 00:17:57.599
is that it's actually used as Emacs' native font lock

00:17:57.600 --> 00:18:01.239
and allows for processing that in a generalized way

00:18:01.240 --> 00:18:03.839
to different output formats. So at the moment,

00:18:03.840 --> 00:18:06.919
this is just integrated with ox-latex,

00:18:06.920 --> 00:18:11.199
but it contains the functionality needed for HTML and ASCII,

00:18:11.200 --> 00:18:13.719
and it could also be extended to other formats like ODT.

00:18:13.720 --> 00:18:18.279
So we could potentially have full syntax highlighting

00:18:18.280 --> 00:18:20.959
based on Emacs exported to, well,

00:18:20.960 --> 00:18:24.199
really all of the Org mode backends,

00:18:24.200 --> 00:18:27.359
except, I suppose, the plain text ones like Markdown.

00:18:27.360 --> 00:18:29.759
And I think from both the capabilities perspective--

00:18:29.760 --> 00:18:33.039
because I think, really, font lock in Emacs

00:18:33.040 --> 00:18:34.199
from Emacs major modes

00:18:34.200 --> 00:18:37.159
tends to blow basically everything else vaguely used

00:18:37.160 --> 00:18:39.239
out of the water, whether it be listings, minted

00:18:39.240 --> 00:18:44.999
or other efforts--and also from a consistency point of view,

00:18:45.000 --> 00:18:49.719
this could be quite a nice development.

00:18:49.720 --> 00:18:51.119
Alrighty. Now this talk is "This Year in Org,"

00:18:51.120 --> 00:18:52.599
and I think you all may have guessed

00:18:52.600 --> 00:18:57.759
this is very much tied into my work with This Month in Org

00:18:57.760 --> 00:19:00.119
which started, I think, a bit over a year ago.

00:19:00.120 --> 00:19:04.919
And so, as you're all avid readers,

00:19:04.920 --> 00:19:05.919
I'm sure you've noticed

00:19:05.920 --> 00:19:08.519
that there haven't been as many posts as of late.

00:19:08.520 --> 00:19:11.879
Now this isn't because my interest in This Month in Org

00:19:11.880 --> 00:19:15.879
has been diminishing. Simply, it's the consequence

00:19:15.880 --> 00:19:18.759
of an evaporation of my free time.

00:19:18.760 --> 00:19:22.359
However, This Month in Org is still going to stick around.

00:19:22.360 --> 00:19:26.159
The only change really is that the title is going to be--

00:19:26.160 --> 00:19:27.999
probably continue to be

00:19:28.000 --> 00:19:30.039
a bit more aspirational than descriptive

00:19:30.040 --> 00:19:32.959
in the near future. We'll see how this goes.

00:19:32.960 --> 00:19:36.719
Well, thanks for listening to this overview

00:19:36.720 --> 00:19:38.599
of the state of Org at the moment,

00:19:38.600 --> 00:19:51.880
and hopefully, I'll see you next year.