I love http://keepnote.org/, super simple. But it is based on python 2.something, so no long term future unless the dev releases a new version but seems unlikely considering the last update was many years ago.
I just stick to taking notes in plain html. You can use lowriter or seamonkey to edit them. Create an index page which will act as a hierarchical reference page. And then you can link away your sub notes there. No need for any bloated note taking apps :)
Back when I was still developing on Windows I used MS OneNote for it. Should meet all your requirements.
Right now I am using KeepNote, but that may be a bit too simple for you!?
I use KeepNote (implemented in Python and PyGTK) which keeps files and notes in folders and I can use other tools or script to access files without KeepNote. It is usefull.
Other programs use single xml
or sqlite
to keep notes but I don't know how they keep files.
If you only read about Python then start something simpler. First you have to learn Python, working with file and folders, working with zip file, (eventually working sqlite or xml), creating GUI (you have to choose framework: PyQt, wxPython, PyGtk, Tkinter, etc.). It may be easier to learn one new thing at the time then many new things at the same time.
I don't know if this is the sort of thing you're looking for -- I generally avoid webapps in favor of desktop software with data synced via OwnCloud -- but I use KeepNote. It hasn't been updated in a while, but it's pretty feature-complete and bug-free in its current state.
I think I did something like this at my old job, but forgot how I did it. Maybe using OWEXEC.EXE (PSEXEC Alternative) to run a command line screenshot program like BOXCUTTER.EXE with HSTART.EXE which will run as that user. If anyone gets this going please let me know. Maybe easier to put this in a Logon Script in GPO or in the users startup folder. http://officewarfare.net/index.php/owexec/ http://keepnote.org/boxcutter/ http://www.ntwind.com/software/hstart.html
If you want task management: Task Coach — the most powerful, robust, has note-taking and more, sync via whatever file-sync you want, cross-platform. Not perfect, like other free software, lots of room for improvement, but seriously robust features already.
For notes specifically, consider KeepNote
http://portabase.sourceforge.net/
Of those I'd pick keepnote, because it's based on SQLite, anything not based on SQLite, especially any proprietary format, is a Bad Idea, in case the program ever becomes unmaintained or you want to transfer to something else, or modify the data programmatically, or just view it using a different client.
Linux user and PhD student in EECS here. I really like KeepNote.
I try to keep a point-form journal in there, as well as topic-specific notes. Keeping the latter organized is tricky but then again since the whole thing is searchable I don't worry too much about how well it's organized.
One nice thing about it is that all the notes are just HTML so by syncing the notebook with my phone (using Dropbox) I can have my notes with me everywhere.
But in general I don't think which method/technology you use that is really important. What is important is that you are doing something at all to try and be organized.
Also, +1 for Mendeley. I like it much better than Zotero which I was using previously. Still though, I'm surprised that it can't, for example, automagically link to a search in Google Scholar for any given reference in a paper that I have stored in it. Actually I'm even more surprised that Google Scholar doesn't do that..