to.do for MakeStuff
Many of the following items were pulled over from to.do in the 2014 year-end
cleanup. More ended up in wibnif.do, and should probably be consolidated here.
=========================================================================
BUGS:
o [scripts/import-blog-entries] need to slugify tags, too. Keep ", "
o [scripts/import-blog-entries] should replace cut and user tags.
o [scripts/init-deployment] make deployable doesn't work.
o [deployment] post-update hooks are out of date; there should be a way to update them.
o [flktran] need to be able to specify CC license subtype; in particular my songs need
to be CC-BY-SA-NC for monetization.
o [flktran] should be able to handle list environments and a subset of math.
o [make/songs.make] body text in other formats, e.g. markdown
o [charm-wrapper, defines.make] markdown processor. charm-wrapper uses kramdown; the
MARKDOWN in defines was kramdown but is now pandoc; turns out I was using an outdated
gem for kramdown. GitHub etc. are now using the CommonMark Spec -- cmark is a C implementation. MakeStuff should either find
an implementation that works or get it from a config file if pandoc isn't available.
o MakeStuff should look for a global (i.e. home directory) config file for
system-dependent definitions.
General:
o in shared projects (e.g. github) make push should always happen on a feature branch,
and can use -f. That would make it possible to filter out commits that are only used
for syncing between workstations. Use "git merge --squash"
o rylnd/shpec: Test your shell scripts!
Blogging:
o probably useful to have a .do -> .html formatter, too.
= DW field size limits: custom mood: 38, Music: 80, Location 80
o last-post should take date (yyyy/mm/dd/) on command line;
WAV->FLAC
o Move to a workflow that uses flac instead of wav. Audacity can export it,
and most of the tools can handle it. cdrdao can't, but Master is generated from
Premaster/* by sox. normalize-audio might not -- that's a problem. But its
package recommends flac, and libaudiofile1 supports it, so maybe it does now.
o Premaster/WAV -> Premaster; make it all FLAC.
Tag the flac files in Premaster; hopefully it will be possible to transfer the tags
to the ogg and mp3 files.
o upgrade makefiles in older record directories.
songs.make, Songs/ improvements: (NOTE: most of these aren't really MakeStuff issues.)
~ eventually, make lyrics visible for logged-in band members; maybe fans.
It's security by obscurity, but lyrics.* are always there, just not indexed.
o web links for lyrics we don't own; on the songwriter's official site if possible.
o header should be #included and auto-generated; that's the way to do title and
navbar correctly - Songs/name currently aren't links.
o be nice to have a song index on the left; maybe hideable.
* header/footer boilerplate should come from a template file
o use songlist files instead of passing list on the command line ?
(Can make all.songs from listing)
o Be nice if one could use Lyrics-suffix as an implicit tag.
o main audio files would of course be %/%.ogg. Anything else should have a name like
yyyy-mm-dd--event--%.ogg or albumname--nn-%.ogg - i.e., the path with / -> -
There should be a script that does this for a list of files.
o TeX/index.pl -> indexer.pl to keep from confusing servers
TeX improvements
@ CTAN: Package etoolbox
@ LaTeX2e unofficial reference manual (October 2015)
o use \newcomand and \newcommand* (opposite of \long) for all definitions.
o note that \indent is already defined - it adds paragraph indentation. otoh, it's not
used at all. \Indent is used only in times-they-are-a-changin (where refrain would
work equally well) and kitchen-heroes. Rename to Refrain and Bridge respectively,
define Indented, or, better, define indented with an optional length argument. Use
that with \refrainindent and \bridgeindent
o filkbook document class
see CTAN: Package songbook
page styles: broadside, filkbook. option compact: no title pages
\makesongtitle optional in compact mode, because we're not trying to do cover pages.
compact is the default when not twosided.
subtitle and other metadata that prints on the song's first page needs to save as well
as print, so that it can get duplicated on the title page
o filkbook document class should define \songfile (renamed from file) and add a hook so
that \makesongtitle can add it to the TOC. Suppose we could rename it "filk"
o LaTeX2e for class and package writers:
https://www.latex-project.org/help/documentation/clsguide.pdf
o Uppercase style names to distinguish;
* Separate packages for context-specific (i.e. scripting) macros. -> zingers
o LaTeX2e
. clean up obsolete constructs
o parametrize page size and layout, e.g. for tablets. See
LaTeX/Page Layout # Page size for tablets
tracks.make (was album.make)
o add license and URL info to ogg, html, pdf files
o TOC etc should be conditional on the presence of Master
since they're meaningless without it. Mainly for field recordings
o Master/* should be order-only prerequisites -- should not remake them.
Master should be all you need to make album.rips.
tags
o hierarchical: fmt.long, lic.cc, pub.{no,web}
that way we can easily tell which tags not to copy over to the html
flktran
o flktran: put creation date into txt and html; don't allow double blank lines.
o suppress excess blank lines in html
o eliminate ~ (halfspace) - see aengus.flk
o performance notes (\perf{...})
o link on .txt output is broken
flktran HTML5 conversion
o all links in breadcrumbs should be fully-qualified for cut&paste
o flktran should output HTML5 with properly-closed tags and quoted attributes.
@ HTML Tidy
@ HTML5 Migration
. Web: Convert the main websites to HTML-5 and CSS.
~ audio and track HTML5 elements. (track is for synchronized text like subtitles)
o Need an "about" page to explain that ogg won't work in ie.
* Lyrics in HTML5 include files. Top-level tag should be [article class=lyrics]
songbook.make (proposed) - make plugin for Songbook directories
o makes html and pdf songbook in a subdirectory. can .gitignore [a-z]*.html
o use a "songbook.songs" file to re-order; default should be sorted by title.
o most indices should be (optionally?) sorted by title, not filename.
compact should of course be filenames.
index.pl, flktran.pl; Songs/Makefile
o flktex.pm song parser module would help a lot.
o (?)use TrackInfo instead of index.pl -- it's more recent.
o add license and URL info to ogg, html, pdf files
album.make
o separate config file for title, longname
allows dependencies; with generic names, makes Makefile generic
in fact, Makefile could possibly be a symlink
TrackInfo:
o recording notes (\rnote{...})
o need optional path to working directory for sound files
o soundfile links should be to longnames in Rips if available
o needs an option that produces a setlist with proper links.
format=list.html -T is probably close now.
o Need a Perl *module* for extracting song/track info:
o basically a SongInfo _class_
o needs to include stuff from flktran as well -- unify all three
o iterate through a list of TeX macros to turn into variables, rather
than the ad-hoc if statements used now.
o should also include functions to generate the list formats common to
Setlist.cgi and SongInfo.pl
o needs a way to pass a custom format string on the command line
(probably just perl with $variable as needed)
o LaTeX format (for album covers, etc.)
o use directory name as $shortname when in track directories
o when making a TOC, -nogap to make a 0-length pregap for
run-together tracks like house-c/demon
o output filename formatting option similar to grip, etc.
Consider rewriting TrackInfo etc in Python or Haskell, possibly as a Pandoc plugin.
Tracklist.cgi: like Setlist.cgi but builds album tracklists
o could probably merge both into TrackInfo using a format and template.
Should have a track.make template for [album]/Tracks/* directories
o use Makefile in Tracks to cons up the Makefile, HEADER.html, notes, etc.
o move ogg generation into track directories.
list-tracks
o make check-times to list .aup files that are newer than newest .wav
=========================================================================
History moved to Archive/*.done prior to deletion
=================================================
Local Variables:
fill-column:90
End: