I'm looking for a text-based representation of a component diagram that does these things:
Here is a great example of what I'm looking for but with sequence diagrams: http://www.websequencediagrams.com/
Does such a language/format exist for component diagrams?
You can use plantuml. It can render component diagrams from text, like you want. You will need to install Graphviz for making diagrams. Example of text to UML :
@startuml
DataAccess - [First Component]
[First Component] ..> HTTP : use
@enduml
There are other textual UML notations, you can check them here.