# In | Write¶

## Editors (with Markdown support)¶

It’s important to use a good editor with support of Markdown.

I’m (mmagnus) using EMACS (https://en.wikipedia.org/wiki/Emacs), sometimes I use MacDown (http://macdown.uranusjr.com/) or Atom (https://atom.io/).

### Emacs¶

Fig test.md in Emacs. I love EMACS for this Outline Mode - you can see immediately the structure of your note, it helps to navigate and understand (= keep it clean) your note.

Fig Emacs can “split” a note for you, so you can work in two (and more) places of your note at the same time!

### Atom¶

Fig test.md in Atom is OK ;-)

### MacDown¶

Fig test.md in MacDown is not bad ;-)

## Markdown (Github-Flavored Markdown)¶

Write your notes using Github-Flavored Markdown! Markdown is a way to style text on the web. You control the display of the document; formatting words as bold or italic, adding images, and creating lists are just a few of the things we can do with Markdown. Mostly, Markdown is just regular text with a few non-alphabetic characters thrown in, like # or *.

GitHub Flavored Markdown is a version of the Markdown syntax that provides an additional set of useful features, many of which make it easier to work with your notes.

### Syntax highlighting¶

Type:

 js
var foo = function (bar) {
return bar++;
};

console.log(foo(5));


## Geekbook Only¶

This a set of extensions developed by the Geekbook community.

### Find Files¶

Type [ff:<name_of_the_file>] to trigger locate (on Linux) or glocate (on macOS, install brew install findutils) to find a full path to your file and insert it in the given place in a generated html.

Warning

You have to keep you locate database up to date, use sudo updatedb (on Linux) or sudo gupdatedb regularly.

Example:

to get this:

Warning

For many links in one note, this might be slow to re-generate (geekbook has to locate all files). We might want to develop some cache system to speed this up at some point. Yeah, there is a cache system now implemented. All paths are save to find_file.json, and if your file has been seen before, the path to that file will be recover from the db. @todo: Now we need a script that will update this database from time to time.

### Insert File¶

Wherever you want to insert an external file, you can use:

[if:<path>]
e.g.

and the file will be included in your Markdown content. The file can be written in Markdown, if so, it will be processed as your regular Markdown content.

### Table of Content¶

Type [tableofcontent] to get the table of content of a given note.

### Date¶

Type [date] to get the current date 2017-01-13 with:

with time.strftime("%Y-%m-%d", time.localtime(os.path.getctime(<md file>)))

### Images¶

You can define width and height for your images as follows:

Read more in the function documentation:

engine.preprocessing.get_image_path_in_line(l)[source]

Update: work also with more than one link per line and with tables. Update (2): you can also define width and height of your images.

Only width, e.g.:

![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png =500x)

only height:

![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png =x400)

and both:

![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png =400x400)

You can use internal variable log to switch on and off logging.

If you want to position more images next to each other, you can use tables. They will be autoscaled for you!:

Fig. gab | gab+pk | gab+pk (2)
----|------------------|--------
![](imgs/ss_gab.png) | ![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png) | ![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png)
![](imgs/ss_gab.png) | ![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png) | ![](imgs/Screen_Shot_2017-02-12_at_1.17.04_AM.png)

which will give you:

### Insert Image¶

Type ii (and only this in a line) to ask geekbook to copy the last image from the folder when you keep you screenshots to the folder with your images:

ii

save the file, reload the file to get:

![](imgs/Screen_Shot_2017-01-14_at_1.25.21_PM.png)

To turn on this plugin in your engine.conf_local set the path, e.g.

SCREENSHOT_INBOX='/home/magnus/Desktop/*png'

### Abstract¶

Start a line with ! (mind the space after !) to mark the fragment as an abstract.

You can collect all lines marked as an abstract, use tag [abstract]:

! ble ble ble
[abstract]

it will give you:

Ble Ble ble

The last sentence is collected along a note.

Make you notes look more fun! You can insert a youtube video by typing [yt:video id]: Where video_id corresponds to the 11 alphaumeric characters that you can see in the youtube url of your video. Ex. dj kitty – url – https://www.youtube.com/watch?v=ICDGkVbSWUo its video_id = ICDGkVbSWUo Type in geekbook [yt:ICDGkVbSWUo] to visualise one of our favourite Djs.
Type @todo, @done, @progress to get:
How do we use this ? We like to introduce this tag in our titles to follow our progresses. ## 19.02.2017 - Go to buy the milk for Dj kitten @done