I think you should defenitely charge the yarn cost. I don't know how much time it took you to knit it. I would think of a charge per hour and add that too. If it's someone who is not a stranger, as you mention, i would probably give a discount and not charge all of the hours spent. That's why hand knit items are so expensive - the hours put in them are sometimes many. I think I would charge 3-5$ per hour, because if you charge more, it will be so expensive no one would want it
Anyway, it's great someone wants to buy your work!