From 5258e9f0e6d7957706286e90ae052bca1aabe267 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Thu, 12 Aug 2021 22:41:34 -0500 Subject: [PATCH 001/110] Add Hotkey Ctrl/Cmd + K to create Link --- shared/naturalcrit/codeEditor/codeEditor.jsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 9707bde56..b8ecda048 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -54,7 +54,9 @@ const CodeEditor = createClass({ 'Ctrl-M' : this.makeSpan, 'Cmd-M' : this.makeSpan, 'Ctrl-/' : this.makeComment, - 'Cmd-/' : this.makeComment + 'Cmd-/' : this.makeComment, + 'Ctrl-K' : this.makeLink, + 'Cmd-K' : this.makeLink } }); @@ -99,6 +101,15 @@ const CodeEditor = createClass({ } }, + makeLink : function() { + const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-3) === ']()'; + this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`, 'around'); + if(selection.length === 0){ + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 3 }); + } + }, + //=-- Externally used -==// setCursorPosition : function(line, char){ setTimeout(()=>{ From b89c10a298f1867c12ce72c686bbf8b4e8984481 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Thu, 12 Aug 2021 22:48:42 -0500 Subject: [PATCH 002/110] Change cursor finish position Change cursor finish position --- shared/naturalcrit/codeEditor/codeEditor.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index b8ecda048..2b8879f7c 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -104,10 +104,8 @@ const CodeEditor = createClass({ makeLink : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-3) === ']()'; this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`, 'around'); - if(selection.length === 0){ - const cursor = this.codeMirror.getCursor(); - this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 3 }); - } + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); }, //=-- Externally used -==// From 727a58f56d285a34bb3cf6cfb622499d34667dc3 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Fri, 13 Aug 2021 08:28:02 -0500 Subject: [PATCH 003/110] Fixed cursor finish position - tested on single words and multi word strings - tested removal of hyperlink - tested with highlighting selection from left to right, and right to left. - tested on empty strings --- shared/naturalcrit/codeEditor/codeEditor.jsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 2b8879f7c..7f0c315fe 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -103,9 +103,12 @@ const CodeEditor = createClass({ makeLink : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-3) === ']()'; - this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`, 'around'); - const cursor = this.codeMirror.getCursor(); - this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); + this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`); + if ((selection.slice(0, 1) !== '[' || selection.slice(-3) !== ']()') || selection.length === 0){ + const cursor = this.codeMirror.getCursor(); + console.log('hello'); + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); + } }, //=-- Externally used -==// From 8c03b453b2eeabb761829329cac6c18bc80b9e59 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Fri, 13 Aug 2021 08:31:41 -0500 Subject: [PATCH 004/110] circleCI fix --- shared/naturalcrit/codeEditor/codeEditor.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 7f0c315fe..85214b1d1 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -104,7 +104,7 @@ const CodeEditor = createClass({ makeLink : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-3) === ']()'; this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`); - if ((selection.slice(0, 1) !== '[' || selection.slice(-3) !== ']()') || selection.length === 0){ + if((selection.slice(0, 1) !== '[' || selection.slice(-3) !== ']()') || selection.length === 0){ const cursor = this.codeMirror.getCursor(); console.log('hello'); this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); From ae75eb07b70858bc98fbff1ee65f055d7d27b3b0 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Sun, 5 Sep 2021 20:33:51 -0500 Subject: [PATCH 005/110] matched functionality of link hotkey in github --- shared/naturalcrit/codeEditor/codeEditor.jsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 85214b1d1..cf08de0b3 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -102,12 +102,11 @@ const CodeEditor = createClass({ }, makeLink : function() { - const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-3) === ']()'; - this.codeMirror.replaceSelection(t ? selection.slice(1, -3) : `[${selection}]()`); - if((selection.slice(0, 1) !== '[' || selection.slice(-3) !== ']()') || selection.length === 0){ + const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-6) === '](url)'; + this.codeMirror.replaceSelection(t ? selection.slice(1, -6) : `[${selection}](url)`); + if((selection.slice(0, 1) !== '[' || selection.slice(-6) !== '](url)') || selection.length === 0){ const cursor = this.codeMirror.getCursor(); - console.log('hello'); - this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); + this.codeMirror.setSelection({ line: cursor.line, ch: cursor.ch - 4 }, { line: cursor.line, ch: cursor.ch - 1 }); } }, From 08c845ff006ef60ee9f8c7855f845511a525fd92 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Mon, 6 Sep 2021 20:35:55 -0500 Subject: [PATCH 006/110] add underline hotkey and change italic hotkey to * Using `*` rather than `_` characters for italics is more inline with existing snippets. --- shared/naturalcrit/codeEditor/codeEditor.jsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 9707bde56..f32a7e130 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -51,6 +51,8 @@ const CodeEditor = createClass({ 'Cmd-B' : this.makeBold, 'Ctrl-I' : this.makeItalic, 'Cmd-I' : this.makeItalic, + 'Ctrl-U' : this.makeUnderline, + 'Cmd-U' : this.makeUnderline, 'Ctrl-M' : this.makeSpan, 'Cmd-M' : this.makeSpan, 'Ctrl-/' : this.makeComment, @@ -73,14 +75,23 @@ const CodeEditor = createClass({ }, makeItalic : function() { - const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '_' && selection.slice(-1) === '_'; - this.codeMirror.replaceSelection(t ? selection.slice(1, -1) : `_${selection}_`, 'around'); + const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '*' && selection.slice(-1) === '*'; + this.codeMirror.replaceSelection(t ? selection.slice(1, -1) : `*${selection}*`, 'around'); if(selection.length === 0){ const cursor = this.codeMirror.getCursor(); this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 1 }); } }, + makeUnderline : function() { + const selection = this.codeMirror.getSelection(), t = selection.slice(0, 3) === '' && selection.slice(-4) === ''; + this.codeMirror.replaceSelection(t ? selection.slice(3, -4) : `${selection}`, 'around'); + if(selection.length === 0){ + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 4 }); + } + }, + makeSpan : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 2) === '{{' && selection.slice(-2) === '}}'; this.codeMirror.replaceSelection(t ? selection.slice(2, -2) : `{{ ${selection}}}`, 'around'); From 7dcd3356306632523c526cb4538ddfd06005dbf9 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Mon, 6 Sep 2021 21:12:48 -0500 Subject: [PATCH 007/110] add makeDiv hotkey - V3 Curly Divs Shift-Cmd/Ctrl-M makes a curly div. --- shared/naturalcrit/codeEditor/codeEditor.jsx | 31 +++++++++++++------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index f32a7e130..6858d5840 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -47,16 +47,18 @@ const CodeEditor = createClass({ indentWithTabs : true, tabSize : 2, extraKeys : { - 'Ctrl-B' : this.makeBold, - 'Cmd-B' : this.makeBold, - 'Ctrl-I' : this.makeItalic, - 'Cmd-I' : this.makeItalic, - 'Ctrl-U' : this.makeUnderline, - 'Cmd-U' : this.makeUnderline, - 'Ctrl-M' : this.makeSpan, - 'Cmd-M' : this.makeSpan, - 'Ctrl-/' : this.makeComment, - 'Cmd-/' : this.makeComment + 'Ctrl-B' : this.makeBold, + 'Cmd-B' : this.makeBold, + 'Ctrl-I' : this.makeItalic, + 'Cmd-I' : this.makeItalic, + 'Ctrl-U' : this.makeUnderline, + 'Cmd-U' : this.makeUnderline, + 'Ctrl-M' : this.makeSpan, + 'Cmd-M' : this.makeSpan, + 'Shift-Ctrl-M' : this.makeDiv, + 'Shift-Cmd-M' : this.makeDiv, + 'Ctrl-/' : this.makeComment, + 'Cmd-/' : this.makeComment } }); @@ -101,6 +103,15 @@ const CodeEditor = createClass({ } }, + makeDiv : function() { + const selection = this.codeMirror.getSelection(), t = selection.slice(0, 2) === '{{' && selection.slice(-2) === '}}'; + this.codeMirror.replaceSelection(t ? selection.slice(2, -2) : `{{\n${selection}\n}}`, 'around'); + if(selection.length === 0){ + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setCursor({ line: cursor.line - 1, ch: cursor.ch }); // set to -2? if wanting to enter classes etc. if so, get rid of first \n when replacing selection + } + }, + makeComment : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 4) === ''; this.codeMirror.replaceSelection(t ? selection.slice(4, -3) : ``, 'around'); From 389ad1cf1778d88141935996a436dcbe8d7a6797 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Fri, 10 Sep 2021 23:18:23 -0500 Subject: [PATCH 008/110] add hotkeys for   and empty makeNbsp, makeSpace, removeSpace --- shared/naturalcrit/codeEditor/codeEditor.jsx | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 6858d5840..6d5685cd7 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -53,6 +53,12 @@ const CodeEditor = createClass({ 'Cmd-I' : this.makeItalic, 'Ctrl-U' : this.makeUnderline, 'Cmd-U' : this.makeUnderline, + 'Ctrl-.' : this.makeNbsp, + 'Cmd-.' : this.makeNbsp, + 'Shift-Ctrl-.' : this.makeSpace, + 'Shift-Cmd-.' : this.makeSpace, + 'Shift-Ctrl-,' : this.removeSpace, + 'Shift-Cmd-,' : this.removeSpace, 'Ctrl-M' : this.makeSpan, 'Cmd-M' : this.makeSpan, 'Shift-Ctrl-M' : this.makeDiv, @@ -85,6 +91,30 @@ const CodeEditor = createClass({ } }, + makeNbsp : function() { + this.codeMirror.replaceSelection(' ', 'end'); + }, + + makeSpace : function() { + const selection = this.codeMirror.getSelection(); + const t = selection.slice(0, 8) === '{{width:' && selection.slice(0 -4) === '% }}'; + if(t){ + const percent = parseInt(selection.slice(8, -4)) + 10; + this.codeMirror.replaceSelection(percent < 90 ? `{{width:${percent}% }}` : '{{width:100% }}', 'around'); + } else { + this.codeMirror.replaceSelection(`{{width:10% }}`, 'around'); + } + }, + + removeSpace : function() { + const selection = this.codeMirror.getSelection(); + const t = selection.slice(0, 8) === '{{width:' && selection.slice(0 -4) === '% }}'; + if(t){ + const percent = parseInt(selection.slice(8, -4)) - 10; + this.codeMirror.replaceSelection(percent > 10 ? `{{width:${percent}% }}` : '', 'around'); + } + }, + makeUnderline : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 3) === '' && selection.slice(-4) === ''; this.codeMirror.replaceSelection(t ? selection.slice(3, -4) : `${selection}`, 'around'); From bec2a7c77abca010522ea920aed1e56374c07839 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Sat, 11 Sep 2021 00:12:58 -0500 Subject: [PATCH 009/110] add hotkeys for new \page and \column --- shared/naturalcrit/codeEditor/codeEditor.jsx | 48 ++++++++++++-------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 6d5685cd7..a810bee3a 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -47,24 +47,28 @@ const CodeEditor = createClass({ indentWithTabs : true, tabSize : 2, extraKeys : { - 'Ctrl-B' : this.makeBold, - 'Cmd-B' : this.makeBold, - 'Ctrl-I' : this.makeItalic, - 'Cmd-I' : this.makeItalic, - 'Ctrl-U' : this.makeUnderline, - 'Cmd-U' : this.makeUnderline, - 'Ctrl-.' : this.makeNbsp, - 'Cmd-.' : this.makeNbsp, - 'Shift-Ctrl-.' : this.makeSpace, - 'Shift-Cmd-.' : this.makeSpace, - 'Shift-Ctrl-,' : this.removeSpace, - 'Shift-Cmd-,' : this.removeSpace, - 'Ctrl-M' : this.makeSpan, - 'Cmd-M' : this.makeSpan, - 'Shift-Ctrl-M' : this.makeDiv, - 'Shift-Cmd-M' : this.makeDiv, - 'Ctrl-/' : this.makeComment, - 'Cmd-/' : this.makeComment + 'Ctrl-B' : this.makeBold, + 'Cmd-B' : this.makeBold, + 'Ctrl-I' : this.makeItalic, + 'Cmd-I' : this.makeItalic, + 'Ctrl-U' : this.makeUnderline, + 'Cmd-U' : this.makeUnderline, + 'Ctrl-.' : this.makeNbsp, + 'Cmd-.' : this.makeNbsp, + 'Shift-Ctrl-.' : this.makeSpace, + 'Shift-Cmd-.' : this.makeSpace, + 'Shift-Ctrl-,' : this.removeSpace, + 'Shift-Cmd-,' : this.removeSpace, + 'Shift-Ctrl-Enter' : this.newColumn, + 'Shift-Cmd-Enter' : this.newColumn, + 'Ctrl-Enter' : this.newPage, + 'Cmd-Enter' : this.newPage, + 'Ctrl-M' : this.makeSpan, + 'Cmd-M' : this.makeSpan, + 'Shift-Ctrl-M' : this.makeDiv, + 'Shift-Cmd-M' : this.makeDiv, + 'Ctrl-/' : this.makeComment, + 'Cmd-/' : this.makeComment } }); @@ -115,6 +119,14 @@ const CodeEditor = createClass({ } }, + newColumn : function() { + this.codeMirror.replaceSelection('\n\\column\n\n', 'end'); + }, + + newPage : function() { + this.codeMirror.replaceSelection('\n\\page\n\n', 'end'); + }, + makeUnderline : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 3) === '' && selection.slice(-4) === ''; this.codeMirror.replaceSelection(t ? selection.slice(3, -4) : `${selection}`, 'around'); From ec2c74f09300bb3741d54c61c1f83333e023e3ad Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Tue, 21 Sep 2021 17:11:07 -0300 Subject: [PATCH 010/110] Created base make header functions --- shared/naturalcrit/codeEditor/codeEditor.jsx | 28 ++++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 9707bde56..368af3e9c 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -47,14 +47,20 @@ const CodeEditor = createClass({ indentWithTabs : true, tabSize : 2, extraKeys : { - 'Ctrl-B' : this.makeBold, - 'Cmd-B' : this.makeBold, - 'Ctrl-I' : this.makeItalic, - 'Cmd-I' : this.makeItalic, - 'Ctrl-M' : this.makeSpan, - 'Cmd-M' : this.makeSpan, - 'Ctrl-/' : this.makeComment, - 'Cmd-/' : this.makeComment + 'Ctrl-B' : this.makeBold, + 'Cmd-B' : this.makeBold, + 'Ctrl-I' : this.makeItalic, + 'Cmd-I' : this.makeItalic, + 'Ctrl-M' : this.makeSpan, + 'Cmd-M' : this.makeSpan, + 'Ctrl-/' : this.makeComment, + 'Cmd-/' : this.makeComment, + 'Shift-Ctrl-1' : ()=>this.makeHeader(1), + 'Shift-Ctrl-2' : ()=>this.makeHeader(2), + 'Shift-Ctrl-3' : ()=>this.makeHeader(3), + 'Shift-Ctrl-4' : ()=>this.makeHeader(4), + 'Shift-Ctrl-5' : ()=>this.makeHeader(5), + 'Shift-Ctrl-6' : ()=>this.makeHeader(6), } }); @@ -63,6 +69,12 @@ const CodeEditor = createClass({ this.updateSize(); }, + makeHeader : function (number) { + const selection = this.codeMirror.getSelection(); + const header = Array(number).fill('#').join(''); + this.codeMirror.replaceSelection(`${header} ${selection}`, 'around'); + }, + makeBold : function() { const selection = this.codeMirror.getSelection(), t = selection.slice(0, 2) === '**' && selection.slice(-2) === '**'; this.codeMirror.replaceSelection(t ? selection.slice(2, -2) : `**${selection}**`, 'around'); From bbad4b9e8ace3c0665adbeea209d6ddbf4b2e0c4 Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Tue, 21 Sep 2021 17:25:37 -0300 Subject: [PATCH 011/110] Removed H1 and H2 options and updated cursor after added hashtags --- shared/naturalcrit/codeEditor/codeEditor.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 368af3e9c..8b96f0d0f 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -55,8 +55,6 @@ const CodeEditor = createClass({ 'Cmd-M' : this.makeSpan, 'Ctrl-/' : this.makeComment, 'Cmd-/' : this.makeComment, - 'Shift-Ctrl-1' : ()=>this.makeHeader(1), - 'Shift-Ctrl-2' : ()=>this.makeHeader(2), 'Shift-Ctrl-3' : ()=>this.makeHeader(3), 'Shift-Ctrl-4' : ()=>this.makeHeader(4), 'Shift-Ctrl-5' : ()=>this.makeHeader(5), @@ -73,6 +71,8 @@ const CodeEditor = createClass({ const selection = this.codeMirror.getSelection(); const header = Array(number).fill('#').join(''); this.codeMirror.replaceSelection(`${header} ${selection}`, 'around'); + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch + selection.length + number + 1 }); }, makeBold : function() { From c10bdabee0d057c3aa315cec09c9008ffa5e8c2a Mon Sep 17 00:00:00 2001 From: Rodrigo Kuerten Date: Wed, 22 Sep 2021 18:21:34 -0300 Subject: [PATCH 012/110] Added h1 and h2 & cmd version --- shared/naturalcrit/codeEditor/codeEditor.jsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 8b96f0d0f..9c506a020 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -55,10 +55,18 @@ const CodeEditor = createClass({ 'Cmd-M' : this.makeSpan, 'Ctrl-/' : this.makeComment, 'Cmd-/' : this.makeComment, + 'Shift-Ctrl-1' : ()=>this.makeHeader(1), + 'Shift-Ctrl-2' : ()=>this.makeHeader(2), 'Shift-Ctrl-3' : ()=>this.makeHeader(3), 'Shift-Ctrl-4' : ()=>this.makeHeader(4), 'Shift-Ctrl-5' : ()=>this.makeHeader(5), 'Shift-Ctrl-6' : ()=>this.makeHeader(6), + 'Shift-Cmd-1' : ()=>this.makeHeader(1), + 'Shift-Cmd-2' : ()=>this.makeHeader(2), + 'Shift-Cmd-3' : ()=>this.makeHeader(3), + 'Shift-Cmd-4' : ()=>this.makeHeader(4), + 'Shift-Cmd-5' : ()=>this.makeHeader(5), + 'Shift-Cmd-6' : ()=>this.makeHeader(6), } }); From beb3c7ec89d10ffa2838bfc2602a018a0c032789 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Thu, 23 Sep 2021 00:22:40 -0500 Subject: [PATCH 013/110] make undo behavior work regardless of url text --- shared/naturalcrit/codeEditor/codeEditor.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index cf08de0b3..f49cd29b1 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -102,9 +102,16 @@ const CodeEditor = createClass({ }, makeLink : function() { - const selection = this.codeMirror.getSelection(), t = selection.slice(0, 1) === '[' && selection.slice(-6) === '](url)'; - this.codeMirror.replaceSelection(t ? selection.slice(1, -6) : `[${selection}](url)`); - if((selection.slice(0, 1) !== '[' || selection.slice(-6) !== '](url)') || selection.length === 0){ + const isLink = /^\[(.*)(\]\()(.*)\)$/g; + const selection = this.codeMirror.getSelection(); + if(isLink.test(selection) == true){ + const altText = selection.slice(1, selection.lastIndexOf('](')); + const url = selection.slice(selection.lastIndexOf('](') + 2, -1); + this.codeMirror.replaceSelection(`${altText} ${url}`); + const cursor = this.codeMirror.getCursor(); + this.codeMirror.setSelection({ line: cursor.line, ch: cursor.ch - url.length }, { line: cursor.line, ch: cursor.ch }); + } else { + this.codeMirror.replaceSelection(`[${selection}](url)`); const cursor = this.codeMirror.getCursor(); this.codeMirror.setSelection({ line: cursor.line, ch: cursor.ch - 4 }, { line: cursor.line, ch: cursor.ch - 1 }); } From b3e37dd2c10612c288e4c7d87ba9ea02a886cf6b Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Thu, 23 Sep 2021 01:01:02 -0500 Subject: [PATCH 014/110] add comment about trying capture groups in future. --- shared/naturalcrit/codeEditor/codeEditor.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index f49cd29b1..c39c43da2 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -105,8 +105,8 @@ const CodeEditor = createClass({ const isLink = /^\[(.*)(\]\()(.*)\)$/g; const selection = this.codeMirror.getSelection(); if(isLink.test(selection) == true){ - const altText = selection.slice(1, selection.lastIndexOf('](')); - const url = selection.slice(selection.lastIndexOf('](') + 2, -1); + const altText = selection.slice(1, selection.lastIndexOf('](')); // could likely be done better with capture groups + const url = selection.slice(selection.lastIndexOf('](') + 2, -1); // could likely be done better with capture groups this.codeMirror.replaceSelection(`${altText} ${url}`); const cursor = this.codeMirror.getCursor(); this.codeMirror.setSelection({ line: cursor.line, ch: cursor.ch - url.length }, { line: cursor.line, ch: cursor.ch }); From ba9413eae5d20d9be288fa7e41783f33e92be54a Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Mon, 27 Sep 2021 09:31:59 -0500 Subject: [PATCH 015/110] initial commit, add hotkey definitions --- shared/naturalcrit/codeEditor/codeEditor.jsx | 24 +++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 9707bde56..fe63f7565 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -47,14 +47,18 @@ const CodeEditor = createClass({ indentWithTabs : true, tabSize : 2, extraKeys : { - 'Ctrl-B' : this.makeBold, - 'Cmd-B' : this.makeBold, - 'Ctrl-I' : this.makeItalic, - 'Cmd-I' : this.makeItalic, - 'Ctrl-M' : this.makeSpan, - 'Cmd-M' : this.makeSpan, - 'Ctrl-/' : this.makeComment, - 'Cmd-/' : this.makeComment + 'Ctrl-B' : this.makeBold, + 'Cmd-B' : this.makeBold, + 'Ctrl-I' : this.makeItalic, + 'Cmd-I' : this.makeItalic, + 'Ctrl-M' : this.makeSpan, + 'Cmd-M' : this.makeSpan, + 'Ctrl-/' : this.makeComment, + 'Cmd-/' : this.makeComment, + 'Ctrl-L' : this.makeUnOrderedList, + 'Cmd-L' : this.makeUnOrderedList, + 'Shift-Ctrl-L' : this.makeOrderedList, + 'Shift-Cmd-L' : this.makeOrderedList } }); @@ -99,6 +103,10 @@ const CodeEditor = createClass({ } }, + makeUnOrderedList : function() { + const selection = this.codeMirror.getSelection() + } + //=-- Externally used -==// setCursorPosition : function(line, char){ setTimeout(()=>{ From cb0f5217fe734f11f106b3a76493d122a55ffb97 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Mon, 27 Sep 2021 21:23:05 -0500 Subject: [PATCH 016/110] get and set selection to cover entire lines --- shared/naturalcrit/codeEditor/codeEditor.jsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index fe63f7565..b641a403a 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -104,8 +104,20 @@ const CodeEditor = createClass({ }, makeUnOrderedList : function() { - const selection = this.codeMirror.getSelection() - } + const isList = /^-\s/gm; + const selectionStart = this.codeMirror.getCursor('from'); + const selectionEnd = this.codeMirror.getCursor('to'); + const selection = this.codeMirror.setSelection( + { line: selectionStart.line, ch: 0 }, + { line: selectionEnd.line, ch: this.codeMirror.getLine(selectionEnd.line).length }); + console.log(selectionStart, selectionEnd, selection); + }, + + + // ordered list: + // selection should expand to include the full line even if selection is only part of line + // regex should match "- " at beginning of selection + // regex should match "- " at beginnign of each line or maybe "\n- " //=-- Externally used -==// setCursorPosition : function(line, char){ From 41609f90ea4ddf66c1071f4acba286b864e2dded Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Mon, 27 Sep 2021 21:34:09 -0500 Subject: [PATCH 017/110] update to detect if an unordered list or not. --- shared/naturalcrit/codeEditor/codeEditor.jsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index b641a403a..a91fda406 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -111,6 +111,11 @@ const CodeEditor = createClass({ { line: selectionStart.line, ch: 0 }, { line: selectionEnd.line, ch: this.codeMirror.getLine(selectionEnd.line).length }); console.log(selectionStart, selectionEnd, selection); + if(isList.test(this.codeMirror.getSelection()) == true){ + console.log('is list'); + } else { + console.log('is not a list'); + } }, From 6717692187c554b12945feb3b9a95ea8ed6b91f7 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Tue, 28 Sep 2021 11:19:02 -0500 Subject: [PATCH 018/110] finish UL creation/removal function --- shared/naturalcrit/codeEditor/codeEditor.jsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index a91fda406..997143faf 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -104,17 +104,18 @@ const CodeEditor = createClass({ }, makeUnOrderedList : function() { - const isList = /^-\s/gm; const selectionStart = this.codeMirror.getCursor('from'); const selectionEnd = this.codeMirror.getCursor('to'); - const selection = this.codeMirror.setSelection( + this.codeMirror.setSelection( { line: selectionStart.line, ch: 0 }, - { line: selectionEnd.line, ch: this.codeMirror.getLine(selectionEnd.line).length }); - console.log(selectionStart, selectionEnd, selection); - if(isList.test(this.codeMirror.getSelection()) == true){ - console.log('is list'); + { line: selectionEnd.line, ch: this.codeMirror.getLine(selectionEnd.line).length } + ); + const isUL = /^-\s/gm; + const newSelection = this.codeMirror.getSelection(); + if(newSelection.match(isUL) == null){ + this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '- '), 'around'); } else { - console.log('is not a list'); + this.codeMirror.replaceSelection(newSelection.replace(isUL, ''), 'around'); } }, From 63c59a223a67be9773fcc314b5abf499e385fb11 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Tue, 28 Sep 2021 14:34:31 -0500 Subject: [PATCH 019/110] refine removal of lists regardless if UL or OL Next step after this is to get numbered lists to increase --- shared/naturalcrit/codeEditor/codeEditor.jsx | 26 +++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 997143faf..1ac90a124 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -55,10 +55,10 @@ const CodeEditor = createClass({ 'Cmd-M' : this.makeSpan, 'Ctrl-/' : this.makeComment, 'Cmd-/' : this.makeComment, - 'Ctrl-L' : this.makeUnOrderedList, - 'Cmd-L' : this.makeUnOrderedList, - 'Shift-Ctrl-L' : this.makeOrderedList, - 'Shift-Cmd-L' : this.makeOrderedList + 'Ctrl-L' : ()=>this.makeList('UL'), + 'Cmd-L' : ()=>this.makeList('UL'), + 'Shift-Ctrl-L' : ()=>this.makeList('OL'), + 'Shift-Cmd-L' : ()=>this.makeList('OL') } }); @@ -103,19 +103,21 @@ const CodeEditor = createClass({ } }, - makeUnOrderedList : function() { - const selectionStart = this.codeMirror.getCursor('from'); - const selectionEnd = this.codeMirror.getCursor('to'); + makeList : function(listType) { + const selectionStart = this.codeMirror.getCursor('from'), selectionEnd = this.codeMirror.getCursor('to'); this.codeMirror.setSelection( { line: selectionStart.line, ch: 0 }, { line: selectionEnd.line, ch: this.codeMirror.getLine(selectionEnd.line).length } ); - const isUL = /^-\s/gm; const newSelection = this.codeMirror.getSelection(); - if(newSelection.match(isUL) == null){ - this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '- '), 'around'); - } else { - this.codeMirror.replaceSelection(newSelection.replace(isUL, ''), 'around'); + + const regex = /^\d+\.\s|^-\s/gm; + console.log(regex); + if(newSelection.match(regex) != null){ // if selection IS A LIST + this.codeMirror.replaceSelection(newSelection.replace(regex, ''), 'around'); + } else { // if selection IS NOT A LIST + listType == 'UL' ? this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '- '), 'around') : + this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '1. '), 'around'); } }, From 40a75b9b278e29996948374462a7afa87c95adc2 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:09:00 -0500 Subject: [PATCH 020/110] increment ordered list numbering --- shared/naturalcrit/codeEditor/codeEditor.jsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index 1ac90a124..a48d451df 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -112,12 +112,16 @@ const CodeEditor = createClass({ const newSelection = this.codeMirror.getSelection(); const regex = /^\d+\.\s|^-\s/gm; - console.log(regex); if(newSelection.match(regex) != null){ // if selection IS A LIST this.codeMirror.replaceSelection(newSelection.replace(regex, ''), 'around'); } else { // if selection IS NOT A LIST - listType == 'UL' ? this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '- '), 'around') : - this.codeMirror.replaceSelection(newSelection.replace(/^/gm, '1. '), 'around'); + listType == 'UL' ? this.codeMirror.replaceSelection(newSelection.replace(/^/gm, `- `), 'around') : + this.codeMirror.replaceSelection(newSelection.replace(/^/gm, (()=>{ + let n = 1; + return ()=>{ + return `${n++}. `; + }; + })()), 'around'); } }, From 3bf5d7a2dbe44846a194ee99ae85bfcca1e29832 Mon Sep 17 00:00:00 2001 From: Gazook89 <58999374+Gazook89@users.noreply.github.com> Date: Thu, 30 Sep 2021 17:59:45 -0500 Subject: [PATCH 021/110] change makeComment function to adapt to gfm or css editor --- shared/naturalcrit/codeEditor/codeEditor.jsx | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/shared/naturalcrit/codeEditor/codeEditor.jsx b/shared/naturalcrit/codeEditor/codeEditor.jsx index a810bee3a..ee318ee1d 100644 --- a/shared/naturalcrit/codeEditor/codeEditor.jsx +++ b/shared/naturalcrit/codeEditor/codeEditor.jsx @@ -155,12 +155,24 @@ const CodeEditor = createClass({ }, makeComment : function() { - const selection = this.codeMirror.getSelection(), t = selection.slice(0, 4) === ''; - this.codeMirror.replaceSelection(t ? selection.slice(4, -3) : ``, 'around'); + let regex; + let cursorPos; + let newComment; + const selection = this.codeMirror.getSelection(); + if(this.props.language === 'gfm'){ + regex = /^\s*()\s*$/gs; + cursorPos = 4; + newComment = ``; + } else { + regex = /^\s*(\/\*\s?)(.*?)(\s?\*\/)\s*$/gs; + cursorPos = 3; + newComment = `/* ${selection} */`; + } + this.codeMirror.replaceSelection(regex.test(selection) == true ? selection.replace(regex, '$2') : newComment, 'around'); if(selection.length === 0){ const cursor = this.codeMirror.getCursor(); - this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - 4 }); - } + this.codeMirror.setCursor({ line: cursor.line, ch: cursor.ch - cursorPos }); + }; }, //=-- Externally used -==// From fec6aacee57adbd7fbc5795b760c7dbcb511099a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 18 Oct 2021 22:51:17 +1300 Subject: [PATCH 022/110] Add `word-break: break-word` to fix code wrapping --- themes/5ePhb.style.less | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/5ePhb.style.less b/themes/5ePhb.style.less index 607a13cca..7cc427a98 100644 --- a/themes/5ePhb.style.less +++ b/themes/5ePhb.style.less @@ -513,7 +513,8 @@ body { color : #58180d; background-color : #faf7ea; border-radius : 4px; - white-space : pre-wrap + white-space : pre-wrap; + word-break : break-word; } pre code{ From 3ce1ea610dc57f4955801859fa87a28305502b85 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Wed, 27 Oct 2021 19:51:52 +1300 Subject: [PATCH 023/110] Update `template.js` to add tags --- client/template.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/template.js b/client/template.js index e2e0893e3..5304ae15e 100644 --- a/client/template.js +++ b/client/template.js @@ -7,6 +7,12 @@ module.exports = async(name, title = '', props = {})=>{ + + + + + + ${title.length ? `${title} - The Homebrewery`: 'The Homebrewery - NaturalCrit'} From 20d7193fb2bb93b6d220bd49fc6087c183cf8306 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Thu, 28 Oct 2021 00:29:42 +1300 Subject: [PATCH 024/110] Add `thumbnail` to metadata and saving functions --- .../editor/metadataEditor/metadataEditor.jsx | 8 +++++++- client/homebrew/pages/editPage/editPage.jsx | 3 ++- server/googleActions.js | 15 ++++++++++----- server/homebrew.model.js | 1 + 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.jsx b/client/homebrew/editor/metadataEditor/metadataEditor.jsx index c7dea871b..b4607b153 100644 --- a/client/homebrew/editor/metadataEditor/metadataEditor.jsx +++ b/client/homebrew/editor/metadataEditor/metadataEditor.jsx @@ -18,7 +18,8 @@ const MetadataEditor = createClass({ published : false, authors : [], systems : [], - renderer : 'legacy' + renderer : 'legacy', + thumbnail : '' }, onChange : ()=>{} }; @@ -161,6 +162,11 @@ const MetadataEditor = createClass({