-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c4e1b07
commit 1adb741
Showing
31 changed files
with
278 additions
and
151 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,38 @@ | ||
## Rich Markdown Editor for Standard Notes | ||
|
||
![Sample editor](./images/screenshot.png) | ||
[Outline](https://getoutline.com) created an awesome and [open source editor](https://github.com/outline/rich-markdown-editor) that fits great with Standard Notes. It makes very easy to write documents with common formatting features, and everything is persisted as Markdown. | ||
|
||
This is an attempt to use Outline's editor into Standard Notes. | ||
### Features | ||
|
||
Outline uses an awesome Markdown editor, [Rich Markdown Editor](https://github.com/outline/rich-markdown-editor), that fits great with Standard Notes. It is very close to what Bear does on Mac. | ||
* Editor shortcuts | ||
* Lists | ||
* Check lists | ||
* List item sorting with `alt+up` and `alt+down` | ||
* Tables with multiline table cells | ||
* Code sections with syntax highlighting | ||
* Text highlights | ||
|
||
This is my first React application, so probably there are a lot of improvements. Feel free to make recommendations and/or open issues. | ||
Other features implemented for the Standard Notes editor: | ||
|
||
**Status** | ||
|
||
- [x] **Editor**. It is possible to edit, save and create new styled notes. | ||
- [x] **Links**. Links work with `cmd/meta+click`. | ||
- [ ] **FileSafe**. Implementing FileSafe will allow the editor to embed images. | ||
- [X] **YouTube Embeds**: Youtube embeds. | ||
* Youtube embeds: Paste a youtube URL to show a preview in the document. | ||
* Twitter embeds: Paste a twitt url to show a preview. | ||
* Same-document links: It is possible to create links to headers in the same document with an autocomplete menu that shows up when creating a link. | ||
|
||
**Note:** This editor does not work with FileSafe yet. | ||
|
||
**Installation** | ||
|
||
Copy the URL below and paste it in the *Import Extension* textfield: | ||
Copy the URL below and paste it in the *Import Extension* text field: | ||
|
||
``` | ||
https://listed.to/p/K6AXOLFLF6 | ||
``` | ||
|
||
### Development | ||
|
||
1. Install the dependencies with `npm install`. | ||
2. Use `npm run start` to start the development editor. | ||
3. In Standard Notes, install the extension at `https://localhost:3000/ext.json`. The name of this extension will be *Rich Markdown Editor (DEV)*. | ||
4. To use it on a note, activate it normally using the *Editor* menu. | ||
5. To build a new version, run `npm run build`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,25 @@ | ||
{ | ||
"files": { | ||
"main.css": "./static/css/main.3d009a7c.chunk.css", | ||
"main.js": "./static/js/main.0efca8b8.chunk.js", | ||
"main.js.map": "./static/js/main.0efca8b8.chunk.js.map", | ||
"main.js": "./static/js/main.098dedbd.chunk.js", | ||
"main.js.map": "./static/js/main.098dedbd.chunk.js.map", | ||
"runtime-main.js": "./static/js/runtime-main.5a852d11.js", | ||
"runtime-main.js.map": "./static/js/runtime-main.5a852d11.js.map", | ||
"static/css/2.16816ef8.chunk.css": "./static/css/2.16816ef8.chunk.css", | ||
"static/js/2.56c0baec.chunk.js": "./static/js/2.56c0baec.chunk.js", | ||
"static/js/2.56c0baec.chunk.js.map": "./static/js/2.56c0baec.chunk.js.map", | ||
"static/css/2.c7d0933c.chunk.css": "./static/css/2.c7d0933c.chunk.css", | ||
"static/js/2.4fc05e98.chunk.js": "./static/js/2.4fc05e98.chunk.js", | ||
"static/js/2.4fc05e98.chunk.js.map": "./static/js/2.4fc05e98.chunk.js.map", | ||
"index.html": "./index.html", | ||
"precache-manifest.f53ca8230b2883b2092bea64bf42f875.js": "./precache-manifest.f53ca8230b2883b2092bea64bf42f875.js", | ||
"precache-manifest.f0b1099f3364e59252899cb1ded774ad.js": "./precache-manifest.f0b1099f3364e59252899cb1ded774ad.js", | ||
"service-worker.js": "./service-worker.js", | ||
"static/css/2.16816ef8.chunk.css.map": "./static/css/2.16816ef8.chunk.css.map", | ||
"static/css/2.c7d0933c.chunk.css.map": "./static/css/2.c7d0933c.chunk.css.map", | ||
"static/css/main.3d009a7c.chunk.css.map": "./static/css/main.3d009a7c.chunk.css.map", | ||
"static/js/2.56c0baec.chunk.js.LICENSE.txt": "./static/js/2.56c0baec.chunk.js.LICENSE.txt" | ||
"static/js/2.4fc05e98.chunk.js.LICENSE.txt": "./static/js/2.4fc05e98.chunk.js.LICENSE.txt" | ||
}, | ||
"entrypoints": [ | ||
"static/js/runtime-main.5a852d11.js", | ||
"static/css/2.16816ef8.chunk.css", | ||
"static/js/2.56c0baec.chunk.js", | ||
"static/css/2.c7d0933c.chunk.css", | ||
"static/js/2.4fc05e98.chunk.js", | ||
"static/css/main.3d009a7c.chunk.css", | ||
"static/js/main.0efca8b8.chunk.js" | ||
"static/js/main.098dedbd.chunk.js" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>React App</title><link href="./static/css/2.16816ef8.chunk.css" rel="stylesheet"><link href="./static/css/main.3d009a7c.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++){var i=t[f];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="./";var f=this["webpackJsonpsn-rme"]=this["webpackJsonpsn-rme"]||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var a=0;a<f.length;a++)r(f[a]);var p=i;t()}([])</script><script src="./static/js/2.56c0baec.chunk.js"></script><script src="./static/js/main.0efca8b8.chunk.js"></script></body></html> | ||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>React App</title><link href="./static/css/2.c7d0933c.chunk.css" rel="stylesheet"><link href="./static/css/main.3d009a7c.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,l,f=r[0],i=r[1],a=r[2],c=0,s=[];c<f.length;c++)l=f[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++){var i=t[f];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="./";var f=this["webpackJsonpsn-rme"]=this["webpackJsonpsn-rme"]||[],i=f.push.bind(f);f.push=r,f=f.slice();for(var a=0;a<f.length;a++)r(f[a]);var p=i;t()}([])</script><script src="./static/js/2.4fc05e98.chunk.js"></script><script src="./static/js/main.098dedbd.chunk.js"></script></body></html> |
30 changes: 30 additions & 0 deletions
30
build/precache-manifest.f0b1099f3364e59252899cb1ded774ad.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
self.__precacheManifest = (self.__precacheManifest || []).concat([ | ||
{ | ||
"revision": "a61b08d2968ea5ac9f59644f41eb4e04", | ||
"url": "./index.html" | ||
}, | ||
{ | ||
"revision": "cf9e851f153d26394cd4", | ||
"url": "./static/css/2.c7d0933c.chunk.css" | ||
}, | ||
{ | ||
"revision": "e07f8efcbe66c2b1ec9d", | ||
"url": "./static/css/main.3d009a7c.chunk.css" | ||
}, | ||
{ | ||
"revision": "cf9e851f153d26394cd4", | ||
"url": "./static/js/2.4fc05e98.chunk.js" | ||
}, | ||
{ | ||
"revision": "1a59fb0384be61751a9d1d85a311784a", | ||
"url": "./static/js/2.4fc05e98.chunk.js.LICENSE.txt" | ||
}, | ||
{ | ||
"revision": "e07f8efcbe66c2b1ec9d", | ||
"url": "./static/js/main.098dedbd.chunk.js" | ||
}, | ||
{ | ||
"revision": "3fae0b9d79f6c70627b6", | ||
"url": "./static/js/runtime-main.5a852d11.js" | ||
} | ||
]); |
30 changes: 0 additions & 30 deletions
30
build/precache-manifest.f53ca8230b2883b2092bea64bf42f875.js
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.