beets/docs/plugins
henry b902352139
New Plugin: Titlecase (#6133)
This plugin aims to address the shortcomings of the %title function, as
brought up in issues #152, #3298 and an initial look to improvement with
#3411. It supplies a new string format command, `%titlecase` which
doesn't interfere with any prior expected behavior of the `%title`
format command.

It also adds the ability to apply titlecase logic to metadata fields
that a user selects, which is useful if you, like me, are looking for
stylistic consistency and the minor stylistic differences between
Musizbrainz, Discogs, Deezer etc, with title case are slightly
infuriating.

This will add an optional dependency of
[titlecase](https://pypi.org/project/titlecase/), which allows the
titlecase core logic to be externally maintained.

If there's not enough draw to have this as a core plugin, I can also
spin this into an independent one, but it seemed like a recurring theme
that the %title string format didn't really behave as expected, and I
wanted my metadata to match too.

- [x] Documentation. (If you've added a new command-line flag, for
example, find the appropriate page under `docs/` to describe it.)
- [x] Changelog. (Add an entry to `docs/changelog.rst` to the bottom of
one of the lists near the top of the document.)
- [x] Tests. - Not 100% coverage, but didn't see a lot of other plugins
with testing for import stages.
2025-11-23 10:34:05 -08:00
..
absubmit.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
acousticbrainz.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
advancedrewrite.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
albumtypes.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
aura.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
autobpm.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
badfiles.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
bareasc.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
beatport.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
beetsweb.png Recompress png file (#2552) 2017-05-05 19:52:55 +01:00
bpd.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
bpm.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
bpsync.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
bucket.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
chroma.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
convert.rst fixup! add documentation for write_metadata option 2025-09-24 22:11:47 -04:00
deezer.rst Convert autotagger plugin docs to use conf role 2025-10-19 01:34:33 +01:00
discogs.rst Convert autotagger plugin docs to use conf role 2025-10-19 01:34:33 +01:00
duplicates.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
edit.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
embedart.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
embyupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
export.rst Convert Python 2 URLs to Python 3 2025-10-19 01:37:42 +01:00
fetchart.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
filefilter.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
fish.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
freedesktop.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
fromfilename.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
ftintitle.rst Add album template value in ftintitle plugin 2025-11-21 18:31:59 +01:00
fuzzy.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
gmusic.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
hook.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
ihate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
importadded.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
importfeeds.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
importsource.rst importsource: Add new plugin (+docs/tests/changlog) 2025-10-29 08:50:01 +01:00
index.rst New Plugin: Titlecase (#6133) 2025-11-23 10:34:05 -08:00
info.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
inline.rst Replace percent formatting 2025-08-30 22:35:00 +01:00
ipfs.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
keyfinder.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
kodiupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
lastgenre.rst lastgenre: Document tuning log -vvv 2025-10-23 19:02:27 +02:00
lastimport.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
limit.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
listenbrainz.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
loadext.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
lyrics.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
mbcollection.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
mbpseudo.rst Add custom_tags_only mode for mbpseudo plugin 2025-11-01 13:52:14 +01:00
mbsubmit.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
mbsync.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
metasync.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
missing.rst lint 2025-09-21 19:46:31 +01:00
mpdstats.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
mpdupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
musicbrainz.rst Apply suggestions from code review 2025-11-11 13:18:51 -08:00
parentwork.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
permissions.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
play.rst play plugin: $playlist marker for precise control where the playlist … (#4728) 2025-10-19 08:38:20 +02:00
playlist.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
plexupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
random.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
replace.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
replaygain.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
rewrite.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
scrub.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
shared_metadata_source_config.rst Convert autotagger plugin docs to use conf role 2025-10-19 01:34:33 +01:00
smartplaylist.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
sonosupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
spotify.rst Convert autotagger plugin docs to use conf role 2025-10-19 01:34:33 +01:00
subsonicplaylist.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
subsonicupdate.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
substitute.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
the.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
thumbnails.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
titlecase.rst New Plugin: Titlecase (#6133) 2025-11-23 10:34:05 -08:00
types.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
unimported.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
web.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
zero.rst Remove tests. Update docs. Remove unnecessary return 2025-10-14 03:17:34 +01:00