It's very clear due to two early hints: Jorah's opinion of Rhaegar and "Promise me, Ned."
When Dany saves the women from being further raped/assaulted by the Dothraki in AGOT, Jorah's comment that she reminds him of Rhaegar is a very obvious hint to the character of this man whom we've been told, from Robert's point of view, is a rapist and scoundrel (Robert being an epically unreliable source of information). There is no reason to see Jorah's comment as anything but accurate, so the conclusion you have to draw is that Lyanna was with Rhaegar because she loved him.
Then there's "Promise me, Ned," which couldn't be a clearer way of saying Jon is Lyanna's son. Oh it just so happens that Ned brought home a baby under mysterious circumstances when he came home from the war, and it just so happens that his dead sister had him swear to secrecy about something, and he is constantly reminded about this and feels guilt around Robert.
I will admit that I wasn't 100% certain of it until the Reeds tell the story of the Knight of the Laughing Tree in ASOS, but up to that point I was already 95% sure.