Git Product home page Git Product logo

bangle-io / bangle-io Goto Github PK

View Code? Open in Web Editor NEW
989.0 6.0 56.0 1.46 GB

A web only WYSIWYG note taking app that saves notes locally in markdown format.

Home Page: https://bangle.io

License: GNU Affero General Public License v3.0

JavaScript 1.63% CSS 2.18% HTML 0.09% TypeScript 95.62% Prolog 0.13% Handlebars 0.35% Shell 0.01%
markdown-notes local-first pwa markdown wysiwyg react webworkers notes note-taker knowledge-graph

bangle-io's Introduction

Bangle.io

Bangle.io is a modern web based note taking platform.

You own your notes

  • Local: Modify notes right from your computer. Think Notion, but local only.

  • No data lock-in: bangle stores your notes in a human readable Markdown format.

Not your usual note taking app

  • WYSIWYG: Even though we save things in Markdown format, Bangle will enrich your eyes with rich text formatting.

  • Modern rich text editor: Bangle uses its sister project bangle.dev which unlocks us to build a powerful editor like Notion or Dropbox paper and support real time collaboration.

  • Extensibility: Even though it's a web app it was built ground up to be extended by awesome extensions. (We have bunch of community extensions coming out soon.)

Portability at its core

  • No Electron: ❤️ for web and speed, thats it.

  • Performant: Throw thousands of notes at it and Bangle will chug along fine. (Try opening a heavy project like 10,000 Markdown Files.)

Usage

Head to https://bangle.io to use the app.

Development

  • yarn install to install

  • yarn start to start a development instance on localhost:4000

Please read Contributing.md for more details.

Coming soon

  • Roadmap

bangle-io's People

Contributors

kepta avatar kusum-68 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

bangle-io's Issues

Ctrl+Shift+P shortcut doesn't work

When I press Ctrl+Shift+P, Firefox opens a new Private window instead of triggering the command palette.

I'm using Firefox Developer Edition v96.0b8 on Arch Linux.

View all notes screen

A screen where use can see a flat list of all their notes in some sort of tabular format.

BackLinks View

Add at the bottom of the note a list of all notes linking to it.

Implement Nextcloud Collective Integration

Nextcloud Provides Nextcloud Collectives as a sort of wiki/ documentation tool, unfortunately, it is only available online and only editable through the nextcloud browser. https://apps.nextcloud.com/apps/collectives
this solution is great, works with Markdown and Saves Documents and Files locally.

How About, implementing the App, in such a manner that it work with Nextcloud Collectives, using their Folder Structure, or providing a from of sync mechanism, so that the locally stored Nextcloud Collective files, can be edited within Bangle. that way, this becomes the Defactor Nextcloud Collectives offline tools.

This will increase the update of the project, and Most nextcloud Collectives users, would install this for Offline Support.

ability to archive notes

Archiving essentially means that I donot want to still keep them around but not show them directly.

This will require the user to tell where to save archived notes and will need some sort of API to ignore notes in the archived directory.

depends on #453

Quote/callout shortcut and text navigation conflict

Operating System: Windows 11 21H2
Browser: Microsoft Edge 95.0.1020.53

Ctrl+Left or Ctrl+Right are used on Windows and Linux to move one word left or right in text. The shortcut to change a block of text to a quote/callout (adding a > before the line in the raw markdown) is the same as the shortcut to move right one word. The resulting behavior is that whenever I want to move my cursor right one word, the line I'm on becomes a quote instead.

Add MathJaX Support

Please add MathJaX support for LaTeX like Math.

So one could have $ ...LaTeX Code $ for Inline Math Mode and $$ ...LaTeX... $$ for Display Math Mode.

Support for android arm64?

Hi, I know bangle wasn't meant to run on Android, but I really like the idea of using my phone with termux as a server.
When I want to build bangle I get the following error:
image

Node: v16.14.2

Do not map ctrl-r for non-darwin devices

Ctrl-R is associated with reload in devices like windows, linux. Bangle.io currently uses that to show workspaces, we should pick something else for such users.

Unable to check TodoList Item

When I create a TodoList item, I am unable to tick the box to mark it as complete.

This issue was found on MacOS - Chrome 96

I also tested on MacOS - Firefox and Android - Chrome but the issue is not reproducible.

In the browser developer tools I see this error when I click on the TodoList item:

Uncaught RangeError: Index 3 out of range for <heading("grandiose-experience"), bulletList(listItem(paragraph("Hello World")), listItem(paragraph("Testing TODOs"))), paragraph>
    at O.child (vendor.3d86b7b6.js:41)
    at O.findIndex (vendor.3d86b7b6.js:41)
    at te.nodeAt (vendor.3d86b7b6.js:41)
    at e.De.setNodeMarkup (vendor.3d86b7b6.js:44)
    at y6 (vendor.3d86b7b6.js:49)
    at updateAttrs (vendor.3d86b7b6.js:49)
    at vendor.3d86b7b6.js:52
    at HTMLInputElement.<anonymous> (vendor.3d86b7b6.js:52)
    at HTMLInputElement.sentryWrapped (helpers.ts:88)

Avoid `unpkg` as it is tracking

We use unpkg for serving certain files. On safari I found that unpkg tracks users, which is not acceptable for usage in this project.

image

Add database feature

My most used feature in Notion currently is databases, which are basically tables but you can also sort/filter/group that table data in different ways. It would be great to see this in Bangle also.

Update Backlink References on Note Rename

When a note is renamed the backlinks are not updated. Corresponding backlinks clicked from the parent create a new note instead of linking to the same one.

At the moment, each parent note will have to be updated manually by the author.

Current Behaviour

  • Rename a note
  • Click on the backlink in the parent note
  • Bangle opens a new note

Expected Behaviour

  • Rename a note
  • Ask to update backlinks
  • Click on the backlink in the parent note
  • Links back to renamed note

Unexpected .md source formatting changes

I tried editing a few files (only a few characters edited) and checked the git diffs to find lots of other markup was reformatted (to an equivalent but different choice).

A. Underline-style H1 changed to #-style heading:

Screen Shot 2021-04-17 at 1 16 51 AM

B. Spaces were added between UL LIs

Screen Shot 2021-04-17 at 1 16 00 AM

It would be nice if parser can preserve source and not change sections that were not edited.

Add Support for Note Embedding

It would be great to support Obsidian's embedding syntax: ![[IDofNote]].

It is useful to embed different notes in different places.

Firefox support

Is it possible to add support for firefox so the app works as it does on Chromium based browsers?
Currently:

  • I can not save the workspace locally on Firefox.
  • Crtl + Shift + P opens a news ivate browsing window

New Note Offline - "Error Fetch"

I'm using a XE303C12 chromebook and while it does work offline, making a new note offline is not possible. Is there any fix to this or do I really need to be online to make a new note?

Accessibility: Screen readers are not aware of autocomplete suggestions for / and action list

Pretty much as it says on the tin. No ARIA markup is present to make sure screen reader users are aware what autocomplete suggestion is in focus. Most of the ret works fine, but that bit appears to be broken which is unfortunate.
Could this be looked into, so companies that want to adopt this for their on-premise note taking tools won't have to severely inconvenience or outright fire their screenreader-using employees? Thanks much! :)
I'd be happy to answer questions if there are any.

Support metadata and query languages

Rationale

Part of the value of a linked set of notes is the ability to slice and dice the data based on a series of customizable features. Having metadata support and query languages that can be used to explore such metadata adds a tremendous value to a tool like bangle.

Examples

I can have a series of pages, one for each project I'm working on. Each project can have links to meeting notes, more documentation, FAQ, etc. Each meeting note can contain a series of TODOs, people who attended those meetings, places and date. Based on such a simple scenario, I can imagine the following situations:

  • I want to find all the TODOs that haven't been completed for project A, across all notes.
  • In some cases, you may want to find the action items that were discussed only in the meetings where X and Y persons were present.
  • Find all the meeting pages related to project X that were created between two dates and that where person C was not included.

Implementation

There are some options on how to implement these features, but the first consideration is that metadata addition should be easy. Obsidian has a nice YAML section at the beginning, but YAML doesn't support links (there are ways to solve this, but not elegantly). Logseq supports their own property:: value format that can be appended to any page or block, but it seems to make the query slow.

Regardless of the solution, Bangle could support custom properties (similar to creating JSON/YAML properties), ideally with types (numbers, strings, dates, internal links).

One possibility is to use SPARQL, which is a W3C standard used for graph queries. One of the benefits of using SPARQL is that is suited for graph-like structures, such as the case of linked notes.

Alternatively, SQL could be used as a query language, assuming some prior schema that allows for extensibility.

Feature Request from passionate developer

Below are the features needed........

1 - Share the notes to public - any user will browse/view the content - without any credentials - however they cannot add or edit or delete the content - Just READ only like website. Public Sharing via URL
2 - Import option to import text files. Text file sizes may be huge - Max size of a single text file would be 10MB but not all...The smallest one is 200KB in size. Should support unicode characters
3 - Add a type-ahead search with number of hits found even before hitting the search
4 - Next, Previous buttons and arrows after search results are returned.....
5 - Highlight the text on the file name as well as on the right side content
6 - Following app produces the results in milliseconds....However it doesn't all the features listed...example

a. https://bible.rs/ => searches whole bible in fraction of milliseconds

Codeblock Syntax Highlighting

Add syntax highlighting to code blocks, similar to how the GitHub Markdown renders.

Current Behaviour

if num > 1:
    # check for factors
    for i in range(2, num):
        if (num % i) == 0:
            flag = True
            break

Expected Behaviour

if num > 1:
    # check for factors
    for i in range(2, num):
        if (num % i) == 0:
            flag = True
            break

Consider Tauri as an desktop client

Hey! This is an interesting app, and noticed it's web only. You may consider Tauri as an desktop alternative compared to Electron, it's really a lot lightweight than Electron. I can try working up something

This could be interesting because Tauri allows interfacing with Rust, so you may add some features that can't be really done on web

Settings screen

A screen to allow user to customize some settings.

We will also need to come up a list of settings.

sync with git?

Is it possible to introduce automatic commit & push for any changes made?

I have to use it on multiple computers, manually committing & pushing is not ergonomic, and I will easily forget.

Files and Directories with the tilde character (~) don't appear in the Notes Browser

First off, awesome project!

Web Browser: Chromium
OS: Linux (Mint)

How to reproduce:
Create a markdown file where the filename contains a tilde character. The file won't show up in the Notes Browser.

Additionally...

Create a directory where the name contains a ~ character. Add a markdown file (test.md or something) inside that directory. Neither the directory nor the markdown file appears in the Notes Browser.

Nested collapsible headings

Any plans for nested collapse elements?

I was confused when trying to add an H3 under an H2 and it was disabled.

Bangle should use relative paths (not absolute) when referencing assets

When Bangle references an asset (an image for example), it uses absolute paths with respect to the workspace (e.g. ![](/assets/images/image.png]). This breaks other markdown tools' ability to interpret paths to images. The way bangle creates and references assets, those links are broken, thereby preventing other tools from interoperating with Bangle.

To resolve this issue, Bangle should use relative paths when referencing images and other assets. For example, a file in a subdirectory one level deep from the root of the workspace (e.g subdirectory1/example.md) that references an image, should use the relative directory path like so ![](../assets/images/image.png] (note the two periods before the path statement).

[feature] e2e encryption support?

Hi, do you have plan to support E2EE? Currently we can save to github private repo, I think it would be even better if bangle can support encryption so users do not need to worry about leaking information to github.

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.