Skip to content

Commit

Permalink
feat: add template
Browse files Browse the repository at this point in the history
  • Loading branch information
masonlr committed Mar 14, 2021
1 parent 8eebdca commit b382e1d
Show file tree
Hide file tree
Showing 17 changed files with 231 additions and 7 deletions.
88 changes: 81 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ If you've tested out [Obsidian](https://obsidian.md/) and worked through the "Ob
1. How others use backlinks and various markdown tricks,
2. Why these techniques work.

The initial example covers how an academic [researcher](https://github.com/masonlr/obsidian-starter-templates#researcher) might choose to approach Obsidian.
The initial example covers how an academic researcher might choose to approach Obsidian.

## Getting started

Expand All @@ -19,6 +19,9 @@ The initial example covers how an academic [researcher](https://github.com/mason

## Templates

* [Researcher](#Researcher): general purpose template for research projects (added May 2020)
* [Researcher (with plugins)](#researcher-with-plugins): extended template using newer Obsidian community plugins (added March 2021)

### Researcher

The [researcher/](./researcher) template suits a case where you are juggling multiple research projects: for example, reading several books and research papers simultaneously and maintaining multiple collaborations with other researchers. It's nice to have a starter template to experiment with ideas, even though backlinks and associative thinking encourage you to avoid hierarchies and rigid hierarchical structures: see for example Andy Matuschak's [evergreen notes](https://notes.andymatuschak.org/Evergreen_notes), [taxonomy of note types](https://notes.andymatuschak.org/Taxonomy_of_note_types) and [note-link-janitor](https://github.com/andymatuschak/note-link-janitor) project.
Expand All @@ -33,8 +36,8 @@ The template is intended to be modular. A minimal use could include [scratch/](h

The scratch folder is an area for messy, low-friction daily free-form planning and logging of ideas, i.e. [scratch/](./researcher/scratch/) will store content generated using the Obsidian "daily notes" feature. Daily notes can be created using the "Open today's note" action: this will create a new markdown file that follows the date-stamped name convention `YYYY-MM-DD.md`.

**Tip:** Set a keyboard shortcut to quickly go to the day's note. For example, set `cmd+T` to "Open today's note" in the Hotkeys settings.
**Tip:** Create a rigid layout for daily notes by specifying a template markdown file, though a blank template may encourage free-form thinking.
**TIP:** Set a keyboard shortcut to quickly go to the day's note. For example, set `cmd+T` to "Open today's note" in the Hotkeys settings.
**TIP:** Create a rigid layout for daily notes by specifying a template markdown file, though a blank template may encourage free-form thinking.

After a few days, daily notes will build up as follows:

Expand All @@ -60,7 +63,7 @@ Folder for "evergreen" concept notes (see Andy Matuschak's [evergreen notes](htt

- [A concept.md](./researcher/concepts/A%20concept.md)

A example concept note.
An example concept note.

**TIP:** In a link, it's clearer to read `[[A concept]]` than `[[a-concept]]`, so the filename uses white spaces here and sentence case.

Expand Down Expand Up @@ -211,15 +214,15 @@ Kanban with embeded queries:
```markdown
| | | |
| ------------ | --------------- | --------- |
| ![[Backlog]] | ![[InProgress]] | ![[done]] |
| ![[Backlog]] | ![[Priority]] | ![[Done]] |
```

Example in `Backlog.md`:

````markdown
```query
tag:backlog
```
```
````

#### Task lists
Expand All @@ -230,7 +233,7 @@ Kanban with embeded queries:

For one-off references, pasted links work fine. Example in [A concept.md](./researcher/concepts/A%20concept.md):

```markdown
```markdown
This concept only appeared once, so just paste link.
https://en.wikipedia.org/wiki/Mental_state
```
Expand All @@ -249,6 +252,77 @@ I need to check.[^repeated]
[^repeated]: Flow (psychology): https://en.wikipedia.org/wiki/Flow_(psychology)
```

### Researcher (with plugins)

Since [Researcher](#Researcher) was posted (May 2020) there have been updates to Obsidian, including many community plugins. [Researcher_(with plugins)](./researcher_with_plugins) (March 2021) captures several newer ideas and can be viewed as a more advanced version of the original [Researcher](#Researcher) template.

#### Maps of Content

A blend of Maps of Content, roadmaps and changelogs is effective for organising multiple projects.

For example:

##### [concepts/](./researcher_with_plugins/concepts/)

Keep one flat structure for all evergreen concept notes.

* [Concept.md](./researcher_with_plugins/concepts/Concept.md)

An example concept note.

* [Project A](./researcher_with_plugins/concepts/Project%20A.md)

An example map of content (see [In what ways can we form useful relationships between notes](https://forum.obsidian.md/t/in-what-ways-can-we-form-useful-relationships-between-notes-long-read/702)) for summarising a project.

**TIP:** If you have multiple projects create additional maps of content, for example Project B and Project C (use more meaningful names though). Keep a flat structure rather than creating dedicated folders for each project.

* [Project A CHANGELOG](./researcher_with_plugins/concepts/Project%20A%20CHANGELOG.md)

Keep a rough changelog of important completed tasks in your project – many open-source projects use a `CHANGELOG.md` file (see for example [Keep a Changelog](https://keepachangelog.com/)).

* [Project A ROADMAP](./researcher_with_plugins/concepts/Project%20A%20ROADMAP.md)

Keep a rough sketch of future ideas and plans using a roadmap – many open-source projects use a `ROADMAP.md` (for ideas, check out Mozilla's [Introduction to Roadmapping](https://mozillascience.github.io/working-open-workshop/roadmapping/)).

#### Referencing

##### [references.bib](./researcher_with_plugins/references.bib)

The [Citations](https://github.com/hans/obsidian-citation-plugin) community plugin is great for referencing. If you maintain a list of references in `.bib` format (for example using [Zotero](https://www.zotero.org/) or [BibDesk](https://bibdesk.sourceforge.io/)), you can search references from within Obsidian and, if needed, create a dedicated page for each reference.

**TIP:** You can create a dedicated page for each reference via "Citations: Open literature note" in the Obsidian command palette – create a dedicated Hotkey for this action if you use it often.

![Citations: Open literature note](./assets/citations_open_literature_note.png)



You can write short notes (for example, short chapter summaries) on each reference page itself (see [books/@butcher2016go](./researcher_with_plugins/books/@butcher2016go)). It can be useful to write longer notes on specific concepts elsewhere, and refer back to the source using Markdown citations: `[[@butcher2016go]`.

**TIP:** You can create a citations using "Citations: Insert Markdown citation" in the Obsidian command palette – create a dedicated Hotkey for this action if you use it often.

#### Backups

Use [Obsidian Git](https://github.com/denolehov/obsidian-git) to configure automatic backups to a remote git repository (e.g. GitHub or GitLab).

#### Templating

##### [templates/](./researcher_v2/templates)

* [Daily.md](./researcher_v2/templates/Daily.md)

The [Templater](https://github.com/SilentVoid13/Templater) community plugin allows you to create custom daily notes. In this simple example, we have links to yesterday and tomorrow (these links allow you to flick quickly between days when reviewing notes):

```markdown
📆 [[{{tp_yesterday}}]] – [[{{tp_tomorrow}}]]
```

#### Syntax highlighting

[Editor Syntax Highlight](https://github.com/deathau/cm-editor-syntax-highlight-obsidian) enables syntax highlighting while in editor mode:

![Editor syntax highlighting](./assets/editor_syntax_highlight.png)


## References

- Obsidian: https://obsidian.md/
Expand Down
Binary file added assets/citations_open_literature_note.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/editor_syntax_highlight.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions researcher_with_plugins/books/@butcher2016go.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: Go in practice
authors: Matt Butcher, Matt Farina
year: 2016
---

# Go in practice

Summary of the book chapters could go here. Write notes on particular concepts elsewhere and refer back to this page using [@butcher2016go].

You can add citations using "Citations: Insert Markdown citation" in the Obsidian command pallete.
6 changes: 6 additions & 0 deletions researcher_with_plugins/books/@mcnamara2021rust.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Rust in Action
authors: Tim McNamara
year: 2021
---

5 changes: 5 additions & 0 deletions researcher_with_plugins/content/Concept.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# An example concept note

This page might explore an import concept using ideas from multiple references: for example, [[@butcher2016go]] may recommend Golang for everything, while [[@mcnamara2021rust]] may recommend Rust.

You can highlight that this concept is relevant for specific projects such as [[Project A]].
13 changes: 13 additions & 0 deletions researcher_with_plugins/content/Golang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Golang

Here I'm working on an example concept from [[@butcher2016go]]:

```go
package main

import "fmt"

func main() {
fmt.Println("Hello from go")
}
```
15 changes: 15 additions & 0 deletions researcher_with_plugins/content/Project A CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[[Project A]]
# Project A CHANGELOG
Many open source projects have a changelog for tracking project history – this typically exists as a local `CHANGELOG.md` file.

You can track history for [[Project A]] is this changelog here.

## Phase 2: If you're using phases
- [ ] More new ideas go here

## Phase 1
- [ ] Feature Three: Still working on this
- [x] Feature Two: Got this one done
- [x] Sub-Feature A: Explanation can goe here
- [x] Feature One: Free-form text goes here
- [x] Work out whether we should use [[Golang]] or [[Rust]]
10 changes: 10 additions & 0 deletions researcher_with_plugins/content/Project A ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[[Project A]]
# Project A ROADMAP
Many open source projects have a roadmap for planning and prioritising future features – this typically exists as a local `ROADMAP.md` file.

If you want to apply roadmap-like thinking to your project, create a dedicated road map file and use Markdown checkboxes to track progress.

- [x] Feature Four: Have finished this one, so will move this text to the [[Project A ROADMAP]] when I get a chance.
- [ ] Feature Five: Want to get this done
- [ ] ~~An idea that we've given up on~~ Reason why goes here.
- [ ] Get better at [[Rust]]
19 changes: 19 additions & 0 deletions researcher_with_plugins/content/Project A.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Project A

This page is a Map of Content (see [In what ways can we form useful relationships between notes \[LONG READ\]](https://forum.obsidian.md/t/in-what-ways-can-we-form-useful-relationships-between-notes-long-read/702)) for [[Project A]].

You can use this Map of Content for different purposes such as summarising who is involved with this project: such as [[Supervisor]] and [[Collaborator A]].

## Concepts:

Maybe you have a sentence explaining why [[Concept]] is important for [[Project A]].

## References:

You could list brief opinions regarding the key references of [[Project A]] such as [[@butcher2016go]] and [[@mcnamara2021rust]].

## Trackers:

[[Project A]] has two trackers:
- [[Project A ROADMAP]] for planning the future
- [[Project A CHANGELOG]] for reflecting on the past
9 changes: 9 additions & 0 deletions researcher_with_plugins/content/Rust.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Rust

Here I'm working on example concept from [[@mcnamara2021rust]]:

```rust
fn main() {
println!("Hello from rust");
}
```
33 changes: 33 additions & 0 deletions researcher_with_plugins/log/2021-03-14.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

📆 [[2021-03-13]][[2021-03-15]]

This is a daily note for sketching out what you're working on *right now*. I

Once way to planning what to do is to use a question-and-answer style:

---

*Q: How do we get something done?*

A: Explanation of answer, once you've figured it out.

---

Another way is to use nested checkboxes:

- [ ] First question that I need to figure out today

> Answer to first question
- [x] Second related question that came up while I was thinking about question one
> Another answer that I thought of

---

You can include events such as meetings:

Met with [[Collaborator A]] and discussed [[Project A]].


[[TIL]] [[Rust]] and [[Golang]] are complementary: https://thenewstack.io/rust-vs-go-why-theyre-better-together/
2 changes: 2 additions & 0 deletions researcher_with_plugins/people/Collaborator A.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Collaborator A
Add any short notes here.
2 changes: 2 additions & 0 deletions researcher_with_plugins/people/Collaborator B.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Collaborator B
Add any short notes here.
2 changes: 2 additions & 0 deletions researcher_with_plugins/people/Supervisor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Supervisor
Add any short notes here.
20 changes: 20 additions & 0 deletions researcher_with_plugins/references.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

@book{butcher2016go,
title = {Go in {Practice}},
author = {Butcher, Matt and Farina, Matt},
date = {2016},
publisher = {{Manning Publications Co}},
location = {{Shelter Island, NY}},
annotation = {OCLC: ocn913335043},
isbn = {978-1-63343-007-5},
keywords = {Go (Computer program language)},
langid = {english},
pagetotal = {287}
}

@book{mcnamara2021rust,
title = {Rust in {Action}},
author = {McNamara, Tim},
date = {2021},
publisher = {{Manning Publications}}
}
3 changes: 3 additions & 0 deletions researcher_with_plugins/templates/Daily.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
📆 [[{{tp_yesterday}}]][[{{tp_tomorrow}}]]

You can now have templated daily notes using the [Templater](https://github.com/SilentVoid13/Templater) plugin. This example will put links to yesterday's and tomorrow's notes at the top of the daily note.

0 comments on commit b382e1d

Please sign in to comment.