What is the meaning and origin of `wearing one's heart on one's sleeve'?

(Uthra, Chennai)

This is an idiom that has been around for several centuries. When you wear your heart on your sleeve, you make your feelings clear to everyone; in other words, you don't hide your emotions. If you are in love with someone, you make it known to everyone that you are crazy about this person.

*It's difficult to know what Asha is thinking. She doesn't wear her heart on her sleeve.

During the Middle Ages, when knights fought each other, they would dedicate their performance to a woman of the court — usually someone they were in love with or cared for. To let everyone know who they were in love with, the knights used to pin onto their sleeves a hanky or a scarf belonging to the woman.