Skip to content

scott-joe/foam--workspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workspace

What is Foam?

My Answer

Right now, it's a handful of VS Code extensions that help link and manage a collection of markdown files following a naming scheme. Your setup is your own. The community likes to share setups as Recipes. As the community and core maintainers drive the vision forward, it'll expand how easy it is to build and expand your setup.

Foam is a personal knowledge management and sharing system inspired by Roam Research, built on Visual Studio Code and GitHub. You can use Foam for organising your research, keeping re-discoverable notes, writing long-form content and, optionally, publishing it to the web. Foam is free, open source, and extremely extensible to suit your personal workflow. You own the information you create with Foam, and you’re free to share it, and collaborate on it with anyone you want.

Organization

My setup is best summaried as: I have a Foam Workspace that contains Bottles (repos) that contain Bubbles (notes)

Bottles of bubbles makes Foam

My Foam workspace keeps all the workspace settings, extensions, and snippets that make my setup my own. It's like the stickers and modifications I've made to my laptop. It's what makes it custom tailored to me and my brain.

I have a directory that holds what you could call "notebooks" but for the sake of staying in the naming scheme, I've called them "bottles." Each bottle is a collection of markdown files that are related in some way. I keep one for each work project, personal notes I'd like to publish, and private ones I would like to keep that way. Using git to keep track and github to sync my files, each bottle is a git repo that focuses on the configurations that make sense for that set of notes.

For my Personal notes that second as a blog, I have configuration files that Netlify picks up on when I push my repo back up to Github. I have local scripts that build Gopher and Gemini files as well. Everything publishes from the same source and are distributed as necessary. I can make changes to my editor config from there as well. If I had a bottle that contained mathematical formulas, I could enable or disable extensions to help Markdown handle those. If I had a bottle that contained a book I was writing, I could format the editor to look like a typewriter and the publish scripts to spit out a PDF. A bottle that included references to code could have syntax highlighting to help with that.

The idea is that it's the same set of technologies I use for work. It's very familiar, and something I can truly make my own without an incredible amount of work.

Generate Indexes

This is a total proof of concept, so please understand that it's not perfect. This will traverse your (my) set of notes in various sub-directories within the ./source folder and create an index for each directory, then link to them in the parent index. The Foam VS Code extension should create a link block for each so the WikiLink graph will build correctly.

  1. Install deno with brew install deno
  2. Navigate to ./bottles/personal
  3. Run deno run --allow-read --allow-write generate-index.ts

Plans

Setup

  1. Parse bottles.toml
  2. Clone bottle into a new directory for each bottle
  3. Link to each bottle's index file here

CLI & Editor Tool

  • Add bottle: adds to .toml, imports, adds link to this page
  • Collapse Links

Index

This makes my workspace the center of my collection of notes. Without linking the bottles here, they'd just be a bunch of little charts floating in space on the graph. If you do want them floating in space, just remove this main index of bottles.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages