Everything in CodingBrain is related to a markdown note (if you don't know what markdown is, have a look here). In a note you write down your thoughts, insert links and collect facts and code snippets. Whatever you do while working on a note is related to that note (for example the searches you do and sites you visit).
To edit notes, you use your preferred editor (adjust in settings). You can directly open the note your are viewing in your editor by clicking on the symbol on the left bottom corner (see image above). You can also reveal the note in Finder (on Mac) by clicking on the button next to the editor button.
CodingBrain is split up into following parts: on the left side you have:
- Note viewer
- Recent notes tab
- The Note info tab with: similar notes, linked files, linked web sites, browsing history and searches tab
- The Navigator to search inside CodingBrain and to start researching a new subject
- The Browser to search online and to acquire new content for your notes
- The Activities log that presents you everything you have done in CodingBrain
- And finally the Settings tab to integrate CodingBrain with your other apps.
CodingBrain automatically scans your notes to evaluate the markdown content and displays the findings in the Note info tab. It has 5 further sub-tabs:
Similar notes: the similar notes tab displays three pieces of information.
- There are the Navigator tags. When you search for something in the Navigator and click on a file in the search result page, the search query is automatically added as a tag to the note. You can also add a tag manually by clicking on "Add new".
- Last edit: Displays the last edited line you changed while having the note open in the note viewer. It also displays a the markdown headers of the note.
- Similar files: finally the list of similar notes CodingBrain finds while analyzing your note and searching in the index. It displays a preview of the notes.
Linked files This tab displays previews of all linked files of a note. A file can be linked by using a markdown link and putting file:/ prefix before it, e.g <file:/path/to/file>. If a link is invalid and the file does not exist, it will be shown in red. Either correct the path or remove the link.
Linked & bookmarked websites: This tab shows all links to websites that are either in the note or were bookmarked. You can link to a websites in your not by either using markdown syntax, or just by pasting the whole url into the note, for example: http://www.codingbrain.com.
Browsing history shows all other websites you have been visiting while working on the note.
Most activities in CodingBrain start with consulting the navigator. When researching a subject, first ask the Navigator what you have already available. From there you have multiple ways to proceed:
- Open a note by clicking on the name or path. The search query that led to that note is automatically added as a navigator tag. Navigator tags can be thought of the current context you are working in. Your activities will be tagged too. For example, if you search for "clojure folding" and open "clojure-basics.md", the note will be tagged with "clojre folding" and everything else you do will be associated to this tag.
- Search online by using your favourite search engine (customizable in Settings).
- Create a new file from the query. If you don't have any information about the subject you want to learn, create a new note for it. CodingBrain helps you to find a name and location to store the note.
The are more actions you can do and ways to create or open notes from the navigator.
Filter your search results further by selecting what to include: notes, bookmarked sites (distinguished by three leading stars "***") or your browsing history. You can also check instant search to get results while typing. This, however, won't record your search. Press return or click search button to log your search when using instant search.
Query syntax: searching follows standard search syntax that is common in today's search engines. You can search for keywords, phrases ("surrounded in quotes") and boolean expressions using AND or OR. On top of that, you can search for specific fields of the files and sites that are in your index. Those fields are:
- path: search for parts of a file path. Example: path:java returns all files that have "java" in their path
- url: search for parts of the url. Example: url:news would return a site called news.ycombinator.com
- content:. The default field. Searches for the content of a note or website.
- header: search for a markdown header in your notes (lines that start with a pound sign #. Example: header:"getting started" would find notes that have the phrase "getting started" in a header.
- code: search for code content, denoted in markdown with a leading tab or (at least) three backticks ```. Example: code:println will find notes with println in their code content
- tag: search for tags. Example: tag:spring searches for notes or websites that have a tag that contains the word "spring".
- title: search for the title of a website, that is part of the website information. Example: title:introduction searches for websites with "introduction" in their title
- summary: search for the summary of a website info. Example: summary:clojure
CodingBrain includes a browser that can be used to load websites and extract content. Each visited websites gets automatically cached and indexed and is searchable in the Navigator.
If you type in a query in the browser address bar, you do an online search with your preferred search engine, which you can adjust in the settings tab (at the moment only Google is available but more options are coming soon).
You can always open a website in an external browser (adjustable in Settings). When you want to click on a link on a website, however, you should do this in CodingBrain. To improve this, we are working on a browser plugin that synchronises with CodingBrain so you can fully use your preferred browser.
Web site information: For every website you visit, CodingBrain is trying to create a summary. To access this, click on the info button at the bottom of the browser next to the "external browser" button. In the info pane, you can edit summary and title, and by this you create your own annotations for a website (which you then later can search for). You can also see the cached version of the site and by clicking on the update link re-index the site in case the content has changed.
You can bookmark a website by clicking on the button with the star or inside the info tab. Setting a bookmark makes it easier to filter and search for it.
In the browser, you can extract snippets or links, create new notes matching the content or search for selected text.
Almost everything you do in CodingBrain gets recorded. Files you open or create, sites you visit, searches you perform (in the Browser or Navigator), actions you execute, it's all available for you to retrieve. Every activity entry has actions available. You can insert or copy the path or re-open the file or site. On top of the list you can search and filter all entries.
In the settings tab you can select your notes folder, your default code folder, choose external applications, select your preferred search engine or determine what type of files you want to have included in your index.
Changing the notes folder: you can work on multiple note folders at the same time without losing data when you switch between them. Only your current files will be closed when you switch between folders. To switch, select a new folder in the settings. This requires a restart. CodingBrain will exit and next time you start it you will work with the new folder.
Default code folder: every note has a code folder associated to it. When you click on the terminal shell button (at the bottom of the note viewer) it will open in the default folder. You can change this folder on a per-note basis.
Actions on files, sites, search results, activities
You have basically two kinds of actions: in the note viewer and browser you have actions that you can apply to text you select or with the url of a site or path of a file, and you have those little yellow links that are available in many places throughout CodingBrain that directly deal with a note, site, tag, search or folder
Actions on selected text or links
Insert content into a note Those actions insert text (with or without markdown markup), urls, header or searches into your note. The new content will be inserted at the end of note. To insert in a different location, select text in the note viewer and the content will be inserted above the selection (note: this feature is somewhat experimental and will be replaced by a insertion line - see development roadmap)
Instead of inserting you can always copy the selection and use it in your editor.
You can also search for a selection (the magnifier button)
In case you want to select a lot of text, use the zoom buttons to make selecting of content easier. You zoom the note viewer or browser.
There are also actions on urls and note paths. You can copy or insert urls or paths. In the browser, you can also create a new note directly off a website. Click on the button with the plus sign to create a new note. CodingBrain tries to analyze the content and propose locations where to save it. It also pre-fills the note with content that is related to the site.
Actions on files, sites, links
Actions that work directly on files, urls, tags etc are placed through-out in CodingBrain. Links to open files directly in your editor, in an external browser, to clear searches, to create tags, to create a new note along side another, to insert a query as a header into the note and so on. They are mostly self-explaining. CodingBrain aims to make you as productive as possible by providing you with shortcuts whereever useful.
Preview of notes and websites
When listing a file or website, CodingBrain always presents you with a preview of that file or website (for websites, however, you have to visit it first to enable preview).
A preview of a file is a condensed version of it's contents. With one glance you can see the list of markdown headers, navigator tags and last edited content (or the first lines if never edited inside CodingBrain).
Previews for websites are automatically generated when visting it. The title and a summary are captured and stored. You can edit those fields in the website information pane
Another feature of CodingBrain is to enable you to easily move notes around and to help you to keep your knowledge base organized. Whenever you save a note, or click on the move note button (in the top of the note viewer) you will first asked to pre-select a directory. CodingBrain remembers locations you have used in the past. It also tried to find similar notesso you can store the note in the same folder. It further suggests file names that seem to match the subject you are currently learning. CodingBrain aims to automate as much as possible.