From 76ade8df5380cc1984cb713351fa2362eb91281c Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sat, 11 Apr 2020 00:19:23 -0400 Subject: [PATCH] feat: link autocomplete + insert link modal (markdown) --- client/components/common/page-selector.vue | 1 + client/components/editor/editor-markdown.vue | 117 ++++++++++++++++++- server/modules/search/db/engine.js | 2 + server/modules/search/postgres/engine.js | 22 +++- 4 files changed, 134 insertions(+), 8 deletions(-) diff --git a/client/components/common/page-selector.vue b/client/components/common/page-selector.vue index 5e0e3ebb..d81f097a 100644 --- a/client/components/common/page-selector.vue +++ b/client/components/common/page-selector.vue @@ -10,6 +10,7 @@ v-icon.mr-3(color='white') mdi-page-next-outline .body-1(v-if='mode === `create`') Select New Page Location .body-1(v-else-if='mode === `move`') Move / Rename Page Location + .body-1(v-else-if='mode === `select`') Select Page v-spacer v-progress-circular( indeterminate diff --git a/client/components/editor/editor-markdown.vue b/client/components/editor/editor-markdown.vue index 20e52890..cda89bbc 100644 --- a/client/components/editor/editor-markdown.vue +++ b/client/components/editor/editor-markdown.vue @@ -109,7 +109,7 @@ .editor-markdown-sidebar v-tooltip(right, color='teal') template(v-slot:activator='{ on }') - v-btn.animated.fadeInLeft(icon, tile, v-on='on', dark, disabled).mx-0 + v-btn.animated.fadeInLeft(icon, tile, v-on='on', dark, @click='insertLink').mx-0 v-icon mdi-link-plus span {{$t('editor:markup.insertLink')}} v-tooltip(right, color='teal') @@ -130,7 +130,7 @@ v-tooltip(right, color='teal') template(v-slot:activator='{ on }') v-btn.mt-3.animated.fadeInLeft.wait-p4s(icon, tile, v-on='on', dark, disabled).mx-0 - v-icon mdi-library-video + v-icon mdi-movie span {{$t('editor:markup.insertVideoAudio')}} v-tooltip(right, color='teal') template(v-slot:activator='{ on }') @@ -176,14 +176,16 @@ .caption Ln {{cursorPos.line + 1}}, Col {{cursorPos.ch + 1}} markdown-help(v-if='helpShown') + page-selector(mode='select', v-model='insertLinkDialog', :open-handler='insertLinkHandler', :path='path', :locale='locale')