-
Notifications
You must be signed in to change notification settings - Fork 89
/
todo.txt
1478 lines (1082 loc) · 98.4 KB
/
todo.txt
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
Add flickr oembed suport and tell [JEM](https://mail.google.com/mail/u/0/#inbox/FMfcgzQXKhPLNdfRcqCvwHVHDWfCKrJF)
Fix local template editing bug
- tell [Darren](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXJkXrrLBdCgVqnZppnbwHMgjx)
- [Ty](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXKhGGvtTbGGhbxzHdWkFtnMhS)
- [Haider](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXKhGHGKDtgNPRrVlpwHThCJnL)
Work on [Reilly's template](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXKDgbGwfLdslPKHsmNzbtbbbc)
- Improvements to base template
- Detail page view is now working correctly on mobile. One small bug I caught is that (on mobile) when you are on a detail page (ie https://preview-of-my-portfolio-on-carmagnum.blot.im/isuzu-unicab-3) the nav bar hamburger is visible but not clickable / actionable.
- Is it possible to have the tag (ie the subfolder name) show up on the detail page as clickable too? Perhaps at end of the caption line.
- Custom changes
Fix thumbnail generator to handle 304 responses properly. Right now, you can fetch image and then encounter 304 response.
Fix duplicate GUID issue caused by renames and tell [Paul](https://mail.google.com/mail/u/1/#inbox/FMfcgzQVxlQFSLBmzLfsBlQSTTcmqjGc)
Add way to redirect HTTP to HTTPS and [tell questioners](https://blot.im/questions/2853)
Fix bug with magic text in posts which breaks backend and tell [Victor](https://mail.google.com/mail/u/1/#inbox/FMfcgzQVxRMzjBtRWVwLWtlBcFGsSVCQ)
Add layout fix to blog template and [tell Lewis](https://mail.google.com/mail/u/1/#inbox/FMfcgzQVzFWlSFWmjZrDMrMjPtmtWwQc)
Fix bug with site export and [contact Ryan](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXJtGgnQWMWxjBnHlvMSPFJjnJ)
Fix bug with Git client and Obsidian then tell levelsi
1. create two files
source.txt "[[Target]]"
target.txt
Add in one commit
2. rename target.txt to foo.txt
update in one commit
Deleted blogs should be purged from Bunny and its perma cache
Purge thumbnails and cached images which are no longer in use
Fix issue with server restart:
- sudo chown ec2-user:ec2-user /var/instance-ssd/tmp
- sudo chown ec2-user:ec2-user /var/instance-ssd/logs/app.log
- mkfs -t xfs -f /dev/XXXXXXXX
Investigate performance of rich text editor in Safari on template editor and follow up with [Rachel](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXKNFKbzhWFnsgQrBBfGqZNMhL)
Add pagination to archives and tagged pages on default templates using a new tag
---
Clamp length of password and email address in log in and sign up and reset forms
Fix issue with Google Drive
Update pandoc and tell [](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxTFSjkTvfDRgNHZwSQqDzWKFB) that highlighting now works
- [ ] Fix bug with forking / editing new templates
- [ ] make cdn-url-helper more efficient, it gets called massive (make part of build process instead?)
---
- [ ] Template editor deleted
- [ ] External services page
- [ ] Publishing settings page
- [ ] Folder activity page
- [ ] File viewer
- [ ] Fix file viewer live update
- [ ] Add truncate to file viewer
---
Full QA check
- [ ] Multiple browsers
Refactor site build
- needs to be a part of the docker stage:
- need to copy in git repo...!
- build entire documentation and dashboard views (featured, templates, etc.)
- how best to handle development mode?
Fix date selector for template and tell [Zach](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxTFSjkTvfDRgNHZwSQqDzWKFB)
Make it possible to embed audio like so `![Audio]({{{path}}})`
Experiement with injecting script into preview sites which can postMessage to embedding page, sending html2canvas result which can be stored locally for faster loading?
Make it possible to embed video like so `![Video](...)`
Make it possible to embed PDF like so `![Video](...)`
Merge comment and disqus into single comments plugin
Fix single line break handling in Word Documents and [tell Paul](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxTNzPZwwxJPTDlBBBcnbpPcJJ)
Rethink google drive client to use similar iCloud interface? i.e. share with sync@blot.im?
Make it possible to publish webp, tiff and any other random formats supported by sharp
- Tell [Haider](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXKWnJfxpPSsHcZhLKztZQhdGZ)
Make the 404 page more useful (see Netlify site)
Clamp the max length of blot usernames and custom domains
Expose markdown build errors on the dashboard to prevent weird non-update situations where it looks like the sync is stuck
Continue work on test suite for template engine
Fix bug with [bulk redirects page](https://blot.im/questions/2385)
Make video embeds work on Google Docs:
- Tell [questioners](https://blot.im/questions/471)
Make code embeds work on Google Docs:
- Tell [Jonathan](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxTPFzrWBgxxWfbJzlbZzjKMxB)
Improvements to search engine:
- Make search use 'AND' instead of 'OR' for multiple terms
- Remove drafts and tell Paul
- Make `search: true` work and tell Paul
Fix Google Drive sync bug
- [ ] Resolve whether to use drive.change.watch or drive.activity.query
- [ ] This seems to re-download google docs every time
- [ ] How do we properly get notifications about changes to the doc? do we need to set up notifications channels for every doc in the drive directory?
- [ ] do the google docs edit events we are missing on `drive.changes.watch` appear on `drive.changes.list`?
Make it possible to link between org mode files with: `[[file:another-test.org][another test]]` and tell [questioners](https://blot.im/questions/2163)
---
Infrastructure plan:
- switch app deployment to ECS
- work on reducing the storage class of EBS
- create three processes:
- blogs
- dashboard
- sync
- Use restic or similar to make incremental off-site backups of data directory:
- restic -r b2:bucket-name:/path/to/repo forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --keep-yearly 3 --prune
---
Fix bug with [date on magazine template](https://blot.im/questions/2244)
Fix bug with [header position on the blog template](https://blot.im/questions/2211)
Fix issue with camelCase custom metadata and tell [questioner](https://blot.im/questions/2294)
Investigate bug with org mode links and [follow up with Elliot](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwHzDppJbDBZhLLqFQXvMZRsNw)
Fix side navigation on Blog template and tell [Sava](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJcgnPdxPcSqPwmMnFSThFMQg)
Fix light mode colors and tell [Gary](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJSCRWXMlsPRVBsnrcRcbMklc)
Fix bug with date settings on the template editor for [magazine template](https://blot.im/questions/2244)
Investigate why [Darren cannot open the template editor](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJSBJCRPJsLFddJCNzTnnQgjs)
Fix Git client bugs
- Investigate a bug with git client credentials triggered when you have two sites using git on one account, and delete one of the sites
- Fix bug which occurs when you change your username while using the Git client (caused by the broken repo url) and tell [Koen](https://mail.google.com/mail/u/0/#inbox/1670f516115ef9bd) and [Andre](https://mail.google.com/mail/u/0/#inbox/FMfcgxwDqfMMxJXpbTZLvGzVmZlFPNfk) and [Josh](https://mail.google.com/mail/u/0/#inbox/FMfcgxwDqnkxhvtmPpdMMkRPjzpktrxG) and [Ryan](https://mail.google.com/mail/u/0/#inbox/FMfcgxwGCGthpSTxskRFFVjtrGnhnSvh) and [David](https://mail.google.com/mail/u/0/#inbox/FMfcgzGllVjvNfvdDVmnmlRvrFsNnQSD)
- Work out how to pipe custom error messages down
- Pipe custom message when you change a blog's handle (breaking repo url)
- Tell [Koen](https://mail.google.com/mail/u/0/#inbox/1670f516115ef9bd) about the broken repo URL fix
Fix bug so that script fix is able to remove tag items without posts
- how to reproduce this bug?
- it seems there is a phanton entry which no longer exists on a tag index
- can we iterate over all tag keys during fix to detect this?
Fix bug for 'edit this page' link in production
Fix bug with undeleteable template files prefixed with dot and tell [Stuart](https://mail.google.com/mail/u/0/?zx=j8rkxjpin0du#inbox/FMfcgzGqRZbhWzrwNrgrFLQBBDWBzhxL)
Fix 'back' button in photo template and tell [Bibi](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrcPJTmPXxWvhbmFpvwdfVzhpn)
Fix bug with images zooming inside footnotes and tell [Nathan](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwWCBmtldhMfQRgZjHDpFvSGb)
Fix bug with menu which occur when multiple pages are added at once Menu needs concurrency or atomic operations (so we can build posts in parallel)
GUID bugs:
- Fix duplicate GUID issue and tell [Jason](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrbvKsNQgVWVNKrVqMzRJdDvKk)
- Fix bug with rename catcher which allows two posts to share a guid. It caused a bug with Disqus comments. To reproduce this bug: Rename an entry. Create new entry with old name. Both entries have same GUID.
- Fix bug with two entries with the same guid, possibly related to an entry rename event (i.e. copying the guid across). Make sure that when a rename happens, the old entry is permanently deleted and its guid cannot be reused. I imagine that WRITE foo.txt MV foo.txt bar.txt WRITE bar.txt could trigger this bug.
Fix bug with .emf files in Word Document and follow up with Todd. Can we convert EMFs? Can we pass a flag to pandoc to let them deal with it? Is this just caused by Tiff files? I need a Windows machine to test this.
Come up with a workaround for [Silas's Dropbox business issue](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrbvJhdWCxjRHXRbXpjhZtwTst)
Fix issue with favicon and [tell questioner](https://blot.im/questions/1202)
Can we use [transformers.js](https://huggingface.co/docs/transformers.js/en/api/models#module_models.SiglipModel) for content similarity or auto captioning?
Fix bug with bandcamp embeds in Word Documents and tell [Art](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrcXlgNHJbDLkmkkRmrCGqzHJB)
Fix bug with template editor and ensure POST error messages are passed to client properly through ajax
- to trigger, submit a >5mb file on web template editor
Fix navigation link bug with blog tempalte and tell [Jason](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrbcCBmkcVhfWTpZbmqndwXQrL)
Investigate this [date metadata bug](https://blot.im/questions/936)
Fix bug with chinese characters in template name and follow up with [Alex](https://mail.google.com/mail/u/0/#search/alex/FMfcgzGqRGTCSrMXTznCBvTWhQqvkgCL)
Fix bug with this [question](https://blot.im/questions/648)
Fix issue with git client mirroring on GitHub by follow steps in email and follow up with [n](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqPzKcnQKsQQNkzcRpvCWpWKTr)
Fix bug with the typeset settings do not actually affect anything (you can only disable/enable)
Fix bug with rename detector which caused old permalinks not to redirect to their latest version and tell [Shibel](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChSMBfbsZQQSGSjtghSHKKVzm)
- To reproduce, create file 'foo.txt' with title and permalink 'foo'
- Then turn off server
- Then rename file to 'bar.txt', and edit title to 'bar' at the same time
- we expect /foo to redirect to /bar, but it doesn't
Fix bug not exposing issue with invalid JSON in package.json for locally-edited template on dashboard and tell [Jason](https://mail.google.com/mail/u/0/#inbox/FMfcgxwKjndBRlNNjZtlddcVVfFWVBbg)
Fix bug with particular emoji and tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHNqBKcPSQQHZtCFpKHrPDFkDq)
Fix case-sensitivity issue for relative (and absolute?) paths to files in folder in production and tell [Marco](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHNWHHtTmhpstcFdMfRRpzbnNw)
Fix bug with [many twitter embeds and tell Nash](https://mail.google.com/mail/u/0/#inbox/FMfcgzGllMNfjvRBthVncQtPJQpmrksx)
Fix bug with a once-scheduled post, based on the file's path or previous date metadata. The post remains scheduled even if the date is removed, and even if it is then rebuilt.
Fix bugs with RSS feeds validation. Perhaps extend absoluteURLs helper function? Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgxvzMBqKpcLTtxTzcfvMCVckLMJJ)
Fix bug with date metadata on [Vincent](https://mail.google.com/mail/u/0/#inbox/FMfcgxwJXVMdhvCJPXwVVSKRTFHQTQzn)'s blog and follow up. I suspect it's to do with the ordering of date tokens.
Fix bug with tokens inside blog posts and follow up with [Karoly](https://mail.google.com/mail/u/0/#inbox/FMfcgxwJXfkFdhXCgBCTwGfBCzPhqwJF)
Fix bug with potentially TeX-related escaping issues and tell [Anthony](https://mail.google.com/mail/u/0/#inbox/FMfcgxwJWhzZspbBhTCPBGjvnslgrZlb) and Roy
Fix issue with variable passed to dateFormat function and tell [Leo](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQJlfVpSBNBwDxcSlGGqHXQbh)
Fix bug with image zoomer on mobile devices and tell [Alessandro](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChSCwptjLtLGMjWxdkQNnNfTk)
Fix bug with handling of queries and tell [this person](https://mail.google.com/mail/u/0/?zx=tqp989l7y4yi#inbox/15b575fbc8d80ad1).
Fix post encoding bugs
- Fix [Kevin](https://mail.google.com/mail/u/0/#inbox/1665be131ce98928)'s URL encoding bug. Each entry's url property is not encoded as a URI component on the server but it needs to be.
- Fix encoding bug with greek URLs then tell [Rodericus](https://mail.google.com/mail/u/0/#search/rodericus/15bb13fafc1c34e5) know
- Fix bug with template tags in blog post and tell [Shibel](https://mail.google.com/mail/u/0/#inbox/FMfcgxwCgCJQhBZwgzQVLkKHnwPKVkFC)
Fix bugs with RSS feeds validation. Perhaps extend absoluteURLs helper function? Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgxvzMBqKpcLTtxTzcfvMCVckLMJJ)
Fix bug with [Rodrigo's Word Document files](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVWRXqnjmjBDmcRXKcdxjcDfr)
Fix bug with image minification which produces larger file than source file and tell [Jan](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBTkHlNvhcJLGVRCPvXvjbwsWR)
Date parser bugs
- Fix bug parsing ISO8601 date format and tell [Thomas](https://mail.google.com/mail/u/1/#inbox/1625012def221a8f)
Investigate bug with template views whose names include hashtags and follow up with [Jay](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqPzMvLDJBfbNfLzpkKDzmZSNt)
---
Add [textbundle support](http://textbundle.org/spec/) and tell [questioner](https://blot.im/questions/1385)
- this will help me understand how best to accomplish multi-file posts
Document image zoom disable feature ?zoom=false and tell [questioner](https://blot.im/questions/2236)
Answer [peter's questions about the portfolio template](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJSDbPpcncdNCvCTBrVcbnJGV)
Identify accounts that pay but do not create a blog and add monitoring for this
- There might not even be accounts Just subscriptions in stripe
- Investigate, then Block and autorefund these payments: they're card testers that Stripe's anti-fraud missed
Add way to import directly
- Add/fix micro.blog import to dashboard and tell [Gabriel](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJRvfgrRhXwqDNDlxbpXmRlbd]
- And recurring import from elsewhere
Finish site and dashboard
- Fix live stream of folder sync status
- The site CSS persists in the browser cache
- Make sure folders are zipped when site builds, and delivered through CDN
- Make sure blot resyncs folders with their associated sites when pulled
- Compute a hash of the folder contents and only resync or re-zip as needed
- Think about mtimes, metadata as well as file contents
- The top right button 'your sites' should remember the last page of the dashboard you were on so you can switch from docs to dashboard quickly
Come up with OKRs for Blot
- Churn rate
Light mode/dark mode videos
Windows video + windows finder.css
Rewrite broken link tests
Improvements to templates:
- Library
- mobile
- make links open immediately
- fix archives page
- rename from reference
- move tags into top menu
- add tag filtering (nested tags)
- Portfolio
- mobile
- spacing issue on firefox
- add full control for navigation font and logo font
- add infinite scroll
- add filler nodes for google images grid so you don't get inconsistent sizes
- add control over navigation width
- Improve typography of text posts
- improve navigation between posts
- fix boolean options missing (e.g. hide titles)
- Magazine
- mobile
- rewrite in plain HTML
- Image
- mobile
- rename from photo
Re-attempt iCloud support
- Be clear it's UNOFFICIAL
- Fetch list of people to tell from old GH issue
- Tell [Stew](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJSFktWWJrNvRtnSjQRbwzrJK)
- Tell [VH](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJcdSvvFcRcjNXqvxsZDjkMQh)
- Tell [Jacob](https://mail.google.com/mail/u/0/#inbox/FMfcgzQVwnfNnpqrWTHhgdRXwhgrTbzn)
- Tell [Steve](https://mail.google.com/mail/u/1/#inbox/FMfcgzQXJkSHjtztvhNWNPXGdVkDhKDq)
- Tell [Reg](https://mail.google.com/mail/u/0/#inbox/FMfcgzQXKhPKRfSsfGpXCdcxtFBhdKDt)
Add pause subscription
- Enable hibernation of blogs
Add disclaimer to pricing page for old subscribers
Add Generative tree for account page
Add support for INI files and tell [Frank](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJckFhJhMMwFLzrRTfcSmHbrV)
- General:
- Add paginateable entries list
- Add downloadable sites
- Add static file uploader
- Make templates folder based
- data/templates/blog_id/template_name
- Assign guid template IDs
- Make it possible to rename template directories and tell [Darren](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwHxvsmgwbnxLbDMNDplTLltlc)
- Make template slug seperate from the template ID, simply for human readability
- Add webfont uploader
- Move footnotes into their own property
- update templates of sites with footnotes, replacing "{{{html}}}" with "{{{html}}} {{{footnotes}}}"
- Generate favicons of different sizes from uploaded image
- Tell these people about new templates, and to subscribe to newsletter:
- [Chris](https://mail.google.com/mail/u/0/#inbox/14fc82f57cb2408e)
- [John](https://mail.google.com/mail/u/1/#all/1618ca0420779742)
- [Jan](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChmLnfMTdtNkpLxHTlPJNHlCT)
- [Jamie](https://mail.google.com/mail/u/0/#inbox/FMfcgxwDrRRZTKntrWKJvfDXrRFTzljs)
Add {{#posts-without-:tag}} and [tell steve](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxSRHnwcVVlqvwLFzwRQbsqsnK)
Improvements to website:
- Fix broken link checker
- Create material in docs with title 'Turn X into website' where X is:
- Dropbox, Google Drive, etc.
- Word Document, Google Doc, etc.
- Document text editors
https://coteditor.com/
https://zettelkasten.de/the-archive/
https://tot.rocks/
https://desairem.com/wordpress/ufocus/
- Add guide to useful text editors like [this one recommended by Andrew](https://itunes.apple.com/us/app/write-best-note-taking-app/id848311469)
- do this as a marketing strategy, e.g. target 'blog with microsoft word', 'blog with google docs', 'blog with ia writer' etc... contact the people who make text editors and ask them to link to us?
- Personalize the documentation for logged in customers
- Add [contributor](https://api.github.com/repos/davidmerfield/blot/contributors) / [language](https://api.github.com/repos/davidmerfield/blot/languages) and repo information to source code page using GitHub API.
Add a 'Create template' button to dashboard and tell [Shawn](https://mail.google.com/mail/u/0/#inbox/FMfcgzGwJckGSfncqlFWBtFRHwfVTFDv)
- Add upload to dashboard
- Drag and drop
- Add ‘open folder on drive’ link to Client settings page. Same for Dropbox
- Redo demo video
---
Consider switching domain to blot.site
- add support for different user subdomain in dev?
- set up mail
- switch from mailgun to SES over new domain
Integrate font styles rendering into template model:
- Remove this behaviour from dashboard/template-editor/save/fonts into update package
- Remove font styles from manifesto/manifesto and re-insert them when template is readFromFolder
Add aws cost usage and forecast to daily update email
- https://docs.aws.amazon.com/cli/latest/reference/ce/get-cost-and-usage.html
Make it possible to ask a question without logging in
Can we support google docs even from Dropbox? if the doc is public?
Investigate why [changes made to app/scheduler/daily/revenue.js increased the number of active blogs](https://github.com/davidmerfield/Blot/blob/494900a5dda1d916569c925adfbb6e68606c99bd/app/scheduler/daily/revenue.js#L21-L29) in my email
Ensure that overdue PayPal subscription webhooks map to notification emails
Final polish on stats dashboard
- Add monitor the root disk usage of both servers to stats
- Tie in daily update stats to stats dashboard
Purge old docs CSS and JS from CDN storage cache
Make sure main server can hard restart without issue
Experiment with ways to map folder structure to template navigation
- follow up with Misho
Data use minimization:
- Write automated script to archive overdue blogs from disk and db
- Write script to remove unused and unaccessed static files from within blog folders
- we'll also need to purge the cache of the transformer module for the file
Set up fail2ban on nginx logs
When a post is deleted, we should remove everything except the created time?
Create a queue for purging cache, group requests together to prevent stampede
Prevent overzealous purging of cache for syncs in which the folder does not change
Add WebDav support
Work out why rebuilding template from folder clears cache even if the template is not changed
- stop this
Improve paypal integration:
- [ ] Get create new blog working
- [ ] Add way to modify subscription quantity for paypal users
- [ ] Create new router for paypal subscription settings
- [ ] Test subscription with real paypal account
- [ ] Test new blog creation
- [ ] Test new blog deletion
- [ ] Test switch to annual billing
- [ ] Test account deletion
- [ ] Add subscription pause
- [ ] Make it possible to add paypal as a payment method for existing stripe users
- [ ] Verify signature integrity of paypal webhooks
- [ ] Use PayPal buttons api to modify subscription properties
- [ ] Get account page working
- [ ] Add way to cancel subscription from dashboard
- [ ] Add way to delete account from dashboard
- [ ] Update scheduleEmailNotification for paypal customers
Can I use proxy_store instead of openrestycache?
Prevent Google Drive client from re crawling entire folder for every sync
- i think we need to manually watch all google docs in the folder
Make {{active}} strip the domain from the link [before checking](https://github.com/davidmerfield/Blot/blob/master/app/blog/render/retrieve/active.js#L22)? Or automatically strip the domain from internal links on Blot's dashboard?
Prevent unneeded cache purge when templates are rebuilt, either from folder or on disk in app/templates
Can we add a 'folder rules' section to create ignore globs, multi post globs, etc.
Git client is extremely slow to set up large folders – we need a loading screen
When a folder has lots of elements, trim the list of files on the dashboard, at least on the index page
Store path -> md5 hash on sync
- Use to auto version links to files in your folder so they can be cached
Investigate webp thumbnails
Investigate videos instead of gifs for thumbnails
Fix responsive thumbnail component on photo template (it loads large thumbnail every time)
Eventually configure cloud watch reboot sequence then test it
---
Investigate if we can rewrite git client so we don't need to store double the data - right now we have 48GB duped.
Fix auto titles of 'screenshot at 12:22pm' and make sure the date parser can handle them
Fix title generator so h2 titles within the file dont become the title of the post – this is helpful for obsidian
Get to bottom of issues with questions/tests/list and re-enable disable test suite
The password check on the delete blog page does not print the error message if the password is incorrect? Or just for admin
Fix post navigation on Portfolio template and tell [Questioner](https://blot.im/questions/1894)
---
Improve image posts
- Add opt-in EXIF extraction for photos and enable in the photos template
- Add support for other image formats, by converting them into jpg/webp
- Add support for large image tiling and zooming with photoswipe
---
Server improvements:
- Copy the cron tab into the new server setup script
- Add more stringent checks to scripts which mount instance storage and external volumes
- Install fail2ban on proxy logs
- we don't need to worry about banning CDN ips because those requests go straight to the origin server
- this should reduce origin load
- Get blot proxy communicating with node process via unix socket
- Understand why the server gets so slow when we switch from SSD ebs to HDD ebs
- it would be ideal to use HDD for bulk of blog storage, and take advantage of the local SSD for high performance operations
- Investigate use of aws s3 sync for backing up ebs volume rather than snapshots
- Test reboot for all servers
Add support for proxying particular analytics files and tell [questioner](https://blot.im/questions/2025)
One bad latex equation should not [tank the build process for the whole post](https://blot.im/questions/2037)
Follow up with [Tim](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwCvckCnTJHxSFsQDZnkTPBzp) about activitypub
Work out why we get a 'Zombie process' notification email every morning at 9:05am – now 8:05am it seems the process hangs
Make 'close' button on entry permalink page of reference template work like the photo template and tell [Marco](https://mail.google.com/mail/u/0/#inbox/FMfcgzGsmNSSSRKHnlgCBllnqJCcPhxD)
Wikilinks should have a class property of 'wikilink' rather than a title attribute and tell [questioner](https://blot.im/questions/39)
Prevent double submission on template editor at insertion and front-end levels
Add search bar to template editor
---
Tell [bukit](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwqMCsWCjhPcWpPszlZhtqNnM) when it's possible to change the URL of the /tagged/x pages in the template engine
Wikilinks should have a class property of 'wikilink' rather than a title attribute and tell [questioner](https://blot.im/questions/39)
Preserve file name for SEO purposes when uploading to image cache CDN and tell [Jean](https://mail.google.com/mail/u/0/#inbox/FMfcgzGsmNWvwwvzVGZnPFKnHnkbBWxD)
Add a property to entries which lets you list all the images in a post so [Jean](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwgpcHJMnwFNXtNHWHMlZFFlb)
can add them to his sitemap
Resolve issue with [Stephen's large blog](https://mail.google.com/mail/u/0/#inbox/QgrcJHsBsbkNkMkkkMmLWBxRfnGnWPVwLHl)
- It also seems like server crashes when a massive google drive folder is synced, with a directory containing 6772 items
Add lazy loading option to image settings and tell [questioner](https://blot.im/questions/1806)
Make it possible to rename locally edited template folder and tell [questioner](https://blot.im/questions/1610)
Fix bug with videos on Reference template and [Tell Marco](https://mail.google.com/mail/u/0/#inbox/FMfcgzGslbPSKMXkRbvrHKFTWhbJbPlg)
---
Improve CI testing
- [ ] Add spell checking test
- [ ] Write browser based integration tests for core functionality
- [ ] how can we test the 'reload-server' script?
- [ ] how can we test the 'scheduler' functions? we ran into error where it was running twice
Methods to improve server performance
- consider expanding the replication of the perma_cache across more regions
- consider switching to more expensive CDN type (i.e. not volume)
- switch to more expensive EBS for disk of server
---
Add support for paying with crypto, BTC ETH
- Consider https://github.com/btcpayserver https://github.com/btcpayserver/node-btcpay
- Tell [Chaz](https://mail.google.com/mail/u/1/#sent/165b726aa900158a)
- Tell [Anita](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsSWMtCTdmrbscFCFLggctmxH)
- Tell [Arc](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwqJkLxGTKPXhZPSWVjJqQbjs)
- Tell [Dmitriy](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxSlPTwlRkJxQfntCdmbjFsrZC)
Improve Are.na importer so it handles descriptions + also other file types (e.g. PDF, text) and tell [Marco](https://mail.google.com/mail/u/0/#inbox/QgrcJHsBvDqvbgfkRJfBlwLBwlDHDncxVnl)
Improvements to server
- [ ] move development cdn onto its own host to better simular cross-domain issues
- [ ] test maintenance and redirector on dashboard
- [ ] restrict post to /dashboard route so we can tune nginx logic?
- [ ] tune performance of express-mustache in production and development
- [ ] add optional HTML/JS/CSS minification to express-disk-cache
- [ ] Test overdue subscription re-start
- [ ] Disable call to stripe for every pageview on /account
- [ ] Create blog > Dropbox > Create blog > Dropbox failed to set up properly
- [ ] Prevent GET request to log in page from setting `connect.sid` cookie
- [ ] or otherwise work out how to try and cache everything at nginx
- [ ] log in route should clear 'logged_in_to_blot' cookie if not logged in
- [ ] Use [Lory](http://loryjs.github.io/lory/) to add a slider to the homepage
Improvements to sync/reset scripts:
- [ ] Fix should produce a report which I get email
- [ ] Resync should produce a report which I get via email
- [ ] dropbox reset TO BLOT should handle removed folder
- [ ] dropbox reset FROM BLOT should handle removed folder
- [ ] dropbox reset TO BLOT should handle revoked token
- [ ] dropbox reset FROM BLOT should handle revoked token
- [ ] make google drive reset TO store metadata for case of file/folder name
- [ ] make google drive reset FROM abortable
- [ ] make google drive reset TO abortable
- [ ] make dropbox reset FROM abortable
- [ ] make dropbox reset TO abortable
Improve Google Drive client:
- How do we handle two files with same name and same parent? How does our fileId:path hash handle this? Make sure we delete the right file. Will file.title as opposed to file.name give us the deduped version?
- Bug: move file with deduplicated name from sub folder to other folder
- download should check for an existing file with same name but different fileId and dedupe before storing the path?
- Handle revoked credentials without tanking server
- Can the google drive client handle a server restart during setup?
- database.folder should throw ENOENT and EEXIST errors for del, set, move etc.
- Error handling
- Retry when we get google drive's This service is not available error
- Handle storage quota errors
- Handle 429 errors with exponential backoff retry
- Implement `folder.rename` method to take advantage of Google Drive's true rename feature
- Add a way for sync/build to accept a ctime as an option. We can't set this at the operating system level but google drive's API does return a createdTime value and we could use this as the true file's created date, rather than the date the file is made on the server
- `write` should use the best method for large file uploading
- Work out if we can test this using Mocks
Improvements to Dropbox client:
- [ ] Determine if we can hack our way to determining the file upload date on Dropbox using their API?
- [ ] Parallelize build/download a little more, so posts appear when many files are dropped into folder?
- [ ] Efficiently handle Dropbox file renames with internal hash of fileIDs
- [ ] surface errors during setup on dashboard
- [ ] surface sync issues with Dropbox client on the homepage of dashboard
- [ ] How do we make errors sticky? To make sure users click through to clients page to re-connect to Dropbox, etc...
- [ ] run reset-to-blot when sync fails / errors
- [ ] ensure that when a process dies, any blogs syncing will be reset-to-blot
- [ ] ensure that when a process dies, any blogs setting up db client will be re-attempted
- [ ] reconnecting with the same account and same permissions should not create a new folder for `full_access=true`
- [ ] make full_folder use the old app folder directory – is there a way to disconnect it from the Blot app? otherwise add a big warning to prevent confusion about where the new folder is when transitioning permissions
- [ ] handle the download of large files gracefully too
- [ ] consider adding back in download/upload stream, but add a check to see if the download is stuck then fall back to other method?
- [ ] add a check for folder storage before doing mass upload
- [ ] handle folder full error appropriately
- [ ] handle a sync lock failure on second blog when migrating an app folder
- [ ] check content hash for upload possible
--
Add support for Indian payments and follow up with Indian customers
- [Pradeep](https://mail.google.com/mail/u/0/#inbox/FMfcgzGsmrDMJmZwNZcXxGqRsWfbvPsq) wants to join
Add support for Obsidian media embedding
- ```![[_image.png]]```
- https://help.obsidian.md/Linking+notes+and+files/Embedding+files
- [ ] Tell [Kevin](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtxSqKVMPjDzpgJtrmcRRZCcpp)
- [Look into Wikipedia's blended wikilinks](https://en.wikipedia.org/wiki/Help:Wikitext#Blend_link)
- [ ] Update response to question about adding `class="wikilink"` replacing it with `title="wikilink"`
- [ ] Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgzGkbDftzhXHGrmzXrjtcMbGrmxM)
- [ ] Tell [Robert](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlksJFbBlWtzMHgcxcdBRBhQSJ)
- [ ] Tell [Levo](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrcrrDnssHhbwmzzNFnSbMJqKh)
- [ ] Tell [kevin](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtxSqKVMPjDzpgJtrmcRRZCcpp)
- [ ]Follow up with Marco about:
`![La Escocesa 2006-2010](files/_laescocesaold.png) ![[files/_laescocesaold.png]]`
- [ ] Tell [Matthew](https://mail.google.com/mail/u/0/#inbox/FMfcgzGsmNTdHRCzndwFkJLDSgnzHvrV)
---
Look into Pandoc's RAW HTML extension for resolving issues mixing HTML into markdown files:
- markdown_in_html_blocks
- raw_html
- native_divs
Move Wikilinks to Pandoc
- Update version of pandoc
- Support [Obsidian's syntax for embedding files](https://help.obsidian.md/How+to/Embed+files) and images, and tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgzGkbDftzhXHGrmzXrjtcMbGrmxM) and [Robert](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlksJFbBlWtzMHgcxcdBRBhQSJ) and [Levo](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrcrrDnssHhbwmzzNFnSbMJqKh)
- Follow up with Marco about:
`![La Escocesa 2006-2010](files/_laescocesaold.png) ![[files/_laescocesaold.png]]`
Add explanation for which files are causing which menu links
Add export button to overdue subscription page
Add way to restore a blog from export
Add way to escape commas in tags and [tell questioner](https://blot.im/questions/1431)
Add way to expose template build metadata errors on dashboard
---
Investigate ignored files situation
- does rebuild update ignored files list too?
- handle new pathNormalizer behaviour
- 'ignoredFilesKey'
- why are ignored files not added to ignored list?
- add 'ignored ghosts' check to sync/fix
Improvements to importer
- Can we offload an import into a resource constrained child process?
- Can we queue up imports and process them one at a time?
- Add interface to move import into folder directly
- Add scheduled imports on regular basis into folder directly
- Add nice import step under 'Services' and as part of sign up
- Fix bug with script to import wordpress posts and follow up with [Simon](https://mail.google.com/mail/u/0/#inbox/FMfcgxwGCtMPcJhlmcdNvWwtWvgzWJvZ)
- Improve Ghost importer and tell [Vin](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBWSwbGRtFTnJCPCXzVHntQPtC)
- Create importer script for [John's posts from flickr](https://mail.google.com/mail/u/0/#inbox/166da622325d19e7)
- Create importer script for tumblr text files and tell [Sawyer](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVMhRNdQhfDwlXsqqFNgmKfTk)
- Create importer script for Weebly and tell [David](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBTjzpgHQZMJSsvjktggRFNpDw)
- Map excerpt metadata to summary for Jekyll converter importer
- Look into how Hexo has written imports for [blogger](https://github.com/hexojs/hexo-migrator-blogger), [joomla](https://github.com/welksonramos/hexo-migrator-joomla), [rss](https://github.com/hexojs/hexo-migrator-rss), [wordpress](https://github.com/hexojs/hexo-migrator-wordpress).
- Add an importer for Twitter and sell [Sawyer](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVMhRNdQhfDwlXsqqFNgmKfTk)
Add 'confirm email address' flow to prevent typos in emails
Add simple form endpoint, could be used for contact forms
Add a 'light local server' for template development which zips then posts template files to Blot's endpoint for live-auto updating previews for a given blog – there would need to be authentication with a one-time pass
- some blogs could be used unauthenticated
Add a bootswatch template and [tell Michael](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqRQBnhffbhgdVXCMpzGpbJgbW)
Add theme with photoswipe and use sharp's tile generation feature along with
Add `Ignore: yes` metadata to trigger the ignored file behaviour
Add [hot reload for preview subdomains](https://blot.im/questions/832)
Tell [Jarrod](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrbRSDCZqMwzjDdqdGCkScxpsw) when local template folders better reflect template names
Add way to set the slug-part of a URL for a post and tell [George](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsdBjKHPdsRXJBGSbxpQQCbCN) and follow up for [post in Questions](https://blot.im/questions/23) and tell [Jarrod](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQcpsRhzFwxVGFJLLTRsFFGKj)
---
Can Blot blogs be federated? Respond to [Nigel](https://mail.google.com/mail/u/0/#inbox/FMfcgzGrbRWfcBdwKdRZxsBKjKDwrkTp) once I do some research on this
Rebuild folder sites and tell [Michael](https://mail.google.com/mail/u/0/?zx=j8rkxjpin0du#inbox/FMfcgzGqRQBnhXzfWsqFZhBCGVMMzDGX) that the broken image link is fixed
Follow conventional delimiters for [KateX](https://mail.google.com/mail/u/0/?zx=j8rkxjpin0du#inbox/FMfcgzGrbHmWxcrVtbhnzHVnCtfLZhxH)
---
Support larger files on DB client and tell [Marco](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQmWjKnmPrwKSXMdZNmlqmtss)
Add support for new formats:
- jupyter notebooks (via pandoc) and tell [questioner](https://blot.im/questions/2297)
---
Add 'download as zip' option to template editor
Explain that the git client uses the master branch and repos from github will use main in the docs and on the dashboard then tell [N](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqPzKcnQKsQQNkzcRpvCWpWKTr)
Inject title metadata into h1 tag for all the text-based default templates and tell [questioners](https://blot.im/questions/795)
Send out cancellation confirmation emails with option to give feedback
- auto-refund people who immediately close their account after signing up
Get to the bottom of the slow cloudflare issue and follow up with [Wen](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqPzBWZcLJcwtWTXTbQjMbVrZB)
Add [scrubbing pagination to images template](https://jsfiddle.net/tdnc28vm/1/)
Git client improvements:
- Surface status of git client intialization when you first set up your blog on the git client.
- Fix issue which occurs when you change your username with the git client
- Fix issue with switching from Dropbox client to Git client, in production which affected Nat
--
Re-enable partial templates in posts/pages
- Tell [Matt](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpGwrFkhsBptjFjjmRcNHSBsGX)
Add tag to iterate over all images in a folder and tell [Laurel](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmvBwZtktzGVFtcfDWbGZKhsfh)
Fix bug with Work out why Pandoc cannot handle 'linked' images (instead of conventionally embedded images). For instructiosn on reproducing bug, see [SG's email](https://mail.google.com/mail/u/0/#inbox/FMfcgxvzLhcqMVrZbNlKTcVmxVHwRmJC) and follow up when resolved.
Fix bug with tags that contain slashes and tell [Jack](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpFgzpsCkCMGqnClfqMkWZqNNz)
---
Determine why we get zombie processes after running reload server script.
Create starter kits for each template
- e.g. a starter kit on the blog template for a writer, or a photographer, or a journalist, or an academic.
- these could be downloaded as folders on the template page?
- Get [David](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpGnDfkQbzQqMVDndbNVzwCWZC)'s feedback when one exists for writers
Create an index of customer-created templates and add [Matt's theme](https://www.mattlangford.com/kalena-template-for-blot)
Add 'Hidden: yes' metadata to replace 'Menu: no' and tell [Sebastien](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmvTstgvzhzNkPFXdgStpTJvrN)
---
Add method to merge updates into custom templates and tell [Dave](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpGnDfkQbzQqMVDndbNVzwCWZC)
Improve backlink's tolerance
- Add support for full qualified URLs in the backlinks list for each entry. For example, if your blog is example.com, the following link will not appear as an internal link: [Foo](https://example.com/foo) because build/prepare/internalLinks is not aware of the blog domain/handle
- Tell [Eli](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlkFlwSwXGrFZwvSKdHKvcxplV)
- Add support for internal links without a leading slash
- Tell Laurel
Add support for 2FA (Two factor authentication) then tell [Luke](https://mail.google.com/mail/u/1/#inbox/163993b0f8499ab3), [Max](https://mail.google.com/mail/u/1/#inbox/1641e9bd104c5b77), [Chaz](https://mail.google.com/mail/u/1/#inbox/165b726aa900158a), [Prathamesh](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQmWhhpCVSlbhdvlvWdmdtJWQ) and [Tom](https://mail.google.com/mail/u/0/#inbox/FMfcgxwDqnpZncgBDbDskMZdPMXkgGCN).
Add support for SSO then tell [Prathamesh](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQmWhhpCVSlbhdvlvWdmdtJWQ)
Make retreiving files from server case-insentive
- i.e. add resolve case insensitive path to file to blog/asset.js
Prevent full disk from affecting access to people's blogs.
- switch into a read-only mode?
- the specific issue that takes down the server seems to be the redis error (cannot persist on disk, out of space)
Investigate [Adam's broken template](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlkPcpFqrPfrVjQTdjNSTMbgrP)
---
Improvements to dashboard:
- Smooth over the custom domain adding process
- cache domain validity and display checkmark on dashboard
- validate the domain is pointing to Blot before allowing resty-auto-ssl to request a cert. we seem to get into a DNS mismatch where a client thinks a domain points to Blot, and triggers a cert request through resty-auto-ssl but whatever DNS server Blot's server points to has the stale record (pointing elsewhere)
- Disable redirect to HTTPS for blogs by default (to ensure old browsers without SNI work) but ensure all prominent links to the blog on dashboard use HTTPS
- Improve clients
- cache sync validity and display checkmark on dashboard
- surface errors for clients on dashboard index
- add a change button next to the dropbox folder selected on the dropbox client where possible
- add blocking process to dropbox connection when writing folder contents
- ensure the app permission access_token is destroyed when switching to full-folder and vice versa
- add a folder chooser during full-folder setup
- ensure you can move the folder in full-folder permission mode
Move citations out of `{{{html}}}` and tell [questioner](https://blot.im/questions/298) and [Mikka](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlkPcprJZlTSFbTGlqSPJcfWJJ)
Add [OneDrive](https://onedrive.com) client
- Tell [Nenad](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxSHlNTlFCKwNsPbZPxRgbbVkB)
- Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgzGkbDVrfBwGjnVDdtXkNxKpwjfq)
- Tell [Shantesh](https://mail.google.com/mail/u/0/#inbox/166df93b38231ec9)
- Tell [Nathan](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVgvsdfSnqBppQrXLTVjZBBzp)
- Tell [ekskog](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVDBmdRXFWTFLqxKgxVkdWnWL)
- Tell [John](https://twitter.com/seismonerd/status/1096862510404128768)
- Tell [Simon](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChcrhfQNXvkFkdtKntXlhjNfm)
- Tell [Andrew](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLtGjKFlzJFfRcVQdWdMBkZzdK)
- Tell [Naveen](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHMZJvNGJxTXXcnsmXDqdkNnNq)
- Tell [Emad](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHNCtzTpZsgXXjWsrTGsTTZLjx)
- Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgxwKjnVGxPWrFPKJRqtlnbkHfwXt)
- If OneDrive for Business is supported tell [Josh](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBVqWwRgxrwLRzrNscfJtllhXz)
---
Re-order blog engine routes such that pages/entries are evauluated first, making it possible to set up custom redirects and tell [Marco](https://mail.google.com/mail/u/0/#inbox/FMfcgzGllCcNbxjDTdZzRCcNgmnJjXWM)
---
Write new converters to turn files into posts
- Add AVIF image post support and tell [Simon](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlkFqWwhwwQgrrlwKtctkTgRXx)
- Add support for [Jupyter Notebook .ipynb](https://predictablynoisy.com/posts/2019/2019-11-11-ipynb_pandoc/#ipynb-to-html) using Pandoc and tell [Arnab](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmtNdkGQxbMVblqjvkHwSMTBbW)
- Add support for .doc using [libreoffice](https://www.npmjs.com/package/libreoffice-convert) and tell [Kyle](https://mail.google.com/mail/u/0/#inbox/FMfcgxwKkHZVgwCNwsdlhdzCggRtsRhN)
- Video posts (.mp4) - add way to opt-in to these
- Add support for .tiff images
- OPML files and tell [John](https://mail.google.com/mail/u/1/#inbox/1659bac084c3e404)
- Audio posts (.mp3 for now?) and tell [Kevin](https://mail.google.com/mail/u/0/#inbox/FMfcgxvzLhcqVldHMCFpTWDmfrRHfwpg) - add way to opt-in
Write new clients to sync blog folders
- [rsync]()
- Tell [Harry](https://mail.google.com/mail/u/0/#inbox/FMfcgzGxRdvrcfMwTVnvGrHKgvJmfwxM)
- [SFTP](https://www.npmjs.com/package/ftpd)
- Tell [Coraline](https://mail.google.com/mail/u/0/#inbox/FMfcgzGllCmcFflWmXcCdVzTJztDTwXx)
- Tell [Calvin](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChclvkfHMWfnqGdWkQnzMdklW)
- Tell [Fabrice](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHNCspWMdnbCdzfHGwBrSKPBSC)
- [NextCloud](https://nextcloud.com/)
- Tell [Vincent](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpHHVZggXQRzJKNTrJHRxLdLjt)
- Tell [Coraline](https://mail.google.com/mail/u/0/#inbox/FMfcgzGllCmcFflWmXcCdVzTJztDTwXx)
- Tell [Andrew](https://mail.google.com/mail/u/0/#inbox/FMfcgxwChJgWDpnsGBCXsCwkxRZnXMph)
- Tell [Mike](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHMGDWmSXxbJkvjZbtvdQtNNGZ)
- [Box](https://box.com)
- Tell [Eric](https://mail.google.com/mail/u/0/#inbox/FMfcgxwHMZRzCcPkNppMpSbBzNRKFSNs)
- [Syncthing](https://www.npmjs.com/package/node-syncthing)
- Tell [Jason](https://mail.google.com/mail/u/0/#inbox/FMfcgxwCgpVWzZTVxccmWLmnPBmDFjvV)
- [Github](https://github.com)
- Tell [John](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmvBnVvqHdJXLgDhrtChCqdMQX)
- [Jumpshare](https://jumpshare.com)
- Tell [Ömer](https://mail.google.com/mail/u/0/#search/omer/FMfcgzGxRnkSFxdSmGLmNQpXjXfBSChT)
- pCloud
- Tell [Omaid](https://mail.google.com/mail/u/0/#inbox/FMfcgxwGDDjqhCxHhJqbGlGNZsfkWWQf)
- Tell [Anders](https://mail.google.com/mail/u/0/#inbox/FMfcgxwKkRFxsDShhsHGNcdRqwHFMmJM)
- Tell [Tim](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlkZCjPBbnKtcXvrMQnxSwHBzk)
- Tell [JMN](https://mail.google.com/mail/u/0/#inbox/FMfcgzGpGwtXQsVFFTcnTJdBTNdkMmXv)
- Dropmark
- Tell [Rado](https://mail.google.com/mail/u/0/#inbox/FMfcgxwGDDjrKSQVTXqvgFRGrhMSFvrR)
- Proton Drive
- Tell [Ted](https://mail.google.com/mail/u/1/#search/proton+drive/FMfcgzQVxlMmFdqvrMHgfsFRfRDHLFTh)
---
Improvements to backup system
- Add hourly local redis rdb dumps to /cache
- Test maintenance mode
- Add script to roll back into hourly local db dumps and remote backups
Apply helper/imageminify to images in posts with opt-in
- [ ] Run these changes past John, get opinion on [optimized images](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsmhMtGvPcwxlSHSSTFVpJVbd)
- [ ] Talk to Marius about [his opinions on the compression settings](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLtQPwXwJrwgMzjfvDtcwFZzFC)
Begin collecting proper measurements for page-rendering speed on the server
Add raw-link -> open graph cards/embed function, which would fetch the title, description and thumbnail for a link using <meta> tags. Tell [Robert](https://mail.google.com/mail/u/0/#inbox/FMfcgzGlksJFbBlWtzMHgcxcdBRBhQSJ)
Improvements to teaser generator
- Improve estimate of teaser length
- Remove trailing non-text elements (like <hr>)
- Add {{small}} and {{long}} versions of teaser?
- Fix bug with makeTeaser for ~/Dropbox/bug.html which locks main process painfully
- Internal links (e.g. #section) in {{{teaser}}} should be resolved against the entry's permalink.
- Add hasBreakpoint property to entry to allow greater control over display of {{{teaser}}} and tell [Pratik](https://mail.google.com/mail/u/0/#inbox/FMfcgxwBTsfMTHqWMQFmprMcjNpdBQzp)
- Fix [issue with teaser generator](https://github.com/davidmerfield/Blot/issues/15) that locks up a build process, sometimes for 10+ seconds.
- Make it [possible for users to select length of teasers](https://blot.im/questions/823) and [Leo](https://mail.google.com/mail/u/0/#inbox/FMfcgzGqQJdjwTLkHkRZvZTQvfSzSFTq)
Performance improvements
- Consider switching redis client, perhaps to ioredis?
- Use a docker image to speed up test suite: https://github.com/davidmerfield/Blot/pull/463
- Faster server, with SSL termination across CDN
- set up 'cdn.blot.im' as cloudfront distribution endpoint?
- Streamline and cache loading of data on dashboard
- Ensure node.js server has one process per CPU
- Detect CPU intensive functions in node.js process
- Use the [--trace-sync-io command-line flag](https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production) to determine if Blot is using any sync methods inappropriately
- Can we keep the pandoc child_process running and pipe stuff in and out for speed? Measure before after to ensure this helps
- Add request level timeouts to prevent server swamping
- ensure to remove the timeout from the SSE streaming routes (drafts, sync status on dashboard)
- read this guide: http://expressjs.com/en/resources/middleware/timeout.html
- it seems we also need to cancel the resources involved in responding to the request (i.e. disk io, db calls) for this to be really useful
- Add a timeout of 15 seconds for building posts.
Server changes
- Write useful benchmark tool for Blot
- Work out how to detect stray build processes. There were a bunch of zombies consuming memory on Blot's server. Work out how to kill them safely
- Experiment with different EBS types, perhaps try to use ephemeral disk more since lower latency?
- Take full advantage of attached SSD
- use rsync/inotify to synchronize 'source of truth' EBS disk with the local SSD cache then modify NGINX to check the synced folder on the /cache disk
- on boot we would gently copy across all /blogs folders and the /static directory in background task
Add [line numbers](https://github.com/wcoder/highlightjs-line-numbers.js/) to highlight.js hljs code tags
Convert [Vitepress](https://vitepress.vuejs.org/) to Blot and tell [Nicolas](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmtNldkFnLGgZVNfqLcvBjVxWW)
Expose log files on blog's dashboard and tell [Roman](https://mail.google.com/mail/u/0/#inbox/FMfcgzGtwDDXlpTvjNdJwmjXTCzGTqbW), [Sönke](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLtsxjSMlVmNRFGJJxkpsVFNvg) and [questioner](https://blot.im/questions/136) and [John](https://mail.google.com/mail/u/0/#inbox/FMfcgzGmvBnVvqHdJXLgDhrtChCqdMQX)
Add end-to-end tests for brochure site to test sign up flow (use Playwright? Phantom? Chrome headless)
Improve wikilinks lookup algorithm:
- [ ] Add support for 'shortest path where possible' on Obsidian
- [ ] search current directory for filename
- [ ] search subdirectories for filename
- [ ] search parent directories for filename
- [ ] Add support for 'absolute path' on Obsidian when the vault is a sub directory of your blog folder
- [ ] How best to accomplish this?
Support Obsidian-style media embedding and tell [questioners](https://blot.im/questions/746)
Improvements to simple local server (npm run local):
- Consider using [redis-mock](https://github.com/yeahoffline/redis-mock) and [mockery](https://github.com/mfncooper/mockery)
- Persist data somehow? import/export from local folder .blot?
- Fix 'Visit' link on dashboard
- Can we expand this to a simple self-hosting process ('npx blot-server')?
Template engine plan
- create data/blogs/blogID/templates directory
- show error message on preview-of subdomain
- only allow valid templates to get stored in data/blogs/blogID/templates, used for live site?
- maybe we only store in redis valid templates, live site pulls
---
Improve server-side scheduled tasks:
- Write task to identify and delete long overdue customers
Fetch dimensions of images even if optimize and cache is disable, so that image zoom can work. Tell [Joshua](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsmhMtGvPcwxlSHSSTFVpJVbd)
Add action to lint code with jshint and eslint
- any other static code analysis tools?
- separate code to check for broken links, run in parallel
Improvements to metadata extractor:
- Improve date parser to use time from file creation date if it's within the same day as the date specified in metadata and follow up with [Nicolas](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsShbhKRcvhWJlKRPHPctMnWM)
- Fix summary generator such that a subtitle is used for summary text (i.e. an h2 directly following an h1) We still want to prevent the scenario in which a later h2 becomes the summary, though. Notify [Jessica and rebuild Jessica's site](https://mail.google.com/mail/u/0/#inbox/KtbxLwghhxtxrtdGHFqBRMcDGkGWtxvSdq)
- Add support for entry property with escaped double quotes, tell [Jay](https://mail.google.com/mail/u/0/#inbox/15e396dbd8350972)
Reduce image compression settings and tell [Joshua](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsmhMtGvPcwxlSHSSTFVpJVbd)
Improve questions section of site, in approximate order of importance:
- Add way to mass-rename tags
- Add display aliases for tags e.g. how -> How to use Blot, etc.
- Fix breadcrumbs within Questions section
- Fix pagination
- store version history of the question and answer edits
- add option to hide/delete a question
- question tagging, including a list of all tags, and popular tags
- give the 'ask' and 'answer' textarea inputs the full functionality of the GitHub issue/PR comment inputs (i.e. code snippets / preview / copy/paste screenshots from clipboard)
- email notifications (There's an existing system in place for sending emails in app/helper/email)
- upvoting for topics and upvote-based ranking on the topic index
- show vote count and answer count next to each question on index
- add a filter for topic index to show questions by: 'Newest', 'Active', 'Unanswered', 'Votes'
- 'run code snippet' feature / similar to trinkets.io
---
Redirect URLs with trailing slash when possible (i.e. not directory browsing) to [fix possible duplicate content penalties](https://moz.com/community/q/duplicate-content-with-a-trailing-slash) and tell [Marius](https://mail.google.com/mail/u/0/#inbox/FMfcgxwKkHhPFPKFBzQjQQHwlrRWwbKq)
- Add rel=canonical to all the default templates, or fix the issue that Blot serves the same thing to URLs with a trailing slash, and without.
- If we do add rel=canonical, make sure to consider the situation where someone mounts a page to the index of their site, e.g. /page/1 and / will now be different.
Add way to nest tags / hierarchy for tags and tell [Uzoamaka](https://mail.google.com/mail/u/0/#inbox/FMfcgxwLsJwTqFWjRgHLhPXJgBtnGwJJ)
Adjust the chargeForRemaining function in create-blog such that the balance is added or deducted from the proration charge.
Rewrite transformer (in app/helper/transformer)
- Speak HTTP properly, respect backoffs, use/send eTags
- Share information across blogs?