Giter Club home page Giter Club logo

notabase's Issues

Small search bar next to notes list won't work properly.

This is the search bar I'm talking about:
image

The problem with it, is that when a note A is foldered under another note B, and the root note B doesn't have reference to A, A can't be found in this serach bar.

Re-creation of the problem:
image
image
When reference exist in A, it is shown in search result; But still have a problem: when clicking on it, it takes you to A instead of B which you are searching.
image

The "find and create note" and ctrl+k works just fine though:
image
image

There is also another problem:
If you change note title after creating it, this small search bar somehow can't handle the new name, and still only show result with the old name. Only when deleting note and starting new note with new name does the small search bar find the file with new name:

image
image
image
image
image
image
main search bar handles it correctly though
image

Sentry CLI Plugin: Command failed, An organization slug is required

Describe the bug
Unable to build notabase without configuring sentry.

To Reproduce
Steps to reproduce the behavior:

  1. Checkout commit dadc5c5.
  2. Build with this Dockerfile.
FROM node:16

WORKDIR /app
COPY package.json package-lock.json .npmrc /app/
RUN npm install
COPY . /app/
RUN npm run build
  1. See error.

Expected behavior
Build succeeds.

Screenshots

RUN npm run build:

> [email protected] build
> next build

warn  - You have enabled experimental feature(s).
warn  - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use them at your own risk.

Attention: Next.js now collects completely anonymous telemetry regarding usage.
This information is used to shape Next.js' roadmap and prioritize features.
You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
https://nextjs.org/telemetry

info  - Checking validity of types...
Warning: React version not specified in eslint-plugin-react settings. See https://github.com/jsx-eslint/eslint-plugin-react#configuration .
info  - Creating an optimized production build...
> [PWA] Compile client (static)
> [PWA] Auto register service worker is disabled, please call following code in componentDidMount callback or useEffect hook
> [PWA]   window.workbox.register()
> [PWA] Service worker: /app/public/sw.js
> [PWA]   url: /sw.js
> [PWA]   scope: /app/
> [PWA] Fallback to precache routes when fetch failed from cache or network:
> [PWA]   document (page): /_offline
> [PWA] Compile server
> [PWA] Compile server
Failed to compile.

Sentry CLI Plugin: Command failed: /app/node_modules/@sentry/cli/sentry-cli releases new <redacted>
error: An organization slug is required (provide with --org)

Add --log-level=[info|debug] or export SENTRY_LOG_LEVEL=[info|debug] to see more output.
Please attach the full debug log to all bug reports.


> Build failed because of webpack errors

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Allow adding note directly as a subnote of a note

It is pretty self-explanatory; I'd propose two potential ways of implementing this:

  1. have a check box when creating notes in a note using ctrl+k for placing the node under the current note's folder, and/or
  2. add a dropdown menu next to notes in note list to the left for adding new note under its folder.

image

Can't open notes in the side panel when in Graph View

To Reproduce
Steps to reproduce the behavior:

  1. Go to Graph View
  2. Click on a note in the left-hand panel

Expected behavior
Note should open

Screenshots

Notabase

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Tested on Firefox and Vivaldi

Search should use `Ctrl+K`

It's more common to use Ctrl+K for search than Ctrl+P, Notabase is the only app I know that use Ctrl+P, however I used many apps that use Ctrl+K.

Try local test unsucessfuly

Describe the bug
run failed
To Reproduce

  1. Git Clone Code
  2. Run `npm install && npm run dev
  3. See error
C:\Users\21225\Downloads\notes\notes> npm install
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR!   react@"17.0.2" from the root project
npm ERR!   peer react@">=16.8.0" from @dnd-kit/[email protected]
npm ERR!   node_modules/@dnd-kit/accessibility
npm ERR!     @dnd-kit/accessibility@"^3.0.0" from @dnd-kit/[email protected]
npm ERR!     node_modules/@dnd-kit/core
npm ERR!       @dnd-kit/core@"^4.0.3" from the root project
npm ERR!       1 more (@dnd-kit/sortable)
npm ERR!   24 more (@dnd-kit/core, @dnd-kit/sortable, @dnd-kit/utilities, ...)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm ERR! node_modules/react-virtualized
npm ERR!   react-virtualized@"^9.22.3" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: [email protected]
npm ERR! node_modules/react
npm ERR!   peer react@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm ERR!   node_modules/react-virtualized
npm ERR!     react-virtualized@"^9.22.3" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
C:\Users\21225\Downloads\notes\notes>npm install -f
npm WARN using --force Recommended protections disabled.
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: @testing-library/[email protected]
npm WARN Found: [email protected]
npm WARN node_modules/cypress
npm WARN   dev cypress@"^10.3.0" from the root project
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer cypress@"^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" from @testing-library/[email protected]
npm WARN node_modules/@testing-library/cypress
npm WARN   dev @testing-library/cypress@"^8.0.2" from the root project
npm WARN
npm WARN Conflicting peer dependency: [email protected]
npm WARN node_modules/cypress
npm WARN   peer cypress@"^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" from @testing-library/[email protected]
npm WARN   node_modules/@testing-library/cypress
npm WARN     dev @testing-library/cypress@"^8.0.2" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: [email protected]
npm WARN Found: [email protected]
npm WARN node_modules/react
npm WARN   react@"17.0.2" from the root project
npm WARN   25 more (@dnd-kit/accessibility, @dnd-kit/core, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer react@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm WARN node_modules/react-virtualized
npm WARN   react-virtualized@"^9.22.3" from the root project
npm WARN
npm WARN Conflicting peer dependency: [email protected]
npm WARN node_modules/react
npm WARN   peer react@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm WARN   node_modules/react-virtualized
npm WARN     react-virtualized@"^9.22.3" from the root project
npm WARN ERESOLVE overriding peer dependency
npm WARN While resolving: [email protected]
npm WARN Found: [email protected]
npm WARN node_modules/react-dom
npm WARN   react-dom@"17.0.2" from the root project
npm WARN   10 more (@dnd-kit/core, @headlessui/react, @react-spring/web, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer react-dom@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm WARN node_modules/react-virtualized
npm WARN   react-virtualized@"^9.22.3" from the root project
npm WARN
npm WARN Conflicting peer dependency: [email protected]
npm WARN node_modules/react-dom
npm WARN   peer react-dom@"^15.3.0 || ^16.0.0-alpha" from [email protected]
npm WARN   node_modules/react-virtualized
npm WARN     react-virtualized@"^9.22.3" from the root project

> [email protected] prepare
> husky install

husky - Git hooks installed

added 1 package, changed 73 packages, and audited 1330 packages in 2m

226 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

C:\Users\21225\Downloads\notes\notes>npm run build dev

> [email protected] build
> next build "dev"

error - Invalid project directory provided, no such directory: C:\Users\21225\Downloads\notes\notes\dev

**Expected behavior**
A clear and concise description of what you expected to happen.

Screenshots
Open localhost:3000
run-error.jpg
Desktop (please complete the following information):

  • OS: Win11
  • Browser Edge
  • Version
  • NPM: 8.12.1
  • Browser:103.0.1264.44

Additional context
Excues me, I meet some trouble when try to self-host. For the detial, please look through the log. What the picture show is what I see after open localhost:3000. By the way , I wonder if I could develop it on netlify.com or only VPS. Thank you sincerely

An unexpected error occurred when rendering this note.

Describe the bug
An unexpected error occurred when rendering this note.

To Reproduce
Steps to reproduce the behavior:

  1. Create two notes (Note1, Note2)
  2. Link one note to another (Note1 contains a link to Note2)
  3. Copy block reference (Note2)
  4. Insert block reference into note after Note2
  5. Get an error

Expected behavior
To prevent this from happening

Screenshots
If applicable, add screenshots to help explain your problem.
image
image
image
image

Desktop (please complete the following information):

  • OS: Linux
  • Browser Vivaldi
  • Version 6.0

Additional context
Only deleting the note helps

Unable to upload image in self-hosted notabase (using supabase)

This is the same as the latter part of #1178;

When trying to paste an image onto a note in a locally hosted notabase, this happens:
image

Here is a screen shot about the failed image upload in browser devtool:
image
image

There does exist a user-assets bucket under storage in supabase, as I executed command from readme for setting up storage:
image

The following warning is shown when running npm start; I think this might be the root cause of this; but have no idea how to resolve it:
image

I don't know to go in to more details in solving this problem.

Self-Host Vercel Error

Describe the bug

When attempting to self-host on Vercel + Supabase, I get the following error:

npm ERR! code 1
npm ERR! path /vercel/path0/node_modules/canvas
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build --update-binary
npm ERR! Failed to execute '/node20/bin/node /node20/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/vercel/path0/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/vercel/path0/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v115' (1)
npm ERR! node-pre-gyp info it worked if it ends with ok
npm ERR! node-pre-gyp info using [email protected]
npm ERR! node-pre-gyp info using [email protected] | linux | x64
npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.0/canvas-v2.11.0-node-v115-linux-glibc-x64.tar.gz
npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.0/canvas-v2.11.0-node-v115-linux-glibc-x64.tar.gz 
npm ERR! node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v115 ABI, glibc) (falling back to source compile with node-gyp) 
npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.0/canvas-v2.11.0-node-v115-linux-glibc-x64.tar.gz 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info ok 
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.9.16 found at "/usr/bin/python3"
npm ERR! gyp http GET https://nodejs.org/download/release/v20.12.1/node-v20.12.1-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v20.12.1/node-v20.12.1-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v20.12.1/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v20.12.1/SHASUMS256.txt
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/node20/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/vercel/path0/node_modules/canvas/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/node20/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/vercel/.cache/node-gyp/20.12.1/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/vercel/.cache/node-gyp/20.12.1',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/node20/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/vercel/.cache/node-gyp/20.12.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/vercel/path0/node_modules/canvas',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! Package pixman-1 was not found in the pkg-config search path.
npm ERR! Perhaps you should add the directory containing `pixman-1.pc'
npm ERR! to the PKG_CONFIG_PATH environment variable
npm ERR! Package 'pixman-1', required by 'virtual:world', not found
npm ERR! gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
npm ERR! gyp ERR! stack at ChildProcess.<anonymous> (/node20/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:271:18)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:518:28)
npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
npm ERR! gyp ERR! System Linux 5.10.174
npm ERR! gyp ERR! command "/node20/bin/node" "/node20/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--update-binary" "--module=/vercel/path0/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/vercel/path0/node_modules/canvas/build/Release" "--napi_version=9" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v115"
npm ERR! gyp ERR! cwd /vercel/path0/node_modules/canvas
npm ERR! gyp ERR! node -v v20.12.1
npm ERR! gyp ERR! node-gyp -v v10.0.1
npm ERR! gyp ERR! not ok 
npm ERR! node-pre-gyp ERR! build error 
npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/node20/bin/node /node20/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/vercel/path0/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/vercel/path0/node_modules/canvas/build/Release --napi_version=9 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v115' (1)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/vercel/path0/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:518:28)
npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1105:16)
npm ERR! node-pre-gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:305:5)
npm ERR! node-pre-gyp ERR! System Linux 5.10.174
npm ERR! node-pre-gyp ERR! command "/node20/bin/node" "/vercel/path0/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary"
npm ERR! node-pre-gyp ERR! cwd /vercel/path0/node_modules/canvas
npm ERR! node-pre-gyp ERR! node -v v20.12.1
npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.5
npm ERR! node-pre-gyp ERR! not ok
npm ERR! A complete log of this run can be found in: /vercel/.npm/_logs/2024-04-10T01_16_06_329Z-debug-0.log
Error: Command "npm install" exited with 1

To Reproduce

Steps to reproduce the behavior:

  1. Clone the notabase GitHub project
  2. Create a Supabase project. Apply the [full schema](https://github.com/churichard/notabase/blob/main/scripts/schema.sql) and [storage setup](https://github.com/churichard/notabase/blob/main/scripts/storage-setup.sql) using the Supabase SQL Editor.
  3. Create a Vercel project. Create 3 env variables for the Vercel project [found here](https://github.com/churichard/notabase/blob/main/.env.local.example).
  4. Deploy the Vercel project

Expected behavior

Successful deployment.

Cursor moves to the start of the line when editing a note title

Describe the bug
When trying to edit a note title, it moves the cursor to the start of the string, making it write in the wrong direction.

To Reproduce
Steps to reproduce the behavior:

  1. Go to any note
  2. Click on the title to edit it
  3. Write anything
  4. See error

Expected behavior
Title should be written in the right direction

Screenshots
imagen

Desktop (please complete the following information):

  • OS: Solus OS
  • Browser: Firefox
  • Version: 88.0.1 (64-bit)

I couldn't copy and paste the following (it skipped the section headings)

Describe the bug
Missing text upon paste

To Reproduce
Copy and paste into new note

Expected behavior
Expected all of source text to be present and rendered upon paste

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot_2023-08-16-22-24-07-935_com android chrome

Smartphone (please complete the following information):

  • Device: [Xiaomi Redmi Note 11]
  • OS: [Android 13; M2101K6G Build/TKQ1.221013.002]
  • Browser [Chrome]
  • Version [Chrome 115.0.5790.168]

Additional context
My content was formatted like this. Upon paste into a new note, the sections were missing

1. **Coding & Technology Integration:**
- "Invent To Learn: Making, Tinkering, and Engineering in the Classroom" by Sylvia Libow Martinez and Gary Stager.
- "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold for an understanding of coding's foundations.
2. **Play-Based Learning & Self-Directed Education:**
- "Free to Learn: Why Unleashing the Instinct to Play Will Make Our Children Happier, More Self-Reliant, and Better Students for Life" by Peter Gray.
- "The Play's the Thing: Teachers' Roles in Children's Play" by Elizabeth Jones.
3. **Interdisciplinary Education (including Sports, Science, etc.):**
- "Interdisciplinary Teaching Through Physical Education" by Camille Thomas.
- "STEM by Design: Strategies and Activities for Grades 4-8" by Anne Jolly.
4. **Parent & Teacher Involvement in Technology:**
- "Digital Community, Digital Citizen" by Jason Ohler, focusing on integrating technology into community and education.
- "The Art of Screen Time: How Your Family Can Balance Digital Media and Real Life" by Anya Kamenetz.
5. **Alternative Assessment Strategies:**
- "Assessment as Learning: Using Classroom Assessment to Maximize Student Learning" by Lorna M. Earl.
6. **General Education Philosophy & Customized Learning Pathways:**
- "The One World Schoolhouse: Education Reimagined" by Salman Khan.
- "Dumbing Us Down: The Hidden Curriculum of Compulsory Schooling" by John Taylor Gatto.
7. **Online Resources:**
- Websites like Edutopia and the Maker Education Initiative often feature content about integrated learning, hands-on projects, and innovative education practices.

I actually expected it to look like:

  1. Coding & Technology Integration:
  • "Invent To Learn: Making, Tinkering, and Engineering in the Classroom" by Sylvia Libow Martinez and Gary Stager.
  • "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold for an understanding of coding's foundations.
  1. Play-Based Learning & Self-Directed Education:
  • "Free to Learn: Why Unleashing the Instinct to Play Will Make Our Children Happier, More Self-Reliant, and Better Students for Life" by Peter Gray.
  • "The Play's the Thing: Teachers' Roles in Children's Play" by Elizabeth Jones.
  1. Interdisciplinary Education (including Sports, Science, etc.):
  • "Interdisciplinary Teaching Through Physical Education" by Camille Thomas.
  • "STEM by Design: Strategies and Activities for Grades 4-8" by Anne Jolly.
  1. Parent & Teacher Involvement in Technology:
  • "Digital Community, Digital Citizen" by Jason Ohler, focusing on integrating technology into community and education.
  • "The Art of Screen Time: How Your Family Can Balance Digital Media and Real Life" by Anya Kamenetz.
  1. Alternative Assessment Strategies:
  • "Assessment as Learning: Using Classroom Assessment to Maximize Student Learning" by Lorna M. Earl.
  1. General Education Philosophy & Customized Learning Pathways:
  • "The One World Schoolhouse: Education Reimagined" by Salman Khan.
  • "Dumbing Us Down: The Hidden Curriculum of Compulsory Schooling" by John Taylor Gatto.
  1. Online Resources:
  • Websites like Edutopia and the Maker Education Initiative often feature content about integrated learning, hands-on projects, and innovative education practices.

Graph view doesn't shows a link created using "block reference"

Describe the bug
I've linked two notes using the "copy block reference" feature but it doesn't show up in the graph

To Reproduce
Steps to reproduce the behavior:

  1. Create a reference using "copy block reference" into note "a"

Screenshot 2022-11-23 at 10 56 16

  1. go the graph view there is no connection between "a" and "prova"

Screenshot 2022-11-23 at 10 56 04

Expected behavior
I expect to see the link in red:

Screenshot 2022-11-23 at 10 56 04

Desktop (please complete the following information):

Theme switcher only available in settings

I recommend adding it to the main UI, so it can be toggled without opening a menu. It's useful for users who use dynamic system theme based on surrounding light conditions.

Embedding Media: Photos, Videos, Audio

Is your feature request related to a problem? Please describe.

I would love the ability to embed media hosted elsewhere, besides uploading photos to the server.

Describe the solution you'd like

Ideally, this could be done by adding a block option for audio and video, where a direct link to the file hosted online could be pasted, and embedded to the page.

image

This would add the file using a <video> or <audio> HTML tag.

Having an iframe option and/or accepting HTML tags to be added could also empower users to add a wide variety of media to their pages.

Additional context
Related: #1068

Foldering mechanism overhaul

image

For foldering mechanism in the notabase to be preserved during export, and interpreted during import, one thing need to be addressed:
Currently in exported files, if you have note titled "A/B", it will be interpreted as folder A note B in the export file. so no real implementation of preservation of foldering mechanism exist at the moment.
image
image
image
(which might require an overhaul of the way notes are stored; potentially by wrapping actual note in the .md)

Its not essential, but to the very least, helps with migrating notes, and encourages users from other note applications to switch to notabase.

UX of "Unlinked references" is ambigous

UI does not explain the "Unlinked references" section at the page bottom, and I couldn't figure it out either by using the app and trying all the features.

rich embeds

i would like to add direct links to video files

No row in public.users table, but has row in auth.users table in locally hosted notabase

image

The problem I faced is that after registration, there exist one row in auth.users table, but no row in public.users table. Since adding a row in the subscription is necessary to circumvent the "100 notes" limit, for quick fix on my local machine, I changed public.users in the schema of public.subscriptions table, to auth.users, and refered to the same userID there, and it worked.

Are you able to recreate this problem? If you can add this information (or some other fix) on Readme.md regarding self-hosting notabase, thanks

Deployment in Cloud

Hi,

Is it possible to deploy Notabase anywhere in cloud and access from anywhere ?

PikaPods https://www.pikapods.com/
YunoHost https://yunohost.org/
HomelabOS https://homelabos.com/
Tipi https://www.runtipi.io/
Sandstorm https://sandstorm.io/
CapRover https://caprover.com/
Umbrel https://umbrel.com/
Cosmos https://cosmos-cloud.io
CasaOS https://casaos.io/
Unraid https://unraid.net/
FreedomBox https://freedombox.org/
Easypanel https://easypanel.io/
Coolify https://coolify.io/

Thanks

In the sidebar, only show arrows in front of notes that have children.

Is your feature request related to a problem? Please describe.

When I have many documents in my Notabase, I am sometimes confused about which have children (created with the Move to ... bullet command), and which haven't. This is due to the arrow always shown and also offering to unfold notes which don't have children.

Describe the solution you'd like

I would like to see arrows only displayed on notes that have children.

Describe alternatives you've considered

Instead show a plus sign on hover, which offers to directly create children on demand.

Additional context

Notea and Outline work like that.

`Tab` key in `Ctrl+K` search bar

When inserting inline links with Ctrl+K, the Tab key switches focus to the browser UI (when using Firefox) instead of focusing the first recommendation.

Highlight the keyword with a different color for more redability

Hi,

When i searched for a keyword, the keyword got highlighted without any issues.
On clicking one of the search result, it goes to the specific paragraph but it fails to highlight the keyword with different color for more readability

Attach the screenshot for your kind reference and fix

It would be better if you can highlight the keyword in blue or some transparent color to differentiate the keyword in the paragraph or to give more readability

ex: keyword should be highlighted in red or blue in the right hand side paragrapha which shows the paragaph which is correct

image

Thanks

Nested checkbox doesn't work

Describe the bug
After I created checkbox, when I pressed TAB to create indentation, it doesn't create. However, bullet list or numbered lists are working correctly.

To Reproduce
Steps to reproduce the behavior:

  1. Create new note
  2. Write [] and press space
  3. Press Tab
  4. See error

Expected behavior
When I pressed tab, it should create indentation like bullet and numbered lists.

Desktop (please complete the following information):

  • OS: Windows 8.1, 64 bit
  • Browser : Opera GX
  • Version : 79.0.4143.73

Notes and Sub-Note Moving takes huge time

Hi,

Is it possible to have these two items

a) Import the files to a specific note
b) Option to select multiple note and move to a note. (currently need to drag and drop each note individually)

Thanks

Minor issue: Incorrect number of "new notes added" when importing files.

image
(the picture shows how the app says "x new notes added" despite importing completely duplicated notes)

It happens both when importing to a blank notabase account (locally hosted), and when importing the same files again (duplicated notes). Both times showing more notes than is actually added.

Also, the note import doesn't immediately result in an automatic fetch from the database for newly created note (instead have to restart page)

Multi-line code pasted into a code block is split to several blocks

Describe the bug
Code pasted into a code block is split into code blocks with each line of code in a separate block.

To Reproduce
Steps to reproduce the behavior:

  1. Type ``` in a note.
  2. Paste a block of code.
  3. See the problem.

Expected behavior
Code pasted should remain in the same code block.

Screenshots
fair-notabase

Desktop (please complete the following information):

  • OS: macOS
  • Browser: Firefox
  • Version: 103

Additional context
Add any other context about the problem here.

Can't increment with "tab" key

Not sure if it is a bug or a feature that isn't implemented:

The problme exist for my laptop, both for notabase.io, and for self-hosted server.

end-to-end encryption

I'm interested in your work.
This level of encryption is a reason for me to consider software.
How do I get to know your related views?
In the best case, NotaBase offers this level of encryption already and you change the type of this conversation, as one wouldn't need to request an available feature.

An important feature request: Adding search in graph view

Without the ability to search in graph view, the graph view is much less potent.

The lack of search function in graph view renders graph view close to useless when note number get larger. At certain point, note name stop appearing when note number is sufficiently large when one try to zoom out to include all nodes in a graph.
image
The title display for nodes mixing together doesn't help either:
image

Small search bar next to notes list won't work properly.

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Full width note

It is pretty self-explanatory:

image
Currently, notes by default have less than half-screen width.

Full page width may bring problems when it comes to notes stacking though...

Support real-time collaborative editing.

Is your feature request related to a problem? Please describe.

When opening a note in a separate browser tab, i.e. to work on multiple sections of large documents, the state is not shared between the instances and only a page reload will help to resync them.

Currently the last saved instance of a document will overwrite previous edits.

Describe the solution you'd like

The Supabase real-time API is used to synchronise the state of the content blocks between multiple instances of the same page open in different browser windows. Eventually, a CRDT like https://github.com/y-crdt/ is used to have deterministic syncing even on high latency networks.

Describe alternatives you've considered

An alternative is to implement a page lock while editing, or eventually opening notes read-only by default and having to choose to edit them (= acquire a write lock) manually.

Additional context

This would also benefit collaborative editing

Exporting & Importing notes.

Describe the bug
Trying to exporting my notes from notabase.io, and importing the files into my locally hosted notabase version. The exported file is a .zip file.

  1. Have trouble when unzipping the exported file:
    image
    this shows up for multiple notes. One thing that might be causing the problem is the titles I used for the notes, or the use of Chinese characters/marks (which cause problem for file manager when un-zipping it), but I'm not sure.

    UPDATE: It is note just caused by Chinese characters, any character that leads to confusion of the path interpreter will result in this, for example, ":". When a ":" exist in the file, the exported file will create ONE file with ":" replaced by "_", but when this is imported by local server, two files are generated:
    One with the title replacing ":" with "_" and has the original content, but doesn't have the original linked reference; and another with the same name as the original file, has original linked reference, but don't have any content.
    I think the first file is generated through the exported file, and the second one with the original name is generated through another file in which this note is created (interpreter of notabase on file import looked at it, found no corresponding file, and assigned a new empty note with linked reference for it)
    Original note on notabase.io; has ":" in title, has content, has linked reference (bottom):
    image
    Corresponding file in exported zip file:
    image

     一切有关“好坏”评判的皆是价值评判/估值(evaluation),其中对于好坏度量的描述/定义既是该评判中的价值。
    
    
    
     价值(value)vs. Moral Value/Morality vs. (非价值)数值标定 vs. 价格
     
     和传统意义上哲学里moral value/morality所指代的,以“[[实体]]行为为估值对象的价值“不同,这里所采用的定义更加宽泛,同样包括了人对事物本身的估值。
     
     并不代指人们用于描述事物无关好坏属性时所采用的数值标定。
     
     并不完全等同于“[[价格|价格]]”,价格更多的可以被看作是拥有不同价值观实体在交互过程中达成的,对于价值观实证的妥协。
     
     
     
     [[def: 价值实证 Enforcement of Value]]
     
     [[def: 价值实例 Value Instantiation]]
    

    First note of the file imported into local server, changed ":" to "_", has content, doesn't have linked reference (bottom):
    image
    Second note corresponding to the same original note:
    image

  2. (This may or may not be the result of the first problem) When importing notes to my local server, the original foldered structure of notes are not restored, and a lot of information (one of the most obvious ones is the removal of empty lines) in the notes are removed. The graph view remains similar though.
    Loss of foldered structure:
    In notabase.io (original notes)
    image
    After exporting from that, and importing to local server:
    image
    Loss of empty lines:
    In notabase.io:
    image
    On local server:
    image

I'm running from wsl2, and uses Edge as the browser

A potential quick fix for the problem is to do hashing on title string and use that in saving file name (and unhash for importing); but it will drastically reduce the readability of the exported file.

Stacking mode hides "x" button on small screen

When using it on small screens, stacked notes sometimes open wider content in a smaller pane, causing it to be vertically scrolled. It scrolls the "x" button out out sight.

Scrolling is a wrong UX anyway, as it makes reading more difficult.

I suggest opening the note in a frame that is exactly the size of the pane, so it isn't scrollable.

Allow (public) sharing of notes (and eventually children)

Is your feature request related to a problem? Please describe.

Currently, notes are private and tied to a user's account. This means links to the notes themselves cannot be shared with third parties.

Describe the solution you'd like

It could be nice to share notes

  • with the public.
  • with chosen users.

Describe alternatives you've considered

A question remains if public or shared notes should be editable by the viewer, and if that capability is baked into the URL, or if the permission would need to be stored in another place.

Additional context

Sharing notes with other users might also mean to make use of Supabase's real-time API.

Self-hosting instructions with self-hosted Supabase

Is your feature request related to a problem? Please describe.

When trying to run the whole stack of Notabase oneself, some problems emerge.

  1. Primarily, it is not perfectly clear on how to connect to the Supabase instance.
  2. Secondly, some other email integration, preferably via SMTP or a self-hostable email API, can be preffered. Currently Emailoctopus is the only option.
  3. Thirdly, a configuration option or command line flag for npm start to choose the port to listen to will help avoiding initial clashes with Supabase.
  4. Last but not least, it appears image uploading does not work, as it is rejected from Supabase's storage container.

Describe the solution you'd like

I need a step-by-step instrauction on how to run Notabase with a custom Supabase deployment.

Describe alternatives you've considered

It could be nice to also have a Docker Compose environment for quickly spinning up an independent instance.

Additional context

What worked for me so far is the following:

  1. Set up Supabase and run it from their Docker Compose in their /docker subdirectoy.
  2. Load the Schema and storage configuration plus an initial user from within that directory:
    docker-compose exec -T db sh -c 'psql postgres://postgres:${POSTGRES_PASSWORD}@localhost' < ../../notabase/scripts/schema.sql
    docker-compose exec -T db sh -c 'psql postgres://postgres:${POSTGRES_PASSWORD}@localhost' < ../../notabase/scripts/storage-setup.sql
    docker-compose exec -T db sh -c 'psql postgres://postgres:${POSTGRES_PASSWORD}@localhost' < ../../notabase/scripts/seed.sql
  3. Fill in the Supabase secrets from their .env (ANON_KEY, SERVICE_ROLE_KEY) plus the URL to the Kong Gateway (API_EXTERNAL_URL) into .env.local
  4. Install the dependencies, build the project and start Notabase with Yarn.
  5. Find that the Supabase Studio UI is already listening on Port 3000, stop and remove the studio container, adapt the Supabase.env again with setting the STUDIO_PORT to 3001 and SITE_URL to http://localhost:3001, and recreate the studio container.
  6. Run npm start and find Notabase on http://localhost:3000
  7. Login with the credentials provided in https://github.com/churichard/notabase/blob/main/scripts/seed.sql and use the application
  8. (Optional) From within the Supabase docker directory, turn the example user into a super admin with:
    docker-compose exec -T db sh -c 'psql postgres://postgres:${POSTGRES_PASSWORD}@localhost' <<EOF
    UPDATE auth.users SET is_super_admin = true WHERE email = '[email protected]';
    EOF

When trying to upload an image into a document at your Notabase instance at http://localhost:3000, there is this error in the logs of the Supabase Compose:

supabase-kong | 192.168.32.1 - - [10/Oct/2022:12:00:52 +0000] "OPTIONS /storage/v1/object/user-assets/f5e67b94-5bd1-45aa-a399-982fa3b78bdb/126aec09-6565-40d6-8820-c5795a0e4fc9.png HTTP/1.1" 200 0 "http://localhost:3000/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0"
supabase-kong | 2022/10/10 12:00:52 [warn] 33#0: *22089 a client request body is buffered to a temporary file /usr/local/kong/client_body_temp/0000000002, client: 192.168.32.1, server: kong, request: "POST /storage/v1/object/user-assets/f5e67b94-5bd1-45aa-a399-982fa3b78bdb/126aec09-6565-40d6-8820-c5795a0e4fc9.png HTTP/1.1", host: "localhost:8000", referrer: "http://localhost:3000/"
supabase-storage | [1665403252554] INFO (7 on 8455c978c0d0): incoming request
supabase-storage |     req: {
supabase-storage |       "method": "POST",
supabase-storage |       "url": "/object/user-assets/f5e67b94-5bd1-45aa-a399-982fa3b78bdb/126aec09-6565-40d6-8820-c5795a0e4fc9.png",
supabase-storage |       "hostname": "storage:5000",
supabase-storage |       "remoteAddress": "192.168.32.3",
supabase-storage |       "remotePort": 51690
supabase-storage |     }
supabase-storage |     reqId: "req-2"
supabase-storage | [1665403252555] INFO (7 on 8455c978c0d0): content-type is multipart/form-data; boundary=---------------------------11707287482597801291672976720
supabase-storage |     reqId: "req-2"
supabase-storage |     tenantId: "stub"
supabase-storage | [1665403252564] ERROR (7 on 8455c978c0d0): error object
supabase-storage |     reqId: "req-2"
supabase-storage |     tenantId: "stub"
supabase-storage |     error: {
supabase-storage |       "hint": null,
supabase-storage |       "details": null,
supabase-storage |       "code": "23502",
supabase-storage |       "message": "null value in column \"id\" of relation \"objects\" violates not-null constraint"
supabase-storage |     }
supabase-storage | [1665403252565] INFO (7 on 8455c978c0d0): request completed
supabase-storage |     res: {
supabase-storage |       "statusCode": 400
supabase-storage |     }
supabase-storage |     responseTime: 10.429310999810696
supabase-storage |     reqId: "req-2"
supabase-storage |     tenantId: "stub"
supabase-kong | 192.168.32.1 - - [10/Oct/2022:12:00:52 +0000] "POST /storage/v1/object/user-assets/f5e67b94-5bd1-45aa-a399-982fa3b78bdb/126aec09-6565-40d6-8820-c5795a0e4fc9.png HTTP/1.1" 400 126 "http://localhost:3000/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0"

You can always use the Supabase Studio UI to review the contents in the database.

Supporting SMTP would also allow to use mailtraps like https://github.com/maildev/maildev in local development environments.

At last, I was able to use the Supabase Studio UI to create a pro subscription for the generated UUID of the [email protected] user (with setting stripe_customer_id to none), and also added the generated UUID of the subscription to the user object, but the billing tab in the settings still shows that I am on the Basic Plan.

Full text search UI is ambigous

The full text search tab in the left sidebar is ambigous. It does not mention "full text", and the only way to figure it out is to try it.

I recommend putting it in a modal, similar to Ctrl+P modal.

Also, removing the tabs from the sidebar would make it look more modern.

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.