Giter Site home page Giter Site logo

foambubble / foam Goto Github PK

View Code? Open in Web Editor NEW
14.8K 14.8K 638.0 59.22 MB

A personal knowledge management and sharing system for VSCode

Home Page: https://foambubble.github.io/

License: Other

TypeScript 96.30% Markdown 0.28% JavaScript 3.29% HTML 0.12%
graph-visualisation markdown markdown-editor note-taking notes-app personal-knowledge-base pkm vscode zettelkasten

foam's People

Contributors

allcontributors[bot] avatar anku255 avatar badsketch avatar bronson avatar dependabot[bot] avatar dshemetov avatar francishamel avatar hikerpig avatar hooncp avatar infogulch avatar ingalless avatar jevakallio avatar jimgraham avatar jonathanpberger avatar jsjoeio avatar klaudioz avatar leonhfr avatar lingyv-li avatar mabruni avatar mathieudutour avatar mcluck90 avatar memeplex avatar movermeyer avatar paulshen avatar pderaaij avatar radoslawkierznowski avatar riccardoferretti avatar robinking avatar sanketdg avatar tlylt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

foam's Issues

Extension not compatible with VS Code 1.45

I'm encountering the following error when I try to install the Foam extension:

Unable to install 'foam.foam-vscode' extension because it is not compatible with the current version of VS Code (version 1.45.1)

Seems minor, but I didn't see this listed in the existing issues so figured I'd mention it.

Documentation migration from Obsidian to Foam

I think it would be a good idea to show how you can migrate from Obsidian to Foam.

I'm trying to write a script to help with this.

Here's what I have so far:

# Loop over all markdown files
for file in *.md

  do

    # Remove the file extension
    filename=${file%.*}


    # Create new filename it by replacing spaces with - and lowercasing it
    newFileName="`echo $file | sed s/\ /\-/g | tr 'A-Z' 'a-z'`"

    # Rename file
    mv "$file" "$newFileName"

    # Capitalize the first letter for heading
    heading="$(tr '[:lower:]' '[:upper:]' <<< ${filename:0:1})${filename:1}"

    # Add heading to file
    # echo "# $heading\n" >> $file

    # Add heading to file
    # TODO this part is not working
    sed -i '' "# $heading\n" $newFileName
  done

Note: this is my first time writing a script so any feedback is welcome. I can't get the last part working - adding a heading to the start of the file.

Other Notes

  • Should the script also delete the ./obsidian directory?
  • Should the script grab the latest foam template? Or will that step be manual and done by the user?
  • Should it the script do anything else?

The first version could just be renaming files like I have. I'm open to any and all ideas though.

Prioritizing Unlinked References

I was trying to find a place to properly do this, but just wanted to say that supporting unlinked references is an essential feature. This is largely the benefit of something like Roam, where I can reference an idea, reference it again on the same page and get autocomplete for that page, without having to stop my flow by navigating into the linked page and out so that a page for it is created.

unlink and delete the file

I deleted one markdown file, and remove the [[FILENAME]] in other linked files, then Ctrl+s to save.But the deleted filename automatically appears again.Does it have caches in vscode or ohther reason?

Add tag to bubbles?

I would like to find a way to tag my bubbles, and make it easy to search/preview bubbles with certain tags.
Is there any similar features?

Parse markdown per-entry

Hey there, this is such an exciting tool. Thanks for all the great work.

Coming from other second brain tools, I'm curious what the level of effort would be on parsing markdown per entry (similar to Roam) rather than having two panels open; one for markdown and another for a preview.

Idea: keyboard shortcut as Cmd+Click alternative

I think it would be really cool to have a keyboard shortcut to open links instead of Cmd+Click. Like many VSCode users, I don't leave my keyboard that much (vim compatibility) so the 'click' interaction in the middle of typing is awkward.

For now I can use the normal file jump commands but if I have many files named similarly, a keyboard shortcut would be slicker.

Graph Issues with Titles and [[wiki-links]]

I have been using Obsidian for almost 2 months and decided to give Foam a try. When I opened up my existing repo, I noticed two major things with the graph-view.

  1. Markdown files do not appear in the graph unless they have a # Title
  2. Even though I am in version 0.6.0 of Markdown Links, [[wiki-links]] do not show up.

As a result, the graph that looks like this in Obsidian
image

looks like this in Foam
image

The VSCode Markdown Notes extension handles my knowledge-base just fine, it is only the Markdown Links extension that seems to be not working. If needed, I can post the issue there as well.

"link reference" section gets more lines down the page on every save, and can overwrite last line of content

There seem to be 3 separate issues here:

  1. Every time the file saves, another line break get added between the end of the content and the "Link references" section. I have auto-save enabled in vs-code, so this is particularly obvious to me.
  2. If I delete all of these empty lines, Link references can be saved over the last line of content, deleting it. If i put the cursor on the last line and backspace until I reach the last line of content (i.e. no trailing line-break) then this happens.
  3. Using undo also seems to race with auto-save and adding the link references section in such a way that you have to undo faster than link references is being added and the file is getting auto-saved, otherwise you just loop forever without actually undoing the "real" edits.

I'm using Ubuntu 20.04. These are hopefully trivially reproducible, but if not I'll help you figure out how to reproduce them.

README links 404ing isn't obvious if you're skimming the docs

I 100% understand -why- you'd rather users browse the Foam workspace, but on first read, I missed the friendly note at the top of the README.

Since GitHub renders the README.md on the project's homepage, maybe it makes sense to cut down the README and move most of the linked content onto another page.

The user experience of getting 404s from the README isn't a good representation of why Foam is awesome.

Opening directory in VSCode caused theme to change from dark to light

I cloned my template and opened it in VSCode. Since I was on an older version of VSCode it simultaneously asked me to upgrade to a newer version and install all the extensions. I chose to install the extensions first and it complained that my version was too old. Then it proceeded to change my theme to be light instead of dark. Then I clicked button to upgrade to a newer version and it reopened with light theme still enabled.

Discussion: Fixing [[wiki-links]] in GitHub Web UI

At the time of writing, links created with the [[wiki-link]] syntax work in VS Code and in rendered GitHub pages, but lead to non-existent pages on the GitHub Web UI. This is a meta-issue to track solutions and document the approach, once selected.

See context in foambubble/foam/wiki-links. TL;TR; There's a workaround at the end of the document, but it has some nasty trade-offs.

Ideas welcome!

Idea: web clipper

Evernote, Notion, TiddlyWiki, Joplin all have web clippers. Foam would be even more awesome if it had one.

Idea: Allow notes in folders or subfolders

The impression I have is that all files created in foam are in a single folder. It would be good if foam could index notes in a folder and its subfolders, or even indexing of external folders. There are a few reasons why:

  • vscode file manager is the sidebar is a useful tool and when a note is accessed, related notes show up in the sidebar.
  • knowledge graphs could be more powerful by toggling graph of files in all folders or files in a given folder only. If your files are grouped by project, you get project-specific graphs, or domain specific graphs, etc

Idea: use built-in Git extension for now

This still isn't ideal [1], but IMO a slightly slicker default than requiring the Git Automator extension at the moment is:

.vscode/settings.json

  "git.enableSmartCommit": true,
  "git.postCommitCommand": "sync",

To save & sync to Github or any remote, it's just Git: Commit All. This doesn't require the additional extension and automatically does the sync.

[1] (I think it would be a cooler default and more like Roam to do this automatically when saving files, but I didn't immediately see how to do that...)

Tiddlywiki companion

Tiddlywiki with tiddlymap and the bob plugin makes a very good note system, where you can also (using bob) edit the files on the filesystem and their change show immediately in the web ui.

I often use vscode to edit my tiddlywiki files since the editor in tiddlymap isn't that good.

Maybe it's worth looking into being a companion to such a system? That combination would be a killer in the note-taking-space.

I have tried a lot of note-taking tools, but often ends up missing some functionality.. afraid pursuing this project would end up me missing a web ui combination

Graph in published workspace

Opening this issue to discuss what it should look like and what are the technical solutions to show a graph in a published workspace.

In the gatsby-theme-garden (which can be used out of the box with foam), I implemented such a graph

Screenshot 2020-07-05 at 11 44 01

I also added a small feature to keep the graph as a "minimap", pretty much like how Foam does it in vscode

Screenshot 2020-07-05 at 11 44 13

It does require a build step (done in a GitHub action). I'm guessing it could be possible to do the same with a jekyll template tho.

Bug: backlinks not working, "No refs in empty workspace"

I'm not sure what's going on here, but Backlinks don't work for me (panel renders but is blank), and I get these messages:

image

Any ideas on where to start with that? I didn't see any errors when I tried to check in the Log (Extension Host) logs.

Question: too much frequent git commit message

When using GitHub as the backend storage, we will generate lots of commits.

This will impact our contribution heatmap.

And will 20 a day, 7k a year of commits impact git performance?

Generating markdown link reference definitions ?

Hey there, thanks for foam!

The docs say: https://foambubble.github.io/foam/wiki-links

The Foam for VSCode extension automatically generates markdown link reference definitions at the bottom of the file to make wiki-links compatible with Markdown tools and parsers.

If you look at link references the bottom of any Foam workspace file that uses wiki-links, you should see an automatically generated list of references that look as follows:

[wiki-links]: wiki-links "Wiki Links"
[other-page]: other-page "Other Page"
These exist to make [[wiki-links]] compatible with Markdown-consuming tools such as static site generators, VS Code plugins etc.

However, I am not seeing these links get generated. I'm not seeing any errors, either. Do I need to configure something, or press a key or something? Thanks!

Idea: View similar to Story River in Tiddlywiki

While I edit notes one file at a time, I would like to see a Story-River like view of Notes in Tiddlywiki (https://tiddlywiki.com/), where multiple related notes are tied to one or more keywords selected in the Knowledge Graph to get a bigger picture of a node and quickly navigate to and find files of interest without having to open them one at a time.

Feature-request: Alternate Names for Entries in a Knowledge Graph

Right now, it seems the Knowledge Graph is mapped 1-1 with the file name. Oftentimes, the same note may be associated with multiple topics in the knowledge graph. It would be useful to support some markdown metadata where additional tags or alternate names for the knowledge graph and other documents to use to refer to the document. In wiki-syntax, referring to an alternative name would take you to the same file. I don't know how this would affect performance though, and it might not be worth it.

Linking between published workspaces

Opening this issue to discuss what linking between published workspaces could look like.

I believe there are (at least) 3 very separate aspects of this feature:

  1. what the format should look like to link to another workspace? Is it just a normal markdown link? Do we have a shortcut that the extension handle (similar to wiki links)? If we have a shortcut, how to we get the title of the foreign bubble (and update it if/when it changes)?
  2. Shall we notify the linked workspace that it is being linked to (for backlinks)? If so how?
  3. Do we (and if so, how) display backlinks from foreign workspace?

I don't have many opinion on 1. but I thought about 2. and 3. a bit. IMO this is the perfect use case for webmentions.

Using webmention.io, it is possible to have a JAMstack website display its mentions dynamically (eg. its backlinks). The only requirement is to open an account on webmention.io and add some metadata in the head of your pages. Those metadata specify the server to ping when another website mentions yours.

You then have an API to query the mentions. It does require a bit of code but there are some gatsby plugins to make it easier for example.

The second part is notifying the websites (workspaces) you mention when you deploy it. I built a small webservice that does the following when you ping it with your url:

  • fetch your sitemap.xml expecting a sitemap with an extension to specify external links for each pages
  • for each external link, look if there is a metadata specifying a webmention server
  • if so, ping it with the source page and the target page
  • stores the sitemap to compare it next time (and only ping the new links)

Improve VS Code Extension Contributing Guidelines

I wanted to give a stab at contributing but I got stuck getting this extension to work locally. I tried adding a new hello world command to get things started, but I'm struggling to get that working.

It would be awesome for us to add some docs for getting this working locally! A few thoughts:

  • when I run the extension locally (f5), do I need to to run it in a foam workspace and have the other extensions installed?
  • tips for writing tests?

Hi,how to show markdown-links?

👋,Thank you for creating this great project!!!!

when I generate repositories by your template,then git clone to local,open it with vscode,and install all recomend extensions,but I can't preview markdown link? how can i resolve this ? hope get you reply😊

image

[Idea][Issue] Extension slipbox and ID

Hi, what a great aggreagate, these day I am also looking extensions for Zettelkasten.

Here, I recommand a extension call "slipbox". Your know, The Zettelkasten method also include a ID information. Some zettelkasten app also have this function. So when I search for Vscode I find these extension.

here is the link slip box

click through

new-node

Issue:

Also, I have a issue, my "Markdown Notes" extension completion function doesn't work, when I type [[ nothing happen, but when I complete the [[wiki link]] by myself the link works well, this is why I add a extension "slipbox" for the [[completion here]] .

But I hope I can use the original "Markdown Notes" completion , what's the problem with me.

More context in backlinks

Currently, the backlinks section in the left sidebar is pretty minimalist in terms of info and context. Being able to see more details and context around all the notes that link to your current note is one of the most powerful aspects of networked notetaking.

Perhaps the following requests should be broken out into separate issues:

  • The backlinks section should given its own dedicated window (similar to the graph view) as opposed to part of the left side bar. This would allow more info to be displayed and explored as well as make the functionality more expandable in the future.

  • Could the backlinks section be expanded such that is shows more than only the line that the link appeared on? With only one line (or even just a snippet of that line) very little context is provided. In particular, if the link is part of a bulleted list, it would allow the line to be expanded to show bullets nested below.

  • Ideally, the content in the backlinks section would be editable so that a user need not click between notes to add / edit content when working on a topic/note.

Improve monorepo setup

Last night I migrated all the foam packages (save for foam-template) to a monorepo structure. There are a couple of issues that need to be resolved:

  • Workspace tasks for running common development workflows
  • foam-vscode and foam-cli should use local foam-workspace-manager in development
  • vsce package does not know how to pick up packages from hoisted yarn workspaces
    • Currently worked around by running vsce package with npm install. See d6d31fa
  • Migrate all packages to test with jest

Help wanted with remaining issues!

Materials

https://medium.com/@rossbulat/typescript-working-with-paths-packages-and-yarn-workspaces-6fbc7087b325

Font style issue after typing "fi"

I'm experiencing this unexpected font style change after typing "fi." It shrinks a bit. It only happens in my Foam workspace. I don't see it when I open one of my coding projects or start a new workspace from a blank repo.

Screen Shot 2020-07-03 at 9 25 33 AM

I have already tried disabling the Foam-specific extensions (the markdown and theme ones). Is anyone else seeing this?

[Idea] Color and icons on graph node

Hello,
@jevakallio Thanks a lot for this project, i think it is really useful and it is interesting that it is integrated into an IDE. Seeing my notes as a mind map has become essential !
A feature i like to see is color / icons on graph node :
When my node is a category, i want to highlight it (maybe clicking on the node and changing the color).

Support for Codium?

There are some people in this world that would rather use OSS. Code is not OSS, but Codium is.

However, when using the template, I get a bunch of weird behavior. Namely:

  • It installs a bunch of extensions I never heard of
  • It tells me there's problems with the suggested extensions

Screenshot from 2020-07-01 13-04-08

They did get installed, but this message is there on every boot.

Perhaps there's something we can do to make life easier for folks who use Codium?

PS: I could also just have messed something up. It's super weird that Codium installed stuff like WakaTime's extension.

Document how to get a rendered version

First of all: I love it 😍

My current problem I solve through foam is organising my dancing journal.
I need to be able to access it and quickly navigate it from my phone and the rendered version you have as a Github page here seems to do just that.

I could not find the instructions to set this up (or to even render it)

Roam Import

First of all great work!

I've been working on importing my roam knowledge graph into foam. There's a couple of features/issues which I was wondering about.

  1. Roam's export doesn't generate # Headings which are required for the markdown links graph, this seems relatively easy to resolve by simply making the file name the heading.
  2. Roam notes feature backlinks showing which notes reference the note you're on, something like this was implemented by andy matuschak
  3. Resolving block embeds and block references implemented by roam export

I was wondering what the best way to integrate all of this into something Roam users can get up and running quickly in — wether as part of foam, an extension or just simply shipping a js script users can run on import?

Mobile app

A mobile/tablet app will make foam so much easier to use. Based on my daily usage, I'd prefer a mobile app similar to GitJournal but focused on quickly creating notes and accessing them using links.

I'd be more than happy to help build a mobile app once we establish a clear list of features 😁

Previously discussed on this tweet thread

Links Not Working

Numerous links in ReadMe.md result in a 404, eg. 'Create a single Foam workspace'.

This leaves me unable to get started with Foam - The link in 'Create a GitHub repository from foam-template. If you want to keep your thoughts to yourself, remember to set the repository private.' is broken, and the instruction is otherwise too unclear.

Sorry, I don't mean to be critical - this looks like a really interesting project - but I'm stymied at step 1.

Add 'Open Daily Note' Command

In Obsidian (and Roam I think), there is a concept of a daily note. I wish there were a VS Code command to "Open Daily Note"

  • If there is no note for current date, it creates a new one
  • If there is, it goes to that note and opens in Workspace
  • If a user has a foam.config.js and there is a value for dailyNotesDir, then the notes are saved there. Default is root.
    • let user configure the format of the date for filename

Thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.