Cherrytree for Windows, macOS, and Linux is a free hierarchical note-taking application featuring rich text and syntax highlighting, storing data in a single XML or SQLite file.
The best way to describe a Cherrytree document is the root of a tree, and each "node" a branch on that tree, sub-nodes as branches off that branch, you will start to get the idea.
If you have ever used outlining programs like OmniNote, Kjots, Keepnote, and others, Cherrytree will feel very familiar. It can be your one program for all the miscellaneous information you have and want to keep. All those little bits of information you have scattered around your hard drive can be conveniently placed into a Cherrytree document where you can easily find it.
Syntax highlighting supporting several programming languages
Images handling: insertion in the text, edit (resize/rotate), save as png file embedded files handling: insertion in the text, save to disk lists handling (bulleted, numbered, to-do and switch between them, multiline with shift+enter)
Simple tables handling (cells with plain text), cut/copy/paste row, import/export as csv file
Codeboxes handling: boxes of plain text (optionally with syntax highlighting) into rich text, import/export as text file
Alignment of text, images, tables and codeboxes (left/center/right)
Hyperlinks associated to text and images (links to webpages, links to nodes/nodes + anchors, links to files, links to folders)
Spell check (using pygtkspellcheck and pyenchant)
Intra application copy/paste: supported single images, single codeboxes, single tables and a compound selection of rich text, images, codeboxes and tables
cross-application copy/paste (tested with LibreOffice and gmail): supported single images, single codeboxes, single tables and a compound selection of rich text, images, codeboxes and tables
Copying a list of files from the file manager and pasting in Cherrytree will create a list of links to files, images are recognized and inserted in the text
Print & save as pdf file of a selection / node / node and subnodes / the whole tree
Export to html of a selection / node / node and subnodes / the whole tree
Export to plain text of a selection / node / node and subnodes / the whole tree
Toc generation for a node / node and subnodes / the whole tree, based on headers h1, h2 and h3
Find a node, find in selected node, find in selected node and subnodes, find in all nodes
Replace in nodes names, replace in selected node, replace in selected node and subnodes, replace in all nodes
Iteration of the latest find, iteration of the latest replace, iteration of the latest applied text formatting
Import from html file, import from folder of html files
Import from plain text file, import from folder of plain text files