-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtodo.txt
289 lines (201 loc) · 11.9 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
- cleanup hard-coded names: "web"
- cleanup: Comic::not_yet_published should not consider locations.
- cleanup: always use lower case language names in templates; accept any
case in comic metadata for backwards compatibility?
- feature: reject slashes and other funny characters (backslashes? colons?
dotdot?) in all folder names in settings (File::Path::makepath CAN handle
slashes and makes a tree, as expected), but certain characters may or may
not work if local OS and web server OS differ, and some code assumes only
one level of directories (e.g., all template processing that defines the
root variable).
- feature: more email customization: templates (per language), subject
prefix, EHLO host name, max recipients per message
- defect: Mastodon 500 error when posting images
- cleanup: rework variables available for templates: standardize names and
case, pick decent names, DRY up them up, document them
- feature: (output) modules dependency graph, to easily add new output
modules, and to decide to skip output (and check) modules based on their
dependencies being up to date
- should the names in the JSON configuration file be case-insensitive? Could
be confusing when case actually matters, e.g., for Perl modules.
If case matters, make sure it's used consistently. Language names are
still used inconsistently.
- refactor: Perl: use feature qw(signatures); no warnings
qw(experimental::signatures); or Function::Parameters, Method::Signatures
- defect: twitter with @someone does not get tweeted for some reason
- feature: list comics (svg files) under series headings (hideable?) in
backlog, to see which comics are in a series; extend to tags and who
- feature: put unpublished comics in the right position in their series
- feature: define comic order by refering the previous or next comic,
instead of having a date, so that inserting one for current events doesn't
ripple through the backlog (and still maintaining a regular / weekly
schedule); or provide a script that inserts a comic by moving all others
(complicated, needs to know on which dates comics are published, and would
still mess up comics that need to stay in place for e.g., holidays)
- feature: allow adding (invisible) watermarks
- feature: transcript needs to check all frames for ordering, not just rows;
that should get rid of space padding in texts
- feature: handle more frame varieties, e.g., long frame over 2 rows on the
side
- feature: allow comic to be in more than one series
- feature: export svg instead of png (for a truly fluent / responsive web
design), but would also need to offer the font for download, I guess? or
chop the svgs or pngs up per frame (ugly, relies on either table-based
HTML layout, CSS magic beyond my skills, or chopping comics by rows only)
- feature: minimize svg file sizes (e.g., with svgo), if svg export is supported
- feature: generate latex code for pdf, or generate pdf right away (this may
be just a templating issue)
- feature: liner notes with comments in pdf, suck in other interesting
documentation. This can pull stats per comics from git: how long between
creation and publication, how long was the backlog each Fri, how big was
the ideas file each week, how often was the comic changed (after being
published).
- feature: sizemap should have colors depending on where the comic was
published, not published vs unpublished
- feature: make more sizemap svg attributes configurable
- feature: add a thumbnail / preview for really large images (posters),
especially in RSS
- check for date holes (why? are those bad? only in the future? but I could
schedule a xmas or Fri 13 comic ahead of time and then have holes and
that's ok); warn in backlog if no comic for next Friday
- feature: more social media: Openbook, Ello, Diaspora, inrupt.com
(via Zapier?)
- feature: use inkscape shell to export in bulk (could be faster than
creating multiple inkscape processes), would be great to avoid writing
temp svg files if inkscape accepts the svg on stdin
- publish on CPAN, add badge to README.md like this for Minilla:
[![MetaCPAN Release](https://badge.fury.io/pl/Minilla.svg)](https://metacpan.org/release/Minilla)
https://badge.fury.io/for/pl
- feature: check that speaker names all show up in the "who" metadata (but
be careful about additional text, like "Paul, opening a beer:")
- performance: write qr code file only when writing the pngs, i.e., when the
source has changed (really only need this if the generated title / qr code
file name has changed, but this is harder to detect)
- performance: speed up with multiple threads for checking and converting
svg files (1 thread per comic, then wait till all are done; reuse threads
for writing per-comic pages, when all next/prev links are known)
- feature: verbose and debug flags to print what's going on (helpful for
configurable checks and actions)
- refactor: Twitter module uses outdated Twitter 1.0 API; switch to Twitter::API
or do the http calls manually; rename to X.
- feature: check 2FA for Reddit and Twitter
- performance: when modifying only the latest comic (or an unpublished
comic), don't recreate all html pages (only if the latest comic file name
(title) changes, links need to get updated). This should speed up final
touches on the latest comic
- defect: frame detection for text outside of a single frame (comic title)
does not seem to treat that text as after anything within the frame. The
whole frame handling code needs a close look.
- feature: should frame detection at the top of the comic use frames of the
next (first) row? that would allow having a title above the frame, like
"yesterday" and "today".
- defect: does it treat text outside of a meta layer as speaker label just
because it ends in a colon (motivation.svg)? it probably should not.
- feature (defect?): transcript check needs to not just grab all texts in
order but also respect layers: don't treat regular text as speaker
indicator just because it ends in a colon (could be a before / after style
comic).
- check if meta text is not in a meta layer? by checking for colons? but
trailig colons should be ok.
- feature: upload to e.g., imgur.com and then post a link to that on reddit.
This may be interesting for people not running their own website, and for
subreddits that only accept file hosting on certain sites (like imgur).
- feature: a rss / atom feed module that doesn't require the user to provide
a template and hence know the feed format.
- feature: add a simple tag cloud by default if the user doesn't provide a
tag cloud index template.
- feature: sitemap should work without people having to define a template
- feature: if we keep the sitemap via template, filter the list passed to
each template instead of passing the filter notFor function for easier use
- feature: post "classics" to social media if there is no new comic
- feature: complain about unknown settings to catch typos (done for Generators,
missing in Checks)
- clean out backlog: when a comic goes from backlog to published, remove its
html file and qr code image from the backlog directory
- feature: check text positions as double, so that you can move texts
minimally to control the transcript without visual impact
- performance: does it make a difference to remove unneeded top level layers
(other languages, turned invisible in Inkscape) instead of switching them
to hidden? Files would be smaller (is disk space an issue anyway?), but
would converting them be faster?
- replace vars{'tags'} and vars{'tagsOrder'} in backlog with an ordered hash
if Template supports this nicely
- feature: backlog currently appends language name to tags and series, it
could instead return hashes with languages as keys. On the one hand the
template gets more complicated (one more nested loop), on the other hand
it's cleaner and would allow to show / hide tags or series per language
- refactor: break up Comic::Out::Backlog into the actual backlog part and
metadata (e.g., tags) aggregation overview
- feature: support aggregating metadata that's not per-language in the
backlog (author, contrib, published when / where)
- feature: default subreddits should be per language hash, both in config
and in comic metadata (support meta data single value for backward
compatibility)
- feature: Comic::Social::Twitter needs a svg mode
- performance: write everything needed to publish (png dimensions,
transcript), to a cache file (database?) so that publishing code doesn´t
need to scan all comics again (may be tricky with generating pages for
archive, tags, etc)
- feature: see metadata should try to resolve path relative to current
comic
- feature: allow copying static files and pipe them through a Template to
modify bits in mostly static files, like a copyright year in an index.html
Maybe this could be done in server-side includes.
- feature: deduct output path from fragments, like outdir / base dir plus
language placeholders, for less repetitive configuration files
- feature: warnings as errors
- feature: warn about spellcheck ignore words defined in the comic but not
used
- feature: specify qr code image size (e.g., in pixels)
- feature: allow picking up Dublin core entities from Inkscape's document
properties: Creator = Author and Artist, Rights = Copyright; use for PNG
metadata and make available in templates
- feature: pick up Contributors from Inkscape document properties, make
available in templates (merge with current contributors JSON metadata);
but then again this could be confusing if metadata is spread over Inkscape
regular properties and metadata JSON.
- feature: use relative links for HtmlLink for easy offline use
- doc: add example comic project with comics, templates, cron script,
settings.json
- feature: disable one or all checks on the command line... sounds hackish,
after all, the configuration controls features like checks, or the entry
point (Comics::generate vs Comics::upload)
- feature: allow putting a ssh key for rsync in the config, so that a dumb scp
doesn't skip a .ssh directory or .ssh-key.pem file (when switching between
computers)
- feature: decouple archive comic pages from index.html; this could make for
easier templates if the main page differs a lot from each comic's page
- feature: on the publish day: warn (email, ...) if there is no comic
scheduled for today (maybe only if there are comics in the backlog);
probably warn the day before already
- feature: caldav support to show planned comics in a calendar
- feature: calendar widget in backlog to show for which days a comic is
scheduled and where holes are
- feature: cli tool to add a new language to an existing comic: language
layers as in another language, empty JSON attributes for metadata
- feature: multiple pages comics (for print or ebooks)
- feature: patreon integration: designate patreon only-comics, or upload to
patreon earlier than to website
- feature: substack integration
- feature: blogger.com integration
- feature: medium.com integration
- feature: Wordpress integration
- feature: Lemmy integration
- feature: Threads integration
- feature: git integration: host your comic on github? Publishing module could
commit to a (separate?) repository, push changes, and the web server checks
out from git.
- feature: warn about missing or bad metadata
description: should not be empty
published where: not empty? certain well-known locations? (would only
make sense it these locations are configured somewhere, but most don't
need configuration)
- DRY up root vs settings->Paths->siteComics vs indexAdjust in templates
- DRY up backlogPath (has the language) vs Settings->Paths->backlog
- in Comic.pm:
$self->{urlEncoded}{$language} = 'https://' .
Net::IDN::Encode::domain_to_ascii($domain) .
"/$self->{siteComicsPath}" .
uri_escape_utf8($html_file);
why not uri_escape siteComicsPath? Could be non-ascii.
- feature: support a single domain setup with top-level language directories