Speaking of unofficial resources, I forgot to mention you can also do this with core, but that might be overkill for this particular use.