mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 01:36:22 +00:00
Merge branch 'master' into fix-autocomplete-codeblock
This commit is contained in:
@@ -7,7 +7,7 @@ nodeIpc.config.id = 'node'
|
||||
nodeIpc.config.retry = 1500
|
||||
nodeIpc.config.silent = true
|
||||
|
||||
function toggleMainWindow () {
|
||||
function toggleMainWindow() {
|
||||
switch (global.process.platform) {
|
||||
case 'darwin':
|
||||
if (mainWindow.isFocused()) {
|
||||
@@ -32,6 +32,7 @@ ipcMain.on('config-renew', (e, payload) => {
|
||||
globalShortcut.unregisterAll()
|
||||
var { config } = payload
|
||||
|
||||
mainWindow.setMenuBarVisibility(config.ui.showMenuBar)
|
||||
var errors = []
|
||||
try {
|
||||
globalShortcut.register(config.hotkey.toggleMain, toggleMainWindow)
|
||||
@@ -51,14 +52,14 @@ ipcMain.on('config-renew', (e, payload) => {
|
||||
|
||||
nodeIpc.serve(
|
||||
path.join(app.getPath('userData'), 'boostnote.service'),
|
||||
function () {
|
||||
nodeIpc.server.on('connect', function (socket) {
|
||||
function() {
|
||||
nodeIpc.server.on('connect', function(socket) {
|
||||
nodeIpc.log('ipc server >> socket joinned'.rainbow)
|
||||
socket.on('close', function () {
|
||||
socket.on('close', function() {
|
||||
nodeIpc.log('ipc server >> socket closed'.rainbow)
|
||||
})
|
||||
})
|
||||
nodeIpc.server.on('error', function (err) {
|
||||
nodeIpc.server.on('error', function(err) {
|
||||
nodeIpc.log('Node IPC error'.rainbow, err)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3,24 +3,26 @@ const app = electron.app
|
||||
const Menu = electron.Menu
|
||||
const ipc = electron.ipcMain
|
||||
const GhReleases = require('electron-gh-releases')
|
||||
const { isPackaged } = app
|
||||
const electronConfig = new (require('electron-config'))()
|
||||
// electron.crashReporter.start()
|
||||
const singleInstance = app.requestSingleInstanceLock()
|
||||
|
||||
var ipcServer = null
|
||||
|
||||
var mainWindow = null
|
||||
|
||||
var shouldQuit = app.makeSingleInstance(function (commandLine, workingDirectory) {
|
||||
if (mainWindow) {
|
||||
if (process.platform === 'win32') {
|
||||
mainWindow.minimize()
|
||||
mainWindow.restore()
|
||||
}
|
||||
mainWindow.focus()
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
if (shouldQuit) {
|
||||
// Single Instance Lock
|
||||
if (!singleInstance) {
|
||||
app.quit()
|
||||
} else {
|
||||
app.on('second-instance', () => {
|
||||
// Someone tried to run a second instance, it should focus the existing instance.
|
||||
if (mainWindow) {
|
||||
if (!mainWindow.isVisible()) mainWindow.show()
|
||||
mainWindow.focus()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
var isUpdateReady = false
|
||||
@@ -34,7 +36,13 @@ const updater = new GhReleases(ghReleasesOpts)
|
||||
|
||||
// Check for updates
|
||||
// `status` returns true if there is a new update available
|
||||
function checkUpdate () {
|
||||
function checkUpdate() {
|
||||
if (!isPackaged) {
|
||||
// Prevents app from attempting to update when in dev mode.
|
||||
console.log('Updates are disabled in Development mode, see main-app.js')
|
||||
return true
|
||||
}
|
||||
if (!electronConfig.get('autoUpdateEnabled', true)) return
|
||||
if (process.platform === 'linux' || isUpdateReady) {
|
||||
return true
|
||||
}
|
||||
@@ -51,29 +59,29 @@ function checkUpdate () {
|
||||
})
|
||||
}
|
||||
|
||||
updater.on('update-downloaded', (info) => {
|
||||
updater.on('update-downloaded', info => {
|
||||
if (mainWindow != null) {
|
||||
mainWindow.webContents.send('update-ready', 'Update available!')
|
||||
isUpdateReady = true
|
||||
}
|
||||
})
|
||||
|
||||
updater.autoUpdater.on('error', (err) => {
|
||||
updater.autoUpdater.on('error', err => {
|
||||
console.error(err)
|
||||
})
|
||||
|
||||
ipc.on('update-app-confirm', function (event, msg) {
|
||||
ipc.on('update-app-confirm', function(event, msg) {
|
||||
if (isUpdateReady) {
|
||||
mainWindow.removeAllListeners()
|
||||
updater.install()
|
||||
}
|
||||
})
|
||||
|
||||
app.on('window-all-closed', function () {
|
||||
app.on('window-all-closed', function() {
|
||||
app.quit()
|
||||
})
|
||||
|
||||
app.on('ready', function () {
|
||||
app.on('ready', function() {
|
||||
mainWindow = require('./main-window')
|
||||
|
||||
var template = require('./main-menu')
|
||||
@@ -93,15 +101,15 @@ app.on('ready', function () {
|
||||
}
|
||||
|
||||
// Check update every day
|
||||
setInterval(function () {
|
||||
checkUpdate()
|
||||
setInterval(function() {
|
||||
if (isPackaged) checkUpdate()
|
||||
}, 1000 * 60 * 60 * 24)
|
||||
|
||||
// Check update after 10 secs to prevent file locking of Windows
|
||||
setTimeout(() => {
|
||||
checkUpdate()
|
||||
if (isPackaged) checkUpdate()
|
||||
|
||||
ipc.on('update-check', function (event, msg) {
|
||||
ipc.on('update-check', function(event, msg) {
|
||||
if (isUpdateReady) {
|
||||
mainWindow.webContents.send('update-ready', 'Update available!')
|
||||
} else {
|
||||
|
||||
304
lib/main-menu.js
304
lib/main-menu.js
@@ -3,6 +3,7 @@ const BrowserWindow = electron.BrowserWindow
|
||||
const shell = electron.shell
|
||||
const ipc = electron.ipcMain
|
||||
const mainWindow = require('./main-window')
|
||||
const os = require('os')
|
||||
|
||||
const macOS = process.platform === 'darwin'
|
||||
// const WIN = process.platform === 'win32'
|
||||
@@ -10,68 +11,68 @@ const LINUX = process.platform === 'linux'
|
||||
|
||||
const boost = macOS
|
||||
? {
|
||||
label: 'Boostnote',
|
||||
submenu: [
|
||||
{
|
||||
label: 'About Boostnote',
|
||||
selector: 'orderFrontStandardAboutPanel:'
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Command+,',
|
||||
click () {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
label: 'Boostnote',
|
||||
submenu: [
|
||||
{
|
||||
label: 'About Boostnote',
|
||||
selector: 'orderFrontStandardAboutPanel:'
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Command+,',
|
||||
click() {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Hide Boostnote',
|
||||
accelerator: 'Command+H',
|
||||
selector: 'hide:'
|
||||
},
|
||||
{
|
||||
label: 'Hide Others',
|
||||
accelerator: 'Command+Shift+H',
|
||||
selector: 'hideOtherApplications:'
|
||||
},
|
||||
{
|
||||
label: 'Show All',
|
||||
selector: 'unhideAllApplications:'
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Quit Boostnote',
|
||||
role: 'quit',
|
||||
accelerator: 'CommandOrControl+Q'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Hide Boostnote',
|
||||
accelerator: 'Command+H',
|
||||
selector: 'hide:'
|
||||
},
|
||||
{
|
||||
label: 'Hide Others',
|
||||
accelerator: 'Command+Shift+H',
|
||||
selector: 'hideOtherApplications:'
|
||||
},
|
||||
{
|
||||
label: 'Show All',
|
||||
selector: 'unhideAllApplications:'
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Quit Boostnote',
|
||||
role: 'quit',
|
||||
accelerator: 'CommandOrControl+Q'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
: {
|
||||
label: 'Boostnote',
|
||||
submenu: [
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Control+,',
|
||||
click () {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
label: 'Boostnote',
|
||||
submenu: [
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Control+,',
|
||||
click() {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
role: 'quit',
|
||||
accelerator: 'Control+Q'
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
role: 'quit',
|
||||
accelerator: 'Control+Q'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const file = {
|
||||
label: 'File',
|
||||
@@ -79,28 +80,28 @@ const file = {
|
||||
{
|
||||
label: 'New Note',
|
||||
accelerator: 'CommandOrControl+N',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('top:new-note')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Focus Note',
|
||||
accelerator: macOS ? 'Command+E' : 'Control+E',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+E',
|
||||
click() {
|
||||
mainWindow.webContents.send('detail:focus')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Delete Note',
|
||||
accelerator: macOS ? 'Command+Shift+Backspace' : 'Control+Shift+Backspace',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+Shift+Backspace',
|
||||
click() {
|
||||
mainWindow.webContents.send('detail:delete')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Clone Note',
|
||||
accelerator: macOS ? 'Command+D' : 'Control+D',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+D',
|
||||
click() {
|
||||
mainWindow.webContents.send('list:clone')
|
||||
}
|
||||
},
|
||||
@@ -112,7 +113,7 @@ const file = {
|
||||
submenu: [
|
||||
{
|
||||
label: 'Plain Text, MarkDown (.txt, .md)',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('import:file')
|
||||
}
|
||||
}
|
||||
@@ -123,24 +124,31 @@ const file = {
|
||||
submenu: [
|
||||
{
|
||||
label: 'Plain Text (.txt)',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:isMarkdownNote', 'export-txt')
|
||||
mainWindow.webContents.send('export:save-text')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'MarkDown (.md)',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:isMarkdownNote', 'export-md')
|
||||
mainWindow.webContents.send('export:save-md')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'HTML (.html)',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:isMarkdownNote', 'export-html')
|
||||
mainWindow.webContents.send('export:save-html')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'PDF (.pdf)',
|
||||
click() {
|
||||
mainWindow.webContents.send('list:isMarkdownNote', 'export-pdf')
|
||||
mainWindow.webContents.send('export:save-pdf')
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -150,13 +158,13 @@ const file = {
|
||||
{
|
||||
label: 'Generate/Update Markdown TOC',
|
||||
accelerator: 'Shift+Ctrl+T',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('code:generate-toc')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Format Table',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('code:format-table')
|
||||
}
|
||||
},
|
||||
@@ -166,7 +174,7 @@ const file = {
|
||||
{
|
||||
label: 'Print',
|
||||
accelerator: 'CommandOrControl+P',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:isMarkdownNote', 'print')
|
||||
mainWindow.webContents.send('print')
|
||||
}
|
||||
@@ -175,20 +183,25 @@ const file = {
|
||||
}
|
||||
|
||||
if (LINUX) {
|
||||
file.submenu.push({
|
||||
type: 'separator'
|
||||
}, {
|
||||
label: 'Preferences',
|
||||
accelerator: 'Control+,',
|
||||
click () {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
file.submenu.push(
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Preferences',
|
||||
accelerator: 'Control+,',
|
||||
click() {
|
||||
mainWindow.webContents.send('side:preferences')
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
role: 'quit',
|
||||
accelerator: 'Control+Q'
|
||||
}
|
||||
}, {
|
||||
type: 'separator'
|
||||
}, {
|
||||
role: 'quit',
|
||||
accelerator: 'Control+Q'
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
const edit = {
|
||||
@@ -233,7 +246,7 @@ const edit = {
|
||||
{
|
||||
label: 'Add Tag',
|
||||
accelerator: 'CommandOrControl+Shift+T',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('editor:add-tag')
|
||||
}
|
||||
}
|
||||
@@ -246,14 +259,14 @@ const view = {
|
||||
{
|
||||
label: 'Reload',
|
||||
accelerator: 'CommandOrControl+R',
|
||||
click () {
|
||||
click() {
|
||||
BrowserWindow.getFocusedWindow().reload()
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Toggle Developer Tools',
|
||||
accelerator: macOS ? 'Command+Alt+I' : 'Control+Shift+I',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+Alt+I',
|
||||
click() {
|
||||
BrowserWindow.getFocusedWindow().toggleDevTools()
|
||||
}
|
||||
},
|
||||
@@ -263,14 +276,14 @@ const view = {
|
||||
{
|
||||
label: 'Next Note',
|
||||
accelerator: 'CommandOrControl+]',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:next')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Previous Note',
|
||||
accelerator: 'CommandOrControl+[',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('list:prior')
|
||||
}
|
||||
},
|
||||
@@ -280,7 +293,7 @@ const view = {
|
||||
{
|
||||
label: 'Focus Search',
|
||||
accelerator: 'CommandOrControl+Shift+L',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('top:focus-search')
|
||||
}
|
||||
},
|
||||
@@ -290,38 +303,44 @@ const view = {
|
||||
{
|
||||
label: 'Toggle Full Screen',
|
||||
accelerator: macOS ? 'Command+Control+F' : 'F11',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.setFullScreen(!mainWindow.isFullScreen())
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Toggle Side Bar',
|
||||
accelerator: 'CommandOrControl+B',
|
||||
click () {
|
||||
click() {
|
||||
mainWindow.webContents.send('editor:fullscreen')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Toggle Editor Orientation',
|
||||
click() {
|
||||
mainWindow.webContents.send('editor:orientation')
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'Actual Size',
|
||||
accelerator: macOS ? 'CommandOrControl+0' : 'Control+0',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+0',
|
||||
click() {
|
||||
mainWindow.webContents.send('status:zoomreset')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Zoom In',
|
||||
accelerator: macOS ? 'CommandOrControl+=' : 'Control+=',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+=',
|
||||
click() {
|
||||
mainWindow.webContents.send('status:zoomin')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Zoom Out',
|
||||
accelerator: macOS ? 'CommandOrControl+-' : 'Control+-',
|
||||
click () {
|
||||
accelerator: 'CommandOrControl+-',
|
||||
click() {
|
||||
mainWindow.webContents.send('status:zoomout')
|
||||
}
|
||||
}
|
||||
@@ -374,21 +393,88 @@ const help = {
|
||||
submenu: [
|
||||
{
|
||||
label: 'Boostnote official site',
|
||||
click () { shell.openExternal('https://boostnote.io/') }
|
||||
click() {
|
||||
shell.openExternal('https://boostnote.io/')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Wiki',
|
||||
click() {
|
||||
shell.openExternal('https://github.com/BoostIO/Boostnote/wiki')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Issue Tracker',
|
||||
click () { shell.openExternal('https://github.com/BoostIO/Boostnote/issues') }
|
||||
click() {
|
||||
shell.openExternal('https://github.com/BoostIO/Boostnote/issues')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Changelog',
|
||||
click () { shell.openExternal('https://github.com/BoostIO/boost-releases') }
|
||||
click() {
|
||||
shell.openExternal('https://github.com/BoostIO/boost-releases')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Cheatsheets',
|
||||
submenu: [
|
||||
{
|
||||
label: 'Markdown',
|
||||
click() {
|
||||
shell.openExternal(
|
||||
'https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Latex',
|
||||
click() {
|
||||
shell.openExternal('https://katex.org/docs/supported.html')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'HTML',
|
||||
click() {
|
||||
shell.openExternal('https://htmlcheatsheet.com/')
|
||||
}
|
||||
},
|
||||
{
|
||||
label: 'Boostnote',
|
||||
click() {
|
||||
shell.openExternal(
|
||||
'https://github.com/TobseF/boostnote-markdown-cheatsheet/blob/master/BOOSTNOTE_MARKDOWN_CHEAT_SHEET.md'
|
||||
)
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: 'separator'
|
||||
},
|
||||
{
|
||||
label: 'About',
|
||||
click() {
|
||||
const version = electron.app.getVersion()
|
||||
const electronVersion = process.versions.electron
|
||||
const chromeVersion = process.versions.chrome
|
||||
const nodeVersion = process.versions.node
|
||||
const v8Version = process.versions.v8
|
||||
const OSInfo = `${os.type()} ${os.arch()} ${os.release()}`
|
||||
const detail = `Version: ${version}\nElectron: ${electronVersion}\nChrome: ${chromeVersion}\nNode.js: ${nodeVersion}\nV8: ${v8Version}\nOS: ${OSInfo}`
|
||||
electron.dialog.showMessageBox(BrowserWindow.getFocusedWindow(), {
|
||||
title: 'BoostNote',
|
||||
message: 'BoostNote',
|
||||
type: 'info',
|
||||
detail: `\n${detail}`
|
||||
})
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
module.exports = process.platform === 'darwin'
|
||||
? [boost, file, edit, view, window, help]
|
||||
: process.platform === 'win32'
|
||||
? [boost, file, view, help]
|
||||
: [file, view, help]
|
||||
module.exports =
|
||||
process.platform === 'darwin'
|
||||
? [boost, file, edit, view, window, help]
|
||||
: process.platform === 'win32'
|
||||
? [boost, file, view, help]
|
||||
: [file, view, help]
|
||||
|
||||
@@ -6,7 +6,33 @@ const Config = require('electron-config')
|
||||
const config = new Config()
|
||||
const _ = require('lodash')
|
||||
|
||||
var showMenu = process.platform !== 'win32'
|
||||
// set up some chrome extensions
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const {
|
||||
default: installExtension,
|
||||
REACT_DEVELOPER_TOOLS,
|
||||
REACT_PERF
|
||||
} = require('electron-devtools-installer')
|
||||
|
||||
require('electron-debug')({ showDevTools: false })
|
||||
|
||||
const ChromeLens = {
|
||||
// ID of the extension (https://chrome.google.com/webstore/detail/chromelens/idikgljglpfilbhaboonnpnnincjhjkd)
|
||||
id: 'idikgljglpfilbhaboonnpnnincjhjkd',
|
||||
electron: '>=1.2.1'
|
||||
}
|
||||
|
||||
const extensions = [REACT_DEVELOPER_TOOLS, REACT_PERF, ChromeLens]
|
||||
|
||||
for (const extension of extensions) {
|
||||
try {
|
||||
installExtension(extension)
|
||||
} catch (e) {
|
||||
console.error(`[ELECTRON] Extension installation failed`, e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const windowSize = config.get('windowsize') || {
|
||||
x: null,
|
||||
y: null,
|
||||
@@ -22,19 +48,23 @@ const mainWindow = new BrowserWindow({
|
||||
useContentSize: true,
|
||||
minWidth: 500,
|
||||
minHeight: 320,
|
||||
autoHideMenuBar: showMenu,
|
||||
webPreferences: {
|
||||
zoomFactor: 1.0,
|
||||
enableBlinkFeatures: 'OverlayScrollbars'
|
||||
},
|
||||
icon: path.resolve(__dirname, '../resources/app.png')
|
||||
})
|
||||
|
||||
const url = path.resolve(__dirname, './main.html')
|
||||
const url = path.resolve(
|
||||
__dirname,
|
||||
process.env.NODE_ENV === 'development'
|
||||
? './main.development.html'
|
||||
: './main.production.html'
|
||||
)
|
||||
|
||||
mainWindow.loadURL('file://' + url)
|
||||
mainWindow.setMenuBarVisibility(false)
|
||||
|
||||
mainWindow.webContents.on('new-window', function (e) {
|
||||
mainWindow.webContents.on('new-window', function(e) {
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
@@ -49,10 +79,10 @@ mainWindow.webContents.sendInputEvent({
|
||||
})
|
||||
|
||||
if (process.platform === 'darwin') {
|
||||
mainWindow.on('close', function (e) {
|
||||
mainWindow.on('close', function(e) {
|
||||
e.preventDefault()
|
||||
if (mainWindow.isFullScreen()) {
|
||||
mainWindow.once('leave-full-screen', function () {
|
||||
mainWindow.once('leave-full-screen', function() {
|
||||
mainWindow.hide()
|
||||
})
|
||||
mainWindow.setFullScreen(false)
|
||||
@@ -61,7 +91,7 @@ if (process.platform === 'darwin') {
|
||||
}
|
||||
})
|
||||
|
||||
app.on('before-quit', function (e) {
|
||||
app.on('before-quit', function(e) {
|
||||
mainWindow.removeAllListeners()
|
||||
})
|
||||
}
|
||||
@@ -69,7 +99,7 @@ if (process.platform === 'darwin') {
|
||||
mainWindow.on('resize', _.throttle(storeWindowSize, 500))
|
||||
mainWindow.on('move', _.throttle(storeWindowSize, 500))
|
||||
|
||||
function storeWindowSize () {
|
||||
function storeWindowSize() {
|
||||
try {
|
||||
config.set('windowsize', mainWindow.getBounds())
|
||||
} catch (e) {
|
||||
@@ -78,7 +108,7 @@ function storeWindowSize () {
|
||||
}
|
||||
}
|
||||
|
||||
app.on('activate', function () {
|
||||
app.on('activate', function() {
|
||||
if (mainWindow == null) return null
|
||||
mainWindow.show()
|
||||
})
|
||||
|
||||
170
lib/main.development.html
Normal file
170
lib/main.development.html
Normal file
@@ -0,0 +1,170 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
|
||||
|
||||
<link rel="stylesheet" href="../node_modules/font-awesome/css/font-awesome.min.css" media="screen" charset="utf-8">
|
||||
<link rel="shortcut icon" href="../resources/favicon.ico">
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="../node_modules/katex/dist/katex.min.css">
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css">
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/addon/lint/lint.css">
|
||||
<link rel="stylesheet" href="../extra_scripts/codemirror/mode/bfm/bfm.css">
|
||||
|
||||
<title>Boostnote</title>
|
||||
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: 'OpenSans';
|
||||
src: url('../resources/fonts/Lato-Regular.woff2') format('woff2'), /* Modern Browsers */
|
||||
url('../resources/fonts/Lato-Regular.woff') format('woff'), /* Modern Browsers */
|
||||
url('../resources/fonts/Lato-Regular.ttf') format('truetype');
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
src: url('../resources/fonts/Lato-Regular.woff2') format('woff2'), /* Modern Browsers */
|
||||
url('../resources/fonts/Lato-Regular.woff') format('woff'), /* Modern Browsers */
|
||||
url('../resources/fonts/Lato-Regular.ttf') format('truetype');
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
#loadingCover {
|
||||
background-color: #f4f4f4;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 65px 0;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
#loadingCover img {
|
||||
display: block;
|
||||
margin: 75px auto 5px;
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
}
|
||||
|
||||
#loadingCover .message {
|
||||
font-size: 30px;
|
||||
text-align: center;
|
||||
line-height: 1.6;
|
||||
font-weight: 100;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.CodeEditor {
|
||||
opacity: 1 !important;
|
||||
pointer-events: auto !important;
|
||||
}
|
||||
|
||||
.CodeMirror-ruler {
|
||||
border-left-color: rgba(142, 142, 142, 0.5);
|
||||
mix-blend-mode: difference;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-lint-tooltip {
|
||||
z-index: 1003;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="loadingCover">
|
||||
<img src="../resources/app.png">
|
||||
<div class='message'>
|
||||
<i class="fa fa-spinner fa-spin" spin></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content"></div>
|
||||
|
||||
<script src="../node_modules/codemirror/lib/codemirror.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/meta.js"></script>
|
||||
<script src="../node_modules/codemirror-mode-elixir/dist/elixir.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/mode/overlay.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/mode/loadmode.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/mode/simple.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/mode/multiplex.js"></script>
|
||||
<script src="../node_modules/codemirror/keymap/sublime.js"></script>
|
||||
<script src="../node_modules/codemirror/keymap/vim.js"></script>
|
||||
<script src="../node_modules/codemirror/keymap/emacs.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/runmode/runmode.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/display/panel.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/xml/xml.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/markdown/markdown.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/yaml/yaml.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js"></script>
|
||||
|
||||
<script src="../extra_scripts/boost/boostNewLineIndentContinueMarkdownList.js"></script>
|
||||
<script src="../extra_scripts/codemirror/mode/bfm/bfm.js"></script>
|
||||
<script src="../extra_scripts/codemirror/mode/gfm/gfm.js"></script>
|
||||
<script src="../extra_scripts/codemirror/addon/hyperlink/hyperlink.js"></script>
|
||||
|
||||
<script src="../extra_scripts/codemirror/addon/edit/closebrackets.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/edit/matchbrackets.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/search/search.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/searchcursor.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/scroll/annotatescrollbar.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/scroll/scrollpastend.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/matchesonscrollbar.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/search/jump-to-line.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/fold/brace-fold.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/fold/markdown-fold.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/fold/foldgutter.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/fold/foldcode.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/dialog/dialog.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/display/rulers.js"></script>
|
||||
|
||||
<script src="../node_modules/jsonlint-mod/lib/jsonlint.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/lint/lint.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/lint/json-lint.js"></script>
|
||||
|
||||
<script src="../node_modules/raphael/raphael.min.js"></script>
|
||||
<script src="../node_modules/flowchart.js/release/flowchart.min.js"></script>
|
||||
<script>
|
||||
window._ = require('lodash')
|
||||
</script>
|
||||
|
||||
<script src="../node_modules/@rokt33r/js-sequence-diagrams/dist/sequence-diagram-min.js"></script>
|
||||
<script src="../node_modules/react/umd/react.development.js"></script>
|
||||
<script src="../node_modules/react-dom/umd/react-dom.development.js"></script>
|
||||
<script src="../node_modules/redux/dist/redux.min.js"></script>
|
||||
<script src="../node_modules/react-redux/dist/react-redux.min.js"></script>
|
||||
<script type='text/javascript'>
|
||||
const electron = require('electron')
|
||||
electron.webFrame.setVisualZoomLevelLimits(1, 1)
|
||||
var scriptUrl = window._.find(electron.remote.process.argv, (a) => a === '--hot')
|
||||
? 'http://localhost:8080/assets/main.js'
|
||||
: '../compiled/main.js'
|
||||
var scriptEl = document.createElement('script')
|
||||
scriptEl.setAttribute('type', 'text/javascript')
|
||||
scriptEl.setAttribute('src', scriptUrl)
|
||||
document.body.appendChild(scriptEl)
|
||||
</script>
|
||||
<style>
|
||||
.ace_search {
|
||||
background-color: #d9d9d9;
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -10,6 +10,7 @@
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/lib/codemirror.css">
|
||||
<link rel="stylesheet" href="../node_modules/katex/dist/katex.min.css">
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css">
|
||||
<link rel="stylesheet" href="../node_modules/codemirror/addon/lint/lint.css">
|
||||
<link rel="stylesheet" href="../extra_scripts/codemirror/mode/bfm/bfm.css">
|
||||
|
||||
<title>Boostnote</title>
|
||||
@@ -71,6 +72,11 @@
|
||||
border-left-color: rgba(142, 142, 142, 0.5);
|
||||
mix-blend-mode: difference;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -98,15 +104,15 @@
|
||||
<script src="../node_modules/codemirror/addon/display/panel.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/xml/xml.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/markdown/markdown.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/gfm/gfm.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/yaml/yaml.js"></script>
|
||||
<script src="../node_modules/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js"></script>
|
||||
|
||||
<script src="../extra_scripts/boost/boostNewLineIndentContinueMarkdownList.js"></script>
|
||||
<script src="../extra_scripts/codemirror/mode/bfm/bfm.js"></script>
|
||||
<script src="../extra_scripts/codemirror/mode/gfm/gfm.js"></script>
|
||||
<script src="../extra_scripts/codemirror/addon/hyperlink/hyperlink.js"></script>
|
||||
<script src="../extra_scripts/codemirror/addon/edit/closebrackets.js"></script>
|
||||
|
||||
<script src="../extra_scripts/codemirror/addon/edit/closebrackets.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/edit/matchbrackets.js"></script>
|
||||
|
||||
<script src="../node_modules/codemirror/addon/search/search.js"></script>
|
||||
@@ -124,15 +130,19 @@
|
||||
<script src="../node_modules/codemirror/addon/dialog/dialog.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/display/rulers.js"></script>
|
||||
|
||||
<script src="../node_modules/jsonlint-mod/lib/jsonlint.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/lint/lint.js"></script>
|
||||
<script src="../node_modules/codemirror/addon/lint/json-lint.js"></script>
|
||||
|
||||
<script src="../node_modules/raphael/raphael.min.js"></script>
|
||||
<script src="../node_modules/flowchart.js/release/flowchart.min.js"></script>
|
||||
<script>
|
||||
window._ = require('lodash')
|
||||
</script>
|
||||
|
||||
<script src="../node_modules/js-sequence-diagrams/fucknpm/sequence-diagram-min.js"></script>
|
||||
<script src="../node_modules/react/dist/react.min.js"></script>
|
||||
<script src="../node_modules/react-dom/dist/react-dom.min.js"></script>
|
||||
<script src="../node_modules/@rokt33r/js-sequence-diagrams/dist/sequence-diagram-min.js"></script>
|
||||
<script src="../node_modules/react/umd/react.production.min.js"></script>
|
||||
<script src="../node_modules/react-dom/umd/react-dom.production.min.js"></script>
|
||||
<script src="../node_modules/redux/dist/redux.min.js"></script>
|
||||
<script src="../node_modules/react-redux/dist/react-redux.min.js"></script>
|
||||
<script type='text/javascript'>
|
||||
@@ -153,4 +163,4 @@
|
||||
</style>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,5 +1,5 @@
|
||||
const {TouchBar} = require('electron')
|
||||
const {TouchBarButton, TouchBarSpacer} = TouchBar
|
||||
const { TouchBar } = require('electron')
|
||||
const { TouchBarButton, TouchBarSpacer } = TouchBar
|
||||
const mainWindow = require('./main-window')
|
||||
|
||||
const allNotes = new TouchBarButton({
|
||||
@@ -35,7 +35,6 @@ module.exports = new TouchBar([
|
||||
allNotes,
|
||||
starredNotes,
|
||||
trash,
|
||||
new TouchBarSpacer({size: 'small'}),
|
||||
new TouchBarSpacer({ size: 'small' }),
|
||||
newNote
|
||||
])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user