
Added sponsorship options. Added pdf and pandoc export. Added emoji and mermaid extensions. Added find/replace support. Added HTML template with TOC. Updated welcome file.
109 lines
3.3 KiB
Vue
109 lines
3.3 KiB
Vue
<template>
|
|
<div class="side-bar__panel side-bar__panel--menu">
|
|
<menu-entry @click.native="settings">
|
|
<icon-settings slot="icon"></icon-settings>
|
|
<div>Settings</div>
|
|
<span>Tweak application and keyboard shortcuts.</span>
|
|
</menu-entry>
|
|
<menu-entry @click.native="templates">
|
|
<icon-code-braces slot="icon"></icon-code-braces>
|
|
<div>Templates</div>
|
|
<span>Configure Handlebars templates for your exports.</span>
|
|
</menu-entry>
|
|
<menu-entry @click.native="reset">
|
|
<icon-logout slot="icon"></icon-logout>
|
|
<div>Reset application</div>
|
|
<span>Sign out and clean local data.</span>
|
|
</menu-entry>
|
|
<hr>
|
|
<input class="hidden-file" id="import-backup-file-input" type="file" @change="onImportBackup">
|
|
<label class="menu-entry button flex flex--row flex--align-center" for="import-backup-file-input">
|
|
<div class="menu-entry__icon flex flex--column flex--center">
|
|
<icon-content-save></icon-content-save>
|
|
</div>
|
|
<div class="flex flex--column">
|
|
Import backup
|
|
</div>
|
|
</label>
|
|
<menu-entry href="#exportBackup=true" target="_blank">
|
|
<icon-content-save slot="icon"></icon-content-save>
|
|
Export backup
|
|
</menu-entry>
|
|
<hr>
|
|
<menu-entry @click.native="about">
|
|
<icon-help-circle slot="icon"></icon-help-circle>
|
|
<span>About StackEdit</span>
|
|
</menu-entry>
|
|
<menu-entry @click.native="welcomeFile">
|
|
<icon-file slot="icon"></icon-file>
|
|
<span>Welcome file</span>
|
|
</menu-entry>
|
|
<menu-entry href="editor" target="_blank">
|
|
<icon-open-in-new slot="icon"></icon-open-in-new>
|
|
<span>StackEdit 4 (deprecated)</span>
|
|
</menu-entry>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import MenuEntry from './common/MenuEntry';
|
|
import localDbSvc from '../../services/localDbSvc';
|
|
import backupSvc from '../../services/backupSvc';
|
|
import welcomeFile from '../../data/welcomeFile.md';
|
|
|
|
export default {
|
|
components: {
|
|
MenuEntry,
|
|
},
|
|
methods: {
|
|
onImportBackup(evt) {
|
|
const file = evt.target.files[0];
|
|
if (file) {
|
|
const reader = new FileReader();
|
|
reader.onload = (e) => {
|
|
const text = e.target.result;
|
|
if (text.match(/\uFFFD/)) {
|
|
this.$store.dispatch('notification/error', 'File is not readable.');
|
|
} else {
|
|
backupSvc.importBackup(text);
|
|
}
|
|
};
|
|
const blob = file.slice(0, 10000000);
|
|
reader.readAsText(blob);
|
|
}
|
|
},
|
|
settings() {
|
|
return this.$store.dispatch('modal/open', 'settings')
|
|
.then(
|
|
settings => this.$store.dispatch('data/setSettings', settings),
|
|
() => {}, // Cancel
|
|
);
|
|
},
|
|
templates() {
|
|
return this.$store.dispatch('modal/open', 'templates')
|
|
.then(
|
|
({ templates }) => this.$store.dispatch('data/setTemplates', templates),
|
|
() => {}, // Cancel
|
|
);
|
|
},
|
|
reset() {
|
|
return this.$store.dispatch('modal/reset')
|
|
.then(
|
|
() => localDbSvc.removeDb(),
|
|
() => {}, // Cancel
|
|
);
|
|
},
|
|
welcomeFile() {
|
|
return this.$store.dispatch('createFile', {
|
|
name: 'Welcome file',
|
|
text: welcomeFile,
|
|
})
|
|
.then(createdFile => this.$store.commit('file/setCurrentId', createdFile.id));
|
|
},
|
|
about() {
|
|
return this.$store.dispatch('modal/open', 'about');
|
|
},
|
|
},
|
|
};
|
|
</script>
|