Code Story is a desktop application that was designed to help you document your software projects in a totally new way. Code Story has the capabilities you can expect from a note taking application: rich-text, image, links, but its killer feature is the ability to embed live views from your source files, right into your notes. Live means that what you see in your notes are not snippets: they are direct, always-in-sync views of your code. Actually, you can even do small code edits without leaving your documentation.
Not only you can write very useful notes that gather all the relevant (but physically disconnected) code on the same page, but the tokens that you insert into your code turn out to be very helpful as well, because when you see one, it means there is something noteworthy (I also created Atom and Sublime plug-ins so you can open the relevant notes right from your code).