1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 01:36:22 +00:00

Merge branch 'master' into bug-1992

This commit is contained in:
Baptiste Augrain
2018-10-23 09:34:26 +02:00
85 changed files with 1506 additions and 301 deletions

View File

@@ -1,15 +1,25 @@
# Current behavior # Current behavior
<!-- <!--
Please paste some **screenshots** with the **developer tool** open (console tab) when you report a bug. Let us know what is currently happening.
If your issue is regarding boostnote mobile, move to https://github.com/BoostIO/boostnote-mobile. Please include some **screenshots** with the **developer tools** open (console tab) when you report a bug.
If your issue is regarding Boostnote mobile, please open an issue in the Boostnote Mobile repo 👉 https://github.com/BoostIO/boostnote-mobile.
--> -->
# Expected behavior # Expected behavior
<!--
Let us know what you think should happen!
-->
# Steps to reproduce # Steps to reproduce
<!--
Please be thorough, issues we can reproduce are easier to fix!
-->
1. 1.
2. 2.
3. 3.

View File

@@ -292,6 +292,10 @@ export default class CodeEditor extends React.Component {
this.editor.on('cursorActivity', this.editorActivityHandler) this.editor.on('cursorActivity', this.editorActivityHandler)
this.editor.on('changes', this.editorActivityHandler) this.editor.on('changes', this.editorActivityHandler)
} }
this.setState({
clientWidth: this.refs.root.clientWidth
})
} }
expandSnippet (line, cursor, cm, snippets) { expandSnippet (line, cursor, cm, snippets) {
@@ -441,6 +445,14 @@ export default class CodeEditor extends React.Component {
this.editor.setOption('extraKeys', this.defaultKeyMap) this.editor.setOption('extraKeys', this.defaultKeyMap)
} }
if (this.state.clientWidth !== this.refs.root.clientWidth) {
this.setState({
clientWidth: this.refs.root.clientWidth
})
needRefresh = true
}
if (needRefresh) { if (needRefresh) {
this.editor.refresh() this.editor.refresh()
} }

View File

@@ -250,7 +250,7 @@ class MarkdownEditor extends React.Component {
: 'codeEditor--hide' : 'codeEditor--hide'
} }
ref='code' ref='code'
mode='GitHub Flavored Markdown' mode='Boost Flavored Markdown'
value={value} value={value}
theme={config.editor.theme} theme={config.editor.theme}
keyMap={config.editor.keyMap} keyMap={config.editor.keyMap}

View File

@@ -16,7 +16,6 @@
.preview .preview
display block display block
absolute top bottom left right absolute top bottom left right
z-index 100
background-color white background-color white
height 100% height 100%
width 100% width 100%

View File

@@ -17,8 +17,11 @@ import copy from 'copy-to-clipboard'
import mdurl from 'mdurl' import mdurl from 'mdurl'
import exportNote from 'browser/main/lib/dataApi/exportNote' import exportNote from 'browser/main/lib/dataApi/exportNote'
import { escapeHtmlCharacters } from 'browser/lib/utils' import { escapeHtmlCharacters } from 'browser/lib/utils'
import context from 'browser/lib/context'
import i18n from 'browser/lib/i18n'
import fs from 'fs'
const { remote } = require('electron') const { remote, shell } = require('electron')
const attachmentManagement = require('../main/lib/dataApi/attachmentManagement') const attachmentManagement = require('../main/lib/dataApi/attachmentManagement')
const { app } = remote const { app } = remote
@@ -27,6 +30,8 @@ const fileUrl = require('file-url')
const dialog = remote.dialog const dialog = remote.dialog
const uri2path = require('file-uri-to-path')
const markdownStyle = require('!!css!stylus?sourceMap!./markdown.styl')[0][1] const markdownStyle = require('!!css!stylus?sourceMap!./markdown.styl')[0][1]
const appPath = fileUrl( const appPath = fileUrl(
process.env.NODE_ENV === 'production' ? app.getAppPath() : path.resolve() process.env.NODE_ENV === 'production' ? app.getAppPath() : path.resolve()
@@ -161,7 +166,6 @@ const scrollBarDarkStyle = `
} }
` `
const { shell } = require('electron')
const OSX = global.process.platform === 'darwin' const OSX = global.process.platform === 'darwin'
const defaultFontFamily = ['helvetica', 'arial', 'sans-serif'] const defaultFontFamily = ['helvetica', 'arial', 'sans-serif']
@@ -219,8 +223,32 @@ export default class MarkdownPreview extends React.Component {
} }
} }
handleContextMenu (e) { handleContextMenu (event) {
this.props.onContextMenu(e) // If a contextMenu handler was passed to us, use it instead of the self-defined one -> return
if (_.isFunction(this.props.onContextMenu)) {
this.props.onContextMenu(event)
return
}
// No contextMenu was passed to us -> execute our own link-opener
if (event.target.tagName.toLowerCase() === 'a') {
const href = event.target.href
const isLocalFile = href.startsWith('file:')
if (isLocalFile) {
const absPath = uri2path(href)
try {
if (fs.lstatSync(absPath).isFile()) {
context.popup([
{
label: i18n.__('Show in explorer'),
click: (e) => shell.showItemInFolder(absPath)
}
])
}
} catch (e) {
console.log('Error while evaluating if the file is locally available', e)
}
}
}
} }
handleDoubleClick (e) { handleDoubleClick (e) {
@@ -397,6 +425,7 @@ export default class MarkdownPreview extends React.Component {
case 'dark': case 'dark':
case 'solarized-dark': case 'solarized-dark':
case 'monokai': case 'monokai':
case 'dracula':
return scrollBarDarkStyle return scrollBarDarkStyle
default: default:
return scrollBarStyle return scrollBarStyle
@@ -455,6 +484,10 @@ export default class MarkdownPreview extends React.Component {
eventEmitter.on('export:save-md', this.saveAsMdHandler) eventEmitter.on('export:save-md', this.saveAsMdHandler)
eventEmitter.on('export:save-html', this.saveAsHtmlHandler) eventEmitter.on('export:save-html', this.saveAsHtmlHandler)
eventEmitter.on('print', this.printHandler) eventEmitter.on('print', this.printHandler)
eventEmitter.on('config-renew', () => {
this.markdown.updateConfig()
this.rewriteIframe()
})
} }
componentWillUnmount () { componentWillUnmount () {

View File

@@ -145,7 +145,7 @@ class MarkdownSplitEditor extends React.Component {
styleName='codeEditor' styleName='codeEditor'
ref='code' ref='code'
width={this.state.codeEditorWidthInPercent + '%'} width={this.state.codeEditorWidthInPercent + '%'}
mode='GitHub Flavored Markdown' mode='Boost Flavored Markdown'
value={value} value={value}
theme={config.editor.theme} theme={config.editor.theme}
keyMap={config.editor.keyMap} keyMap={config.editor.keyMap}

View File

@@ -74,24 +74,22 @@ const NoteItem = ({
? note.title ? note.title
: <span styleName='item-title-empty'>{i18n.__('Empty note')}</span>} : <span styleName='item-title-empty'>{i18n.__('Empty note')}</span>}
</div> </div>
{['ALL', 'STORAGE'].includes(viewType) && <div styleName='item-middle'>
<div styleName='item-middle'> <div styleName='item-middle-time'>{dateDisplay}</div>
<div styleName='item-middle-time'>{dateDisplay}</div> <div styleName='item-middle-app-meta'>
<div styleName='item-middle-app-meta'> <div
<div title={
title={ viewType === 'ALL'
viewType === 'ALL' ? storageName
? storageName : viewType === 'STORAGE' ? folderName : null
: viewType === 'STORAGE' ? folderName : null }
} styleName='item-middle-app-meta-label'
styleName='item-middle-app-meta-label' >
> {viewType === 'ALL' && storageName}
{viewType === 'ALL' && storageName} {viewType === 'STORAGE' && folderName}
{viewType === 'STORAGE' && folderName}
</div>
</div> </div>
</div>} </div>
</div>
<div styleName='item-bottom'> <div styleName='item-bottom'>
<div styleName='item-bottom-tagList'> <div styleName='item-bottom-tagList'>
{note.tags.length > 0 {note.tags.length > 0

View File

@@ -368,13 +368,13 @@ body[data-theme="monokai"]
.item-title .item-title
.item-title-icon .item-title-icon
.item-bottom-time .item-bottom-time
color $ui-monokai-text-color color $ui-monokai-active-color
.item-bottom-tagList-item .item-bottom-tagList-item
background-color alpha(white, 10%) background-color alpha(white, 10%)
color $ui-monokai-text-color color $ui-monokai-text-color
&:hover &:hover
// background-color alpha($ui-monokai-button--active-backgroundColor, 60%) // background-color alpha($ui-monokai-button--active-backgroundColor, 60%)
color #c0392b color #f92672
.item-bottom-tagList-item .item-bottom-tagList-item
background-color alpha(#fff, 20%) background-color alpha(#fff, 20%)
@@ -394,3 +394,76 @@ body[data-theme="monokai"]
.item-bottom-tagList-empty .item-bottom-tagList-empty
color $ui-inactive-text-color color $ui-inactive-text-color
vertical-align middle vertical-align middle
body[data-theme="dracula"]
.root
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
.item
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
&:hover
transition 0.15s
// background-color alpha($ui-dracula-noteList-backgroundColor, 20%)
color $ui-dracula-text-color
.item-title
.item-title-icon
.item-bottom-time
transition 0.15s
color $ui-dracula-text-color
.item-bottom-tagList-item
transition 0.15s
background-color alpha($ui-dracula-noteList-backgroundColor, 20%)
color $ui-dracula-text-color
&:active
transition 0.15s
background-color $ui-dracula-noteList-backgroundColor
color $ui-dracula-text-color
.item-title
.item-title-icon
.item-bottom-time
transition 0.15s
color $ui-dracula-text-color
.item-bottom-tagList-item
transition 0.15s
background-color alpha($ui-dracula-noteList-backgroundColor, 10%)
color $ui-dracula-text-color
.item-wrapper
border-color alpha($ui-dracula-button-backgroundColor, 60%)
.item--active
border-color $ui-dracula-borderColor
background-color $ui-dracula-button-backgroundColor
.item-wrapper
border-color transparent
.item-title
.item-title-icon
.item-bottom-time
color $ui-dracula-active-color
.item-bottom-tagList-item
background-color alpha(#f8f8f2, 10%)
color $ui-dracula-text-color
&:hover
// background-color alpha($ui-dracula-button--active-backgroundColor, 60%)
color #ff79c6
.item-bottom-tagList-item
background-color alpha(#f8f8f2, 20%)
.item-title
color $ui-inactive-text-color
.item-title-icon
color $ui-inactive-text-color
.item-title-empty
color $ui-inactive-text-color
.item-bottom-tagList-item
background-color alpha($ui-dark-button--active-backgroundColor, 40%)
color $ui-inactive-text-color
.item-bottom-tagList-empty
color $ui-inactive-text-color
vertical-align middle

View File

@@ -240,7 +240,7 @@ body[data-theme="monokai"]
.item-simple-title-icon .item-simple-title-icon
.item-simple-bottom-time .item-simple-bottom-time
transition 0.15s transition 0.15s
color $ui-solarized-dark-text-color color $ui-monokai-text-color
.item-simple-bottom-tagList-item .item-simple-bottom-tagList-item
transition 0.15s transition 0.15s
background-color alpha(#fff, 20%) background-color alpha(#fff, 20%)
@@ -286,3 +286,67 @@ body[data-theme="monokai"]
.item-simple-right-storageName .item-simple-right-storageName
padding-left 4px padding-left 4px
opacity 0.4 opacity 0.4
body[data-theme="dracula"]
.root
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
.item-simple
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
&:hover
transition 0.15s
background-color alpha($ui-dracula-button-backgroundColor, 60%)
color $ui-dracula-text-color
.item-simple-title
.item-simple-title-empty
.item-simple-title-icon
.item-simple-bottom-time
transition 0.15s
color $ui-dracula-text-color
.item-simple-bottom-tagList-item
transition 0.15s
background-color alpha(#f8f8f2, 20%)
color $ui-dracula-text-color
&:active
transition 0.15s
background-color $ui-dracula-button--active-backgroundColor
color $ui-dracula-text-color
.item-simple-title
.item-simple-title-empty
.item-simple-title-icon
.item-simple-bottom-time
transition 0.15s
color $ui-dracula-text-color
.item-simple-bottom-tagList-item
transition 0.15s
background-color alpha(#f8f8f2, 10%)
color $ui-dracula-text-color
.item-simple--active
border-color $ui-dracula-borderColor
background-color $ui-dracula-button--active-backgroundColor
.item-simple-wrapper
border-color transparent
.item-simple-title
.item-simple-title-empty
.item-simple-title-icon
.item-simple-bottom-time
color $ui-dracula-text-color
.item-simple-bottom-tagList-item
background-color alpha(#f8f8f2, 10%)
color $ui-dracula-text-color
&:hover
// background-color alpha($ui-dark-button--active-backgroundColor, 60%)
color #c0392b
.item-simple-bottom-tagList-item
background-color alpha(#f8f8f2, 20%)
.item-simple-title
color $ui-dark-text-color
border-bottom $ui-dark-borderColor
.item-simple-right
float right
.item-simple-right-storageName
padding-left 4px
opacity 0.4

View File

@@ -51,4 +51,15 @@ body[data-theme="monokai"]
border none border none
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
&:hover &:hover
color #5CB85C color #5CB85C
body[data-theme="dracula"]
.notification-area
background-color none
.notification-link
color $ui-dracula-text-color
border none
background-color $ui-dracula-button-backgroundColor
&:hover
color #ff79c6

View File

@@ -263,4 +263,46 @@ body[data-theme="monokai"]
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
.menu-button-label .menu-button-label
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.menu-button
&:active
background-color $ui-dracula-noteList-backgroundColor
color $ui-dracula-text-color
&:hover
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
.menu-button--active
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
.menu-button-label
color $ui-dracula-text-color
&:hover
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
.menu-button-label
color $ui-dracula-text-color
.menu-button-star--active
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
.menu-button-label
color $ui-dracula-text-color
&:hover
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
.menu-button-label
color $ui-dracula-text-color
.menu-button-trash--active
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
.menu-button-label
color $ui-dracula-text-color
&:hover
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
.menu-button-label
color $ui-dracula-text-color

View File

@@ -180,4 +180,48 @@ body[data-theme="monokai"]
color $ui-monokai-text-color color $ui-monokai-text-color
.deleteButton .deleteButton
color alpha($ui-monokai-text-color, 30%) color alpha($ui-monokai-text-color, 30%)
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
border-color $ui-dark-borderColor
&:hover
background-color $ui-dracula-noteDetail-backgroundColor
.deleteButton
color $ui-dracula-text-color
&:hover
background-color darken($ui-dracula-noteDetail-backgroundColor, 15%)
&:active
color $ui-dracula-text-color
background-color $ui-dark-button--active-backgroundColor
.root--active
color $ui-dracula-text-color
border-color $ui-dracula-borderColor
&:hover
background-color $ui-dracula-noteDetail-backgroundColor
.deleteButton
color $ui-dracula-text-color
&:hover
background-color darken($ui-dracula-noteDetail-backgroundColor, 15%)
&:active
color $ui-dracula-text-color
background-color $ui-dark-button--active-backgroundColor
.button
border none
color $ui-dracula-text-color
background-color transparent
transition color background-color 0.15s
border-left 4px solid transparent
&:hover
color $ui-dracula-text-color
background-color $ui-dracula-noteDetail-backgroundColor
.input
background-color $ui-dracula-noteDetail-backgroundColor
color $ui-dracula-text-color
.deleteButton
color alpha($ui-dracula-text-color, 30%)

View File

@@ -156,4 +156,23 @@ body[data-theme="monokai"]
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
&:hover &:hover
color $ui-monokai-text-color color $ui-monokai-text-color
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
body[data-theme="dracula"]
.folderList-item
&:hover
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
&:active
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
.folderList-item--active
@extend .folderList-item
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
&:active
background-color $ui-dracula-button-backgroundColor
&:hover
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor

View File

@@ -39,7 +39,7 @@ body[data-theme="dark"]
.percentageText .percentageText
color $ui-dark-text-color color $ui-dark-text-color
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.percentageBar .percentageBar
background-color #002b36 background-color #002b36
@@ -52,10 +52,20 @@ body[data-theme="solarized-dark"]
body[data-theme="monokai"] body[data-theme="monokai"]
.percentageBar .percentageBar
background-color #f92672 background-color: $ui-monokai-borderColor
.progressBar .progressBar
background-color: #373831 background-color $ui-monokai-active-color
.percentageText .percentageText
color #fdf6e3 color $ui-monokai-text-color
body[data-theme="dracula"]
.percentageBar
background-color $ui-dracula-borderColor
.progressBar
background-color: $ui-dracula-active-color
.percentageText
color $ui-dracula-text-color

View File

@@ -80,6 +80,9 @@ li
&.checked &.checked
text-decoration line-through text-decoration line-through
opacity 0.5 opacity 0.5
&.taskListItem.checked
text-decoration line-through
opacity 0.5
div.math-rendered div.math-rendered
text-align center text-align center
.math-failed .math-failed
@@ -361,7 +364,7 @@ for name, val in admonition_types
.admonition.{name} .admonition.{name}
@extend $admonition @extend $admonition
border-left-color: val[color] border-left-color: val[color]
.admonition.{name}>.admonition-title .admonition.{name}>.admonition-title
@extend $admonition-title @extend $admonition-title
border-bottom-color: .1rem solid rgba(val[color], 0.2) border-bottom-color: .1rem solid rgba(val[color], 0.2)
@@ -476,5 +479,34 @@ body[data-theme="monokai"]
border-color themeMonokaiTableBorder border-color themeMonokaiTableBorder
&:last-child &:last-child
border-right solid 1px themeMonokaiTableBorder border-right solid 1px themeMonokaiTableBorder
kbd
background-color themeDarkBackground
themeDraculaTableOdd = $ui-dracula-noteDetail-backgroundColor
themeDraculaTableEven = darken($ui-dracula-noteDetail-backgroundColor, 10%)
themeDraculaTableHead = themeDraculaTableEven
themeDraculaTableBorder = themeDarkBorder
body[data-theme="dracula"]
color $ui-dracula-text-color
border-color themeDarkBorder
background-color $ui-dracula-noteDetail-backgroundColor
table
thead
tr
background-color themeDraculaTableHead
th
border-color themeDraculaTableBorder
&:last-child
border-right solid 1px themeDraculaTableBorder
tbody
tr:nth-child(2n + 1)
background-color themeDraculaTableOdd
tr:nth-child(2n)
background-color themeDraculaTableEven
td
border-color themeDraculaTableBorder
&:last-child
border-right solid 1px themeDraculaTableBorder
kbd kbd
background-color themeDarkBackground background-color themeDarkBackground

View File

@@ -2,8 +2,8 @@ import mermaidAPI from 'mermaid'
// fixes bad styling in the mermaid dark theme // fixes bad styling in the mermaid dark theme
const darkThemeStyling = ` const darkThemeStyling = `
.loopText tspan { .loopText tspan {
fill: white; fill: white;
}` }`
function getRandomInt (min, max) { function getRandomInt (min, max) {
@@ -21,7 +21,7 @@ function getId () {
function render (element, content, theme) { function render (element, content, theme) {
try { try {
let isDarkTheme = theme === 'dark' || theme === 'solarized-dark' || theme === 'monokai' let isDarkTheme = theme === 'dark' || theme === 'solarized-dark' || theme === 'monokai' || theme === 'dracula'
mermaidAPI.initialize({ mermaidAPI.initialize({
theme: isDarkTheme ? 'dark' : 'default', theme: isDarkTheme ? 'dark' : 'default',
themeCSS: isDarkTheme ? darkThemeStyling : '' themeCSS: isDarkTheme ? darkThemeStyling : ''

View File

@@ -7,6 +7,7 @@ import _ from 'lodash'
import ConfigManager from 'browser/main/lib/ConfigManager' import ConfigManager from 'browser/main/lib/ConfigManager'
import katex from 'katex' import katex from 'katex'
import { lastFindInArray } from './utils' import { lastFindInArray } from './utils'
import ee from 'browser/main/lib/eventEmitter'
function createGutter (str, firstLineNumber) { function createGutter (str, firstLineNumber) {
if (Number.isNaN(firstLineNumber)) firstLineNumber = 1 if (Number.isNaN(firstLineNumber)) firstLineNumber = 1
@@ -20,7 +21,7 @@ function createGutter (str, firstLineNumber) {
class Markdown { class Markdown {
constructor (options = {}) { constructor (options = {}) {
const config = ConfigManager.get() let config = ConfigManager.get()
const defaultOptions = { const defaultOptions = {
typographer: config.preview.smartQuotes, typographer: config.preview.smartQuotes,
linkify: true, linkify: true,
@@ -152,7 +153,8 @@ class Markdown {
} }
}) })
this.md.use(require('markdown-it-kbd')) this.md.use(require('markdown-it-kbd'))
this.md.use(require('markdown-it-admonition'))
this.md.use(require('markdown-it-admonition'), {types: ['note', 'hint', 'attention', 'caution', 'danger', 'error']})
this.md.use(require('./markdown-it-frontmatter')) this.md.use(require('./markdown-it-frontmatter'))
const deflate = require('markdown-it-plantuml/lib/deflate') const deflate = require('markdown-it-plantuml/lib/deflate')
@@ -226,7 +228,11 @@ class Markdown {
if (!liToken.attrs) { if (!liToken.attrs) {
liToken.attrs = [] liToken.attrs = []
} }
liToken.attrs.push(['class', 'taskListItem']) if (config.preview.lineThroughCheckbox) {
liToken.attrs.push(['class', `taskListItem${match[1] !== ' ' ? ' checked' : ''}`])
} else {
liToken.attrs.push(['class', 'taskListItem'])
}
} }
content = `<label class='taskListItem${match[1] !== ' ' ? ' checked' : ''}' for='checkbox-${startLine + 1}'><input type='checkbox'${match[1] !== ' ' ? ' checked' : ''} id='checkbox-${startLine + 1}'/> ${content.substring(4, content.length)}</label>` content = `<label class='taskListItem${match[1] !== ' ' ? ' checked' : ''}' for='checkbox-${startLine + 1}'><input type='checkbox'${match[1] !== ' ' ? ' checked' : ''} id='checkbox-${startLine + 1}'/> ${content.substring(4, content.length)}</label>`
} }
@@ -263,6 +269,9 @@ class Markdown {
} }
// FIXME We should not depend on global variable. // FIXME We should not depend on global variable.
window.md = this.md window.md = this.md
this.updateConfig = () => {
config = ConfigManager.get()
}
} }
render (content) { render (content) {

View File

@@ -23,7 +23,7 @@ body[data-theme="dark"]
border-left 1px solid $ui-dark-borderColor border-left 1px solid $ui-dark-borderColor
.empty-message .empty-message
color $ui-dark-inactive-text-color color $ui-dark-inactive-text-color
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.root .root
background-color $ui-solarized-dark-noteDetail-backgroundColor background-color $ui-solarized-dark-noteDetail-backgroundColor
@@ -37,3 +37,10 @@ body[data-theme="monokai"]
border-left 1px solid $ui-monokai-borderColor border-left 1px solid $ui-monokai-borderColor
.empty-message .empty-message
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root
background-color $ui-dracula-noteDetail-backgroundColor
border-left 1px solid $ui-dracula-borderColor
.empty-message
color $ui-dracula-text-color

View File

@@ -36,7 +36,7 @@
height 34px height 34px
width 20px width 20px
line-height 34px line-height 34px
.search-input .search-input
vertical-align middle vertical-align middle
position relative position relative
@@ -71,7 +71,7 @@
overflow ellipsis overflow ellipsis
cursor pointer cursor pointer
&:hover &:hover
background-color $ui-button--hover-backgroundColor background-color $ui-button--hover-backgroundColor
.search-optionList-item--active .search-optionList-item--active
@extend .search-optionList-item @extend .search-optionList-item
@@ -159,3 +159,29 @@ body[data-theme="monokai"]
color $ui-monokai-button--active-color color $ui-monokai-button--active-color
.search-optionList-item-name-surfix .search-optionList-item-name-surfix
color $ui-monokai-inactive-text-color color $ui-monokai-inactive-text-color
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
&:hover
color #f8f8f2
background-color $ui-dark-button--hover-backgroundColor
border-color $ui-dracula-borderColor
.search-optionList
color #f8f8f2
border-color $ui-dracula-borderColor
background-color $ui-dracula-button-backgroundColor
.search-optionList-item
&:hover
background-color lighten($ui-dracula-button--hover-backgroundColor, 15%)
.search-optionList-item--active
background-color $ui-dracula-button--active-backgroundColor
color $ui-dracula-button--active-color
&:hover
background-color $ui-dark-button--hover-backgroundColor
color $ui-dracula-button--active-color
.search-optionList-item-name-surfix
color $ui-dracula-inactive-text-color

View File

@@ -257,3 +257,43 @@ body[data-theme="monokai"]
color $ui-dark-inactive-text-color color $ui-dark-inactive-text-color
&:hover &:hover
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.control-infoButton-panel
background-color $ui-dracula-noteList-backgroundColor
.control-infoButton-panel-trash
background-color $ui-dracula-noteList-backgroundColor
.modification-date
color $ui-dracula-text-color
.modification-date-desc
color $ui-inactive-text-color
.infoPanel-defaul-count
color $ui-dracula-text-color
.infoPanel-sub-count
color $ui-inactive-text-color
.infoPanel-default
color $ui-dracula-text-color
.infoPanel-sub
color $ui-inactive-text-color
.infoPanel-noteLink
background-color alpha($ui-dracula-borderColor, 20%)
color $ui-dracula-text-color
[id=export-wrap]
button
color $ui-dark-inactive-text-color
&:hover
background-color alpha($ui-dracula-borderColor, 20%)
color $ui-dracula-text-color
p
color $ui-dark-inactive-text-color
&:hover
color $ui-dracula-text-color

View File

@@ -76,3 +76,8 @@ body[data-theme="monokai"]
.root .root
border-left 1px solid $ui-monokai-borderColor border-left 1px solid $ui-monokai-borderColor
background-color $ui-monokai-noteDetail-backgroundColor background-color $ui-monokai-noteDetail-backgroundColor
body[data-theme="dracula"]
.root
border-left 1px solid $ui-dracula-borderColor
background-color $ui-dracula-noteDetail-backgroundColor

View File

@@ -98,8 +98,13 @@ body[data-theme="solarized-dark"]
.info .info
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
background-color $ui-solarized-dark-noteDetail-backgroundColor background-color $ui-solarized-dark-noteDetail-backgroundColor
body[data-theme="monokai"] body[data-theme="monokai"]
.info .info
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
background-color $ui-monokai-noteDetail-backgroundColor background-color $ui-monokai-noteDetail-backgroundColor
body[data-theme="dracula"]
.info
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteDetail-backgroundColor

View File

@@ -759,6 +759,7 @@ class SnippetNoteDetail extends React.Component {
<TagSelect <TagSelect
ref='tags' ref='tags'
value={this.state.note.tags} value={this.state.note.tags}
data={data}
onChange={(e) => this.handleChange(e)} onChange={(e) => this.handleChange(e)}
/> />
</div> </div>

View File

@@ -169,4 +169,21 @@ body[data-theme="monokai"]
.tabList .tabList
background-color $ui-monokai-noteDetail-backgroundColor background-color $ui-monokai-noteDetail-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root
border-left 1px solid $ui-dracula-borderColor
background-color $ui-dracula-noteDetail-backgroundColor
.body
background-color $ui-dracula-noteDetail-backgroundColor
.body .description textarea
background-color $ui-dracula-noteDetail-backgroundColor
color $ui-dracula-text-color
border 1px solid $ui-dracula-borderColor
.tabList
background-color $ui-dracula-noteDetail-backgroundColor
color $ui-dracula-text-color

View File

@@ -88,6 +88,11 @@ class TagSelect extends React.Component {
this.refs.newTag.input.focus() this.refs.newTag.input.focus()
} }
handleTagLabelClick (tag) {
const { router } = this.context
router.push(`/tags/${tag}`)
}
handleTagRemoveButtonClick (tag) { handleTagRemoveButtonClick (tag) {
this.removeTagByCallback((value, tag) => { this.removeTagByCallback((value, tag) => {
value.splice(value.indexOf(tag), 1) value.splice(value.indexOf(tag), 1)
@@ -182,7 +187,7 @@ class TagSelect extends React.Component {
<span styleName='tag' <span styleName='tag'
key={tag} key={tag}
> >
<span styleName='tag-label'>#{tag}</span> <span styleName='tag-label' onClick={(e) => this.handleTagLabelClick(tag)}>#{tag}</span>
<button styleName='tag-removeButton' <button styleName='tag-removeButton'
onClick={(e) => this.handleTagRemoveButtonClick(tag)} onClick={(e) => this.handleTagRemoveButtonClick(tag)}
> >
@@ -228,6 +233,10 @@ class TagSelect extends React.Component {
} }
} }
TagSelect.contextTypes = {
router: PropTypes.shape({})
}
TagSelect.propTypes = { TagSelect.propTypes = {
className: PropTypes.string, className: PropTypes.string,
value: PropTypes.arrayOf(PropTypes.string), value: PropTypes.arrayOf(PropTypes.string),

View File

@@ -39,8 +39,9 @@
.tag-label .tag-label
font-size 13px font-size 13px
color: $ui-text-color color $ui-text-color
padding 4px 16px 4px 8px padding 4px 16px 4px 8px
cursor pointer
body[data-theme="dark"] body[data-theme="dark"]
.tag .tag
@@ -67,11 +68,22 @@ body[data-theme="solarized-dark"]
body[data-theme="monokai"] body[data-theme="monokai"]
.tag .tag
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-tag-backgroundColor
.tag-removeButton .tag-removeButton
border-color $ui-button--focus-borderColor border-color $ui-button--focus-borderColor
background-color transparent background-color transparent
.tag-label .tag-label
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.tag
background-color $ui-dracula-tag-backgroundColor
.tag-removeButton
border-color $ui-dracula-button--focus-borderColor
background-color transparent
.tag-label
color $ui-dracula-borderColor

View File

@@ -59,7 +59,14 @@ body[data-theme="solarized-dark"]
body[data-theme="monokai"] body[data-theme="monokai"]
.control-toggleModeButton .control-toggleModeButton
background-color #272822 background-color #373831
.active .active
background-color #1EC38B background-color #f92672
box-shadow 2px 0px 7px #222222
body[data-theme="dracula"]
.control-toggleModeButton
background-color #44475a
.active
background-color #bd93f9
box-shadow 2px 0px 7px #222222 box-shadow 2px 0px 7px #222222

View File

@@ -56,7 +56,7 @@ class Main extends React.Component {
init () { init () {
dataApi dataApi
.addStorage({ .addStorage({
name: 'My Storage', name: 'My Storage Location',
path: path.join(remote.app.getPath('home'), 'Boostnote') path: path.join(remote.app.getPath('home'), 'Boostnote')
}) })
.then(data => { .then(data => {
@@ -141,7 +141,7 @@ class Main extends React.Component {
componentDidMount () { componentDidMount () {
const { dispatch, config } = this.props const { dispatch, config } = this.props
const supportedThemes = ['dark', 'white', 'solarized-dark', 'monokai'] const supportedThemes = ['dark', 'white', 'solarized-dark', 'monokai', 'dracula']
if (supportedThemes.indexOf(config.ui.theme) !== -1) { if (supportedThemes.indexOf(config.ui.theme) !== -1) {
document.body.setAttribute('data-theme', config.ui.theme) document.body.setAttribute('data-theme', config.ui.theme)

View File

@@ -79,3 +79,7 @@ body[data-theme="solarized-dark"]
body[data-theme="monokai"] body[data-theme="monokai"]
.root, .root--expanded .root, .root--expanded
background-color $ui-monokai-noteList-backgroundColor background-color $ui-monokai-noteList-backgroundColor
body[data-theme="dracula"]
.root, .root--expanded
background-color $ui-dracula-noteList-backgroundColor

View File

@@ -84,7 +84,7 @@ body[data-theme="dark"]
color $ui-dark-inactive-text-color color $ui-dark-inactive-text-color
&:hover &:hover
color $ui-dark-text-color color $ui-dark-text-color
.control-button--active .control-button--active
color $ui-dark-text-color color $ui-dark-text-color
&:active &:active
@@ -109,7 +109,7 @@ body[data-theme="solarized-dark"]
color $ui-solarized-dark-inactive-text-color color $ui-solarized-dark-inactive-text-color
&:hover &:hover
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
.control-button--active .control-button--active
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
&:active &:active
@@ -138,3 +138,27 @@ body[data-theme="monokai"]
color $ui-monokai-text-color color $ui-monokai-text-color
&:active &:active
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
.control
background-color $ui-dracula-noteList-backgroundColor
border-color $ui-dracula-borderColor
.control-sortBy-select
&:hover
transition 0.2s
color $ui-dracula-text-color
.control-button
color $ui-dracula-inactive-text-color
&:hover
color $ui-dracula-text-color
.control-button--active
color $ui-dracula-text-color
&:active
color $ui-dracula-text-color

View File

@@ -519,7 +519,7 @@ class NoteList extends React.Component {
click: this.cloneNote.bind(this) click: this.cloneNote.bind(this)
}, { }, {
label: copyNoteLink, label: copyNoteLink,
click: this.copyNoteLink(note) click: this.copyNoteLink.bind(this, note)
}) })
if (note.type === 'MARKDOWN_NOTE') { if (note.type === 'MARKDOWN_NOTE') {
if (note.blog && note.blog.blogLink && note.blog.blogId) { if (note.blog && note.blog.blogLink && note.blog.blogId) {

View File

@@ -19,7 +19,7 @@
text-align center text-align center
.top-menu-label .top-menu-label
margin-left 5px margin-left 5px
overflow ellipsis overflow ellipsis
@@ -122,3 +122,8 @@ body[data-theme="monokai"]
.root, .root--folded .root, .root--folded
background-color $ui-monokai-backgroundColor background-color $ui-monokai-backgroundColor
border-right 1px solid $ui-monokai-borderColor border-right 1px solid $ui-monokai-borderColor
body[data-theme="dracula"]
.root, .root--folded
background-color $ui-dracula-backgroundColor
border-right 1px solid $ui-dracula-borderColor

View File

@@ -34,7 +34,7 @@
color $ui-active-color color $ui-active-color
span span
margin-left 5px margin-left 5px
.update .update
navButtonColor() navButtonColor()
height 24px height 24px
@@ -80,3 +80,14 @@ body[data-theme="monokai"]
color $ui-monokai-active-color color $ui-monokai-active-color
&:active &:active
color $ui-monokai-active-color color $ui-monokai-active-color
body[data-theme="dracula"]
navButtonColor()
.zoom
border-color $ui-dark-borderColor
color $ui-dracula-text-color
&:hover
transition 0.15s
color $ui-dracula-active-color
&:active
color $ui-dracula-active-color

View File

@@ -256,3 +256,25 @@ body[data-theme="monokai"]
input input
background-color $ui-monokai-noteList-backgroundColor background-color $ui-monokai-noteList-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root, .root--expanded
background-color $ui-dracula-noteList-backgroundColor
.control
border-color $ui-dracula-borderColor
.control-search
background-color $ui-dracula-noteList-backgroundColor
.control-search-icon
absolute top bottom left
line-height 32px
width 35px
color $ui-dracula-inactive-text-color
background-color $ui-dracula-noteList-backgroundColor
.control-search-input
background-color $ui-dracula-noteList-backgroundColor
input
background-color $ui-dracula-noteList-backgroundColor
color $ui-dracula-text-color

View File

@@ -18,6 +18,9 @@ body
::-webkit-scrollbar ::-webkit-scrollbar
width 12px width 12px
::-webkit-scrollbar-corner
background-color: transparent;
::-webkit-scrollbar-thumb ::-webkit-scrollbar-thumb
background-color rgba(0, 0, 0, 0.15) background-color rgba(0, 0, 0, 0.15)
@@ -162,6 +165,15 @@ body[data-theme="monokai"]
.sortableItemHelper .sortableItemHelper
color: $ui-monokai-text-color color: $ui-monokai-text-color
body[data-theme="dracula"]
::-webkit-scrollbar-thumb
background-color rgba(0, 0, 0, 0.3)
.ModalBase
.modalBack
background-color $ui-dracula-backgroundColor
.sortableItemHelper
color: $ui-dracula-text-color
body[data-theme="default"] body[data-theme="default"]
.SideNav ::-webkit-scrollbar-thumb .SideNav ::-webkit-scrollbar-thumb
background-color rgba(255, 255, 255, 0.3) background-color rgba(255, 255, 255, 0.3)

View File

@@ -24,7 +24,7 @@ export const DEFAULT_CONFIG = {
amaEnabled: true, amaEnabled: true,
hotkey: { hotkey: {
toggleMain: OSX ? 'Command + Alt + L' : 'Super + Alt + E', toggleMain: OSX ? 'Command + Alt + L' : 'Super + Alt + E',
toggleMode: OSX ? 'Command + M' : 'Ctrl + M' toggleMode: OSX ? 'Command + Option + M' : 'Ctrl + M'
}, },
ui: { ui: {
language: 'en', language: 'en',
@@ -65,7 +65,8 @@ export const DEFAULT_CONFIG = {
smartArrows: false, smartArrows: false,
allowCustomCSS: false, allowCustomCSS: false,
customCSS: '', customCSS: '',
sanitize: 'STRICT' // 'STRICT', 'ALLOW_STYLES', 'NONE' sanitize: 'STRICT', // 'STRICT', 'ALLOW_STYLES', 'NONE'
lineThroughCheckbox: true
}, },
blog: { blog: {
type: 'wordpress', // Available value: wordpress, add more types in the future plz type: 'wordpress', // Available value: wordpress, add more types in the future plz
@@ -147,6 +148,8 @@ function set (updates) {
document.body.setAttribute('data-theme', 'solarized-dark') document.body.setAttribute('data-theme', 'solarized-dark')
} else if (newConfig.ui.theme === 'monokai') { } else if (newConfig.ui.theme === 'monokai') {
document.body.setAttribute('data-theme', 'monokai') document.body.setAttribute('data-theme', 'monokai')
} else if (newConfig.ui.theme === 'dracula') {
document.body.setAttribute('data-theme', 'dracula')
} else { } else {
document.body.setAttribute('data-theme', 'default') document.body.setAttribute('data-theme', 'default')
} }
@@ -195,6 +198,7 @@ function rewriteHotkey (config) {
const keys = [...Object.keys(config.hotkey)] const keys = [...Object.keys(config.hotkey)]
keys.forEach(key => { keys.forEach(key => {
config.hotkey[key] = config.hotkey[key].replace(/Cmd/g, 'Command') config.hotkey[key] = config.hotkey[key].replace(/Cmd/g, 'Command')
config.hotkey[key] = config.hotkey[key].replace(/Opt/g, 'Alt')
}) })
return config return config
} }

View File

@@ -11,6 +11,118 @@ import i18n from 'browser/lib/i18n'
const STORAGE_FOLDER_PLACEHOLDER = ':storage' const STORAGE_FOLDER_PLACEHOLDER = ':storage'
const DESTINATION_FOLDER = 'attachments' const DESTINATION_FOLDER = 'attachments'
const PATH_SEPARATORS = escapeStringRegexp(path.posix.sep) + escapeStringRegexp(path.win32.sep) const PATH_SEPARATORS = escapeStringRegexp(path.posix.sep) + escapeStringRegexp(path.win32.sep)
/**
* @description
* Create a Image element to get the real size of image.
* @param {File} file the File object dropped.
* @returns {Promise<Image>} Image element created
*/
function getImage (file) {
return new Promise((resolve) => {
const reader = new FileReader()
const img = new Image()
img.onload = () => resolve(img)
reader.onload = e => {
img.src = e.target.result
}
reader.readAsDataURL(file)
})
}
/**
* @description
* Get the orientation info from iamges's EXIF data.
* case 1: The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side.
* case 2: The 0th row is at the visual top of the image, and the 0th column is the visual right-hand side.
* case 3: The 0th row is at the visual bottom of the image, and the 0th column is the visual right-hand side.
* case 4: The 0th row is at the visual bottom of the image, and the 0th column is the visual left-hand side.
* case 5: The 0th row is the visual left-hand side of the image, and the 0th column is the visual top.
* case 6: The 0th row is the visual right-hand side of the image, and the 0th column is the visual top.
* case 7: The 0th row is the visual right-hand side of the image, and the 0th column is the visual bottom.
* case 8: The 0th row is the visual left-hand side of the image, and the 0th column is the visual bottom.
* Other: reserved
* ref: http://sylvana.net/jpegcrop/exif_orientation.html
* @param {File} file the File object dropped.
* @returns {Promise<Number>} Orientation info
*/
function getOrientation (file) {
const getData = arrayBuffer => {
const view = new DataView(arrayBuffer)
// Not start with SOI(Start of image) Marker return fail value
if (view.getUint16(0, false) !== 0xFFD8) return -2
const length = view.byteLength
let offset = 2
while (offset < length) {
const marker = view.getUint16(offset, false)
offset += 2
// Loop and seed for APP1 Marker
if (marker === 0xFFE1) {
// return fail value if it isn't EXIF data
if (view.getUint32(offset += 2, false) !== 0x45786966) {
return -1
}
// Read TIFF header,
// First 2bytes defines byte align of TIFF data.
// If it is 0x4949="II", it means "Intel" type byte align.
// If it is 0x4d4d="MM", it means "Motorola" type byte align
const little = view.getUint16(offset += 6, false) === 0x4949
offset += view.getUint32(offset + 4, little)
const tags = view.getUint16(offset, little) // Get TAG number
offset += 2
for (let i = 0; i < tags; i++) {
// Loop to find Orientation TAG and return the value
if (view.getUint16(offset + (i * 12), little) === 0x0112) {
return view.getUint16(offset + (i * 12) + 8, little)
}
}
} else if ((marker & 0xFF00) !== 0xFF00) { // If not start with 0xFF, not a Marker
break
} else {
offset += view.getUint16(offset, false)
}
}
return -1
}
return new Promise((resolve) => {
const reader = new FileReader()
reader.onload = event => resolve(getData(event.target.result))
reader.readAsArrayBuffer(file.slice(0, 64 * 1024))
})
}
/**
* @description
* Rotate image file to correct direction.
* Create a canvas and draw the image with correct direction, then export to base64 format.
* @param {*} file the File object dropped.
* @return {String} Base64 encoded image.
*/
function fixRotate (file) {
return Promise.all([getImage(file), getOrientation(file)])
.then(([img, orientation]) => {
const canvas = document.createElement('canvas')
const ctx = canvas.getContext('2d')
if (orientation > 4 && orientation < 9) {
canvas.width = img.height
canvas.height = img.width
} else {
canvas.width = img.width
canvas.height = img.height
}
switch (orientation) {
case 2: ctx.transform(-1, 0, 0, 1, img.width, 0); break
case 3: ctx.transform(-1, 0, 0, -1, img.width, img.height); break
case 4: ctx.transform(1, 0, 0, -1, 0, img.height); break
case 5: ctx.transform(0, 1, 1, 0, 0, 0); break
case 6: ctx.transform(0, 1, -1, 0, img.height, 0); break
case 7: ctx.transform(0, -1, -1, 0, img.height, img.width); break
case 8: ctx.transform(0, -1, 1, 0, 0, img.width); break
default: break
}
ctx.drawImage(img, 0, 0)
return canvas.toDataURL()
})
}
/** /**
* @description * @description
@@ -38,26 +150,34 @@ function copyAttachment (sourceFilePath, storageKey, noteKey, useRandomName = tr
} }
try { try {
if (!fs.existsSync(sourceFilePath)) { const isBase64 = typeof sourceFilePath === 'object' && sourceFilePath.type === 'base64'
reject('source file does not exist') if (!fs.existsSync(sourceFilePath) && !isBase64) {
return reject('source file does not exist')
} }
const targetStorage = findStorage.findStorage(storageKey) const targetStorage = findStorage.findStorage(storageKey)
const inputFileStream = fs.createReadStream(sourceFilePath)
let destinationName let destinationName
if (useRandomName) { if (useRandomName) {
destinationName = `${uniqueSlug()}${path.extname(sourceFilePath)}` destinationName = `${uniqueSlug()}${path.extname(sourceFilePath.sourceFilePath || sourceFilePath)}`
} else { } else {
destinationName = path.basename(sourceFilePath) destinationName = path.basename(sourceFilePath.sourceFilePath || sourceFilePath)
} }
const destinationDir = path.join(targetStorage.path, DESTINATION_FOLDER, noteKey) const destinationDir = path.join(targetStorage.path, DESTINATION_FOLDER, noteKey)
createAttachmentDestinationFolder(targetStorage.path, noteKey) createAttachmentDestinationFolder(targetStorage.path, noteKey)
const outputFile = fs.createWriteStream(path.join(destinationDir, destinationName)) const outputFile = fs.createWriteStream(path.join(destinationDir, destinationName))
inputFileStream.pipe(outputFile)
inputFileStream.on('end', () => { if (isBase64) {
resolve(destinationName) const base64Data = sourceFilePath.data.replace(/^data:image\/\w+;base64,/, '')
}) const dataBuffer = new Buffer(base64Data, 'base64')
outputFile.write(dataBuffer, () => {
resolve(destinationName)
})
} else {
const inputFileStream = fs.createReadStream(sourceFilePath)
inputFileStream.pipe(outputFile)
inputFileStream.on('end', () => {
resolve(destinationName)
})
}
} catch (e) { } catch (e) {
return reject(e) return reject(e)
} }
@@ -137,10 +257,17 @@ function handleAttachmentDrop (codeEditor, storageKey, noteKey, dropEvent) {
const filePath = file.path const filePath = file.path
const originalFileName = path.basename(filePath) const originalFileName = path.basename(filePath)
const fileType = file['type'] const fileType = file['type']
const isImage = fileType.startsWith('image')
copyAttachment(filePath, storageKey, noteKey).then((fileName) => { let promise
const showPreview = fileType.startsWith('image') if (isImage) {
const imageMd = generateAttachmentMarkdown(originalFileName, path.join(STORAGE_FOLDER_PLACEHOLDER, noteKey, fileName), showPreview) promise = fixRotate(file).then(base64data => {
return copyAttachment({type: 'base64', data: base64data, sourceFilePath: filePath}, storageKey, noteKey)
})
} else {
promise = copyAttachment(filePath, storageKey, noteKey)
}
promise.then((fileName) => {
const imageMd = generateAttachmentMarkdown(originalFileName, path.join(STORAGE_FOLDER_PLACEHOLDER, noteKey, fileName), isImage)
codeEditor.insertAttachmentMd(imageMd) codeEditor.insertAttachmentMd(imageMd)
}) })
} }

View File

@@ -128,3 +128,29 @@ body[data-theme="monokai"]
.control-confirmButton .control-confirmButton
colorMonokaiPrimaryButton() colorMonokaiPrimaryButton()
body[data-theme="dracula"]
.root
modalDracula()
width 500px
height 270px
overflow hidden
position relative
.header
background-color transparent
border-color $ui-dark-borderColor
color $ui-dracula-text-color
.control-folder-label
color $ui-dracula-text-color
.control-folder-input
border 1px solid $ui-input--create-folder-modal
color white
.description
color $ui-inactive-text-color
.control-confirmButton
colorDraculaPrimaryButton()

View File

@@ -97,3 +97,20 @@ body[data-theme="monokai"]
.description .description
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root
background-color transparent
.header
color $ui-dracula-text-color
.control-button
border-color $ui-dracula-borderColor
color $ui-dracula-text-color
background-color transparent
&:focus
colorDraculaPrimaryButton()
.description
color $ui-dracula-text-color

View File

@@ -43,7 +43,7 @@ class Blog extends React.Component {
this.handleSettingError = (err) => { this.handleSettingError = (err) => {
this.setState({BlogAlert: { this.setState({BlogAlert: {
type: 'error', type: 'error',
message: err.message != null ? err.message : i18n.__('Error occurs!') message: err.message != null ? err.message : i18n.__('An error occurred!')
}}) }})
} }
this.oldBlog = this.state.config.blog this.oldBlog = this.state.config.blog
@@ -70,7 +70,7 @@ class Blog extends React.Component {
this.props.haveToSave({ this.props.haveToSave({
tab: 'Blog', tab: 'Blog',
type: 'warning', type: 'warning',
message: i18n.__('You have to save!') message: i18n.__('Unsaved Changes!')
}) })
} }
} }

View File

@@ -68,9 +68,9 @@
:global :global
.alert .alert
display inline-block display inline-block
position absolute position fixed
top 60px top 130px
right 15px right 100px
font-size 14px font-size 14px
.success .success
color #1EC38B color #1EC38B
@@ -127,7 +127,7 @@ colorDarkControl()
border-color $ui-dark-borderColor border-color $ui-dark-borderColor
background-color $ui-dark-backgroundColor background-color $ui-dark-backgroundColor
color $ui-dark-text-color color $ui-dark-text-color
colorSolarizedDarkControl() colorSolarizedDarkControl()
border none border none
background-color $ui-solarized-dark-button-backgroundColor background-color $ui-solarized-dark-button-backgroundColor
@@ -138,6 +138,10 @@ colorMonokaiControl()
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
colorDraculaControl()
border none
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
body[data-theme="dark"] body[data-theme="dark"]
.root .root
@@ -165,27 +169,27 @@ body[data-theme="dark"]
.group-section-control .group-section-control
select, .group-section-control-input select, .group-section-control-input
colorDarkControl() colorDarkControl()
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.root .root
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
.group-header .group-header
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
.group-header2 .group-header2
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
.group-section-control-input .group-section-control-input
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
.group-control .group-control
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
.group-control-leftButton .group-control-leftButton
colorDarkDefaultButton() colorDarkDefaultButton()
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
.group-control-rightButton .group-control-rightButton
colorSolarizedDarkPrimaryButton() colorSolarizedDarkPrimaryButton()
.group-hint .group-hint
@@ -200,19 +204,19 @@ body[data-theme="monokai"]
.group-header .group-header
color $ui-monokai-text-color color $ui-monokai-text-color
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
.group-header2 .group-header2
color $ui-monokai-text-color color $ui-monokai-text-color
.group-section-control-input .group-section-control-input
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
.group-control .group-control
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
.group-control-leftButton .group-control-leftButton
colorDarkDefaultButton() colorDarkDefaultButton()
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
.group-control-rightButton .group-control-rightButton
colorMonokaiPrimaryButton() colorMonokaiPrimaryButton()
.group-hint .group-hint
@@ -220,3 +224,30 @@ body[data-theme="monokai"]
.group-section-control .group-section-control
select, .group-section-control-input select, .group-section-control-input
colorMonokaiControl() colorMonokaiControl()
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
.group-header
color $ui-dracula-text-color
border-color $ui-dracula-borderColor
.group-header2
color $ui-dracula-text-color
.group-section-control-input
border-color $ui-dracula-borderColor
.group-control
border-color $ui-dracula-borderColor
.group-control-leftButton
colorDarkDefaultButton()
border-color $ui-dracula-borderColor
.group-control-rightButton
colorDraculaPrimaryButton()
.group-hint
colorDraculaControl()
.group-section-control
select, .group-section-control-input
colorDraculaControl()

View File

@@ -23,18 +23,18 @@ class Crowdfunding extends React.Component {
return ( return (
<div styleName='root'> <div styleName='root'>
<div styleName='header'>{i18n.__('Crowdfunding')}</div> <div styleName='header'>{i18n.__('Crowdfunding')}</div>
<p>{i18n.__('Dear everyone,')}</p> <p>{i18n.__('Dear Boostnote users,')}</p>
<br /> <br />
<p>{i18n.__('Thank you for using Boostnote!')}</p> <p>{i18n.__('Thank you for using Boostnote!')}</p>
<p>{i18n.__('Boostnote is used in about 200 different countries and regions by an awesome community of developers.')}</p> <p>{i18n.__('Boostnote is used in about 200 different countries and regions by an awesome community of developers.')}</p>
<br /> <br />
<p>{i18n.__('To continue supporting this growth, and to satisfy community expectations,')}</p> <p>{i18n.__('To support our growing userbase, and satisfy community expectations,')}</p>
<p>{i18n.__('we would like to invest more time and resources in this project.')}</p> <p>{i18n.__('we would like to invest more time and resources in this project.')}</p>
<br /> <br />
<p>{i18n.__('If you like this project and see its potential, you can help by supporting us on OpenCollective!')}</p> <p>{i18n.__('If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!')}</p>
<br /> <br />
<p>{i18n.__('Thanks,')}</p> <p>{i18n.__('Thanks,')}</p>
<p>{i18n.__('Boostnote maintainers')}</p> <p>{i18n.__('The Boostnote Team')}</p>
<br /> <br />
<button styleName='cf-link'> <button styleName='cf-link'>
<a href='https://opencollective.com/boostnoteio' onClick={(e) => this.handleLinkClick(e)}>{i18n.__('Support via OpenCollective')}</a> <a href='https://opencollective.com/boostnoteio' onClick={(e) => this.handleLinkClick(e)}>{i18n.__('Support via OpenCollective')}</a>

View File

@@ -29,7 +29,7 @@ p
body[data-theme="dark"] body[data-theme="dark"]
p p
color $ui-dark-text-color color $ui-dark-text-color
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.root .root
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
@@ -41,3 +41,9 @@ body[data-theme="monokai"]
color $ui-monokai-text-color color $ui-monokai-text-color
p p
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
p
color $ui-dracula-text-color

View File

@@ -2,6 +2,7 @@
height 35px height 35px
box-sizing border-box box-sizing border-box
padding 2.5px 15px padding 2.5px 15px
display flex
&:hover &:hover
background-color darken(white, 3%) background-color darken(white, 3%)
@@ -18,7 +19,10 @@
border-left solid 2px transparent border-left solid 2px transparent
padding 0 10px padding 0 10px
line-height 30px line-height 30px
float left flex 1
white-space nowrap
text-overflow ellipsis
overflow hidden
.folderItem-left-danger .folderItem-left-danger
color $danger-color color $danger-color
font-weight bold font-weight bold
@@ -52,7 +56,8 @@
outline none outline none
.folderItem-right .folderItem-right
float right -webkit-box-flex: 1
white-space nowrap
.folderItem-right-button .folderItem-right-button
vertical-align middle vertical-align middle
@@ -149,3 +154,26 @@ body[data-theme="monokai"]
.folderItem-right-dangerButton .folderItem-right-dangerButton
colorMonokaiPrimaryButton() colorMonokaiPrimaryButton()
body[data-theme="dracula"]
.folderItem
&:hover
background-color $ui-dracula-button-backgroundColor
.folderItem-left-danger
color $danger-color
.folderItem-left-key
color $ui-dark-inactive-text-color
.folderItem-left-colorButton
colorDraculaPrimaryButton()
.folderItem-right-button
colorDraculaPrimaryButton()
.folderItem-right-confirmButton
colorDraculaPrimaryButton()
.folderItem-right-dangerButton
colorDraculaPrimaryButton()

View File

@@ -30,7 +30,7 @@ class HotkeyTab extends React.Component {
this.handleSettingError = (err) => { this.handleSettingError = (err) => {
this.setState({keymapAlert: { this.setState({keymapAlert: {
type: 'error', type: 'error',
message: err.message != null ? err.message : i18n.__('Error occurs!') message: err.message != null ? err.message : i18n.__('An error occurred!')
}}) }})
} }
this.oldHotkey = this.state.config.hotkey this.oldHotkey = this.state.config.hotkey
@@ -79,7 +79,7 @@ class HotkeyTab extends React.Component {
this.props.haveToSave({ this.props.haveToSave({
tab: 'Hotkey', tab: 'Hotkey',
type: 'warning', type: 'warning',
message: i18n.__('You have to save!') message: i18n.__('Unsaved Changes!')
}) })
} }
} }
@@ -117,7 +117,7 @@ class HotkeyTab extends React.Component {
</div> </div>
</div> </div>
<div styleName='group-section'> <div styleName='group-section'>
<div styleName='group-section-label'>{i18n.__('Toggle editor mode')}</div> <div styleName='group-section-label'>{i18n.__('Toggle Editor Mode')}</div>
<div styleName='group-section-control'> <div styleName='group-section-control'>
<input styleName='group-section-control-input' <input styleName='group-section-control-input'
onChange={(e) => this.handleHotkeyChange(e)} onChange={(e) => this.handleHotkeyChange(e)}

View File

@@ -60,7 +60,7 @@
body[data-theme="dark"] body[data-theme="dark"]
.root .root
color alpha($tab--dark-text-color, 80%) color alpha($tab--dark-text-color, 80%)
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.root .root
@@ -75,3 +75,10 @@ body[data-theme="monokai"]
.list .list
a a
color $ui-monokai-active-color color $ui-monokai-active-color
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
.list
a
color $ui-dracula-active-color

View File

@@ -90,7 +90,7 @@ body[data-theme="dark"]
background-color $dark-primary-button-background--active background-color $dark-primary-button-background--active
&:hover &:hover
color white color white
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.root .root
@@ -139,3 +139,27 @@ body[data-theme="monokai"]
background-color $ui-monokai-button--active-backgroundColor background-color $ui-monokai-button--active-backgroundColor
&:hover &:hover
color white color white
body[data-theme="dracula"]
.root
background-color transparent
.top-bar
background-color transparent
border-color $ui-dracula-borderColor
p
color $ui-dracula-text-color
.nav
background-color transparent
border-color $ui-dracula-borderColor
.nav-button
background-color transparent
color $ui-dracula-text-color
&:hover
color $ui-dracula-text-color
.nav-button--active
@extend .nav-button
color $ui-dracula-button--active-color
background-color $ui-dracula-button--active-backgroundColor
&:hover
color #f8f8f2

View File

@@ -55,7 +55,11 @@ class SnippetList extends React.Component {
defineSnippetStyleName (snippet) { defineSnippetStyleName (snippet) {
const { currentSnippet } = this.props const { currentSnippet } = this.props
if (currentSnippet == null) return
if (currentSnippet == null) {
return 'snippet-item'
}
if (currentSnippet.id === snippet.id) { if (currentSnippet.id === snippet.id) {
return 'snippet-item-selected' return 'snippet-item-selected'
} else { } else {

View File

@@ -6,6 +6,9 @@ import i18n from 'browser/lib/i18n'
import dataApi from 'browser/main/lib/dataApi' import dataApi from 'browser/main/lib/dataApi'
import SnippetList from './SnippetList' import SnippetList from './SnippetList'
import eventEmitter from 'browser/main/lib/eventEmitter' import eventEmitter from 'browser/main/lib/eventEmitter'
import copy from 'copy-to-clipboard'
const path = require('path')
class SnippetTab extends React.Component { class SnippetTab extends React.Component {
constructor (props) { constructor (props) {
@@ -16,6 +19,17 @@ class SnippetTab extends React.Component {
this.changeDelay = null this.changeDelay = null
} }
notify (title, options) {
if (global.process.platform === 'win32') {
options.icon = path.join(
'file://',
global.__dirname,
'../../resources/app.png'
)
}
return new window.Notification(title, options)
}
handleSnippetNameOrPrefixChange () { handleSnippetNameOrPrefixChange () {
clearTimeout(this.changeDelay) clearTimeout(this.changeDelay)
this.changeDelay = setTimeout(() => { this.changeDelay = setTimeout(() => {
@@ -27,12 +41,14 @@ class SnippetTab extends React.Component {
handleSnippetSelect (snippet) { handleSnippetSelect (snippet) {
const { currentSnippet } = this.state const { currentSnippet } = this.state
if (currentSnippet === null || currentSnippet.id !== snippet.id) { if (snippet !== null) {
dataApi.fetchSnippet(snippet.id).then(changedSnippet => { if (currentSnippet === null || currentSnippet.id !== snippet.id) {
// notify the snippet editor to load the content of the new snippet dataApi.fetchSnippet(snippet.id).then(changedSnippet => {
this.snippetEditor.onSnippetChanged(changedSnippet) // notify the snippet editor to load the content of the new snippet
this.setState({currentSnippet: changedSnippet}) this.snippetEditor.onSnippetChanged(changedSnippet)
}) this.setState({currentSnippet: changedSnippet})
})
}
} }
} }
@@ -54,6 +70,17 @@ class SnippetTab extends React.Component {
} }
} }
handleCopySnippet (e) {
const showCopyNotification = this.props.config.ui.showCopyNotification
copy(this.state.currentSnippet.content)
if (showCopyNotification) {
this.notify('Saved to Clipboard!', {
body: 'Paste it wherever you want!',
silent: true
})
}
}
render () { render () {
const { config, storageKey } = this.props const { config, storageKey } = this.props
const { currentSnippet } = this.state const { currentSnippet } = this.state
@@ -70,6 +97,13 @@ class SnippetTab extends React.Component {
onSnippetDeleted={this.handleDeleteSnippet.bind(this)} onSnippetDeleted={this.handleDeleteSnippet.bind(this)}
currentSnippet={currentSnippet} /> currentSnippet={currentSnippet} />
<div styleName='snippet-detail' style={{visibility: currentSnippet ? 'visible' : 'hidden'}}> <div styleName='snippet-detail' style={{visibility: currentSnippet ? 'visible' : 'hidden'}}>
<div styleName='group-section'>
<div styleName='group-section-control'>
<button styleName='group-control-rightButton'
onClick={e => this.handleCopySnippet(e)}>{i18n.__('Copy')}
</button>
</div>
</div>
<div styleName='group-section'> <div styleName='group-section'>
<div styleName='group-section-label'>{i18n.__('Snippet name')}</div> <div styleName='group-section-label'>{i18n.__('Snippet name')}</div>
<div styleName='group-section-control'> <div styleName='group-section-control'>

View File

@@ -196,3 +196,19 @@ body[data-theme="monokai"]
color white color white
.group-control-button .group-control-button
colorMonokaiPrimaryButton() colorMonokaiPrimaryButton()
body[data-theme="dracula"]
.snippets
background $ui-dracula-backgroundColor
.snippet-item
color #f8f8f2
&::after
background $ui-dracula-borderColor
&:hover
background darken($ui-dracula-backgroundColor, 5)
.snippet-item-selected
background darken($ui-dracula-backgroundColor, 5)
.snippet-detail
color #f8f8f2
.group-control-button
colorDraculaPrimaryButton()

View File

@@ -9,13 +9,17 @@
box-sizing border-box box-sizing border-box
border-bottom $default-border border-bottom $default-border
margin-bottom 5px margin-bottom 5px
display flex
.header-label .header-label
float left
cursor pointer cursor pointer
&:hover &:hover
.header-label-editButton .header-label-editButton
opacity 1 opacity 1
flex 1
white-space nowrap
text-overflow ellipsis
overflow hidden
.header-label-path .header-label-path
color $ui-inactive-text-color color $ui-inactive-text-color
@@ -38,8 +42,8 @@
outline none outline none
.header-control .header-control
float right -webkit-box-flex: 1
white-space nowrap
.header-control-button .header-control-button
width 30px width 30px
height 25px height 25px

View File

@@ -70,7 +70,7 @@ class StoragesTab extends React.Component {
}) })
return ( return (
<div styleName='list'> <div styleName='list'>
<div styleName='header'>{i18n.__('Storages')}</div> <div styleName='header'>{i18n.__('Storage Locations')}</div>
{storageList.length > 0 {storageList.length > 0
? storageList ? storageList
: <div styleName='list-empty'>{i18n.__('No storage found.')}</div> : <div styleName='list-empty'>{i18n.__('No storage found.')}</div>

View File

@@ -158,7 +158,7 @@ body[data-theme="dark"]
.addStorage-body-control-cancelButton .addStorage-body-control-cancelButton
colorDarkDefaultButton() colorDarkDefaultButton()
border-color $ui-dark-borderColor border-color $ui-dark-borderColor
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
@@ -236,3 +236,41 @@ body[data-theme="monokai"]
.addStorage-body-control-cancelButton .addStorage-body-control-cancelButton
colorDarkDefaultButton() colorDarkDefaultButton()
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
body[data-theme="dracula"]
.root
color $ui-dracula-text-color
.folderList-item
border-bottom $ui-dracula-borderColor
.folderList-empty
color $ui-dracula-text-color
.list-empty
color $ui-dracula-text-color
.list-control-addStorageButton
border-color $ui-dracula-button-backgroundColor
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
.addStorage-header
color $ui-dracula-text-color
border-color $ui-dracula-borderColor
.addStorage-body-section-name-input
border-color $$ui-dracula-borderColor
.addStorage-body-section-type-description
color $ui-dracula-text-color
.addStorage-body-section-path-button
colorPrimaryButton()
.addStorage-body-control
border-color $ui-dracula-borderColor
.addStorage-body-control-createButton
colorDarkPrimaryButton()
.addStorage-body-control-cancelButton
colorDarkDefaultButton()
border-color $ui-dracula-borderColor

View File

@@ -40,7 +40,7 @@ class UiTab extends React.Component {
this.handleSettingError = (err) => { this.handleSettingError = (err) => {
this.setState({UiAlert: { this.setState({UiAlert: {
type: 'error', type: 'error',
message: err.message != null ? err.message : i18n.__('Error occurs!') message: err.message != null ? err.message : i18n.__('An error occurred!')
}}) }})
} }
ipc.addListener('APP_SETTING_DONE', this.handleSettingDone) ipc.addListener('APP_SETTING_DONE', this.handleSettingDone)
@@ -107,6 +107,7 @@ class UiTab extends React.Component {
smartArrows: this.refs.previewSmartArrows.checked, smartArrows: this.refs.previewSmartArrows.checked,
sanitize: this.refs.previewSanitize.value, sanitize: this.refs.previewSanitize.value,
allowCustomCSS: this.refs.previewAllowCustomCSS.checked, allowCustomCSS: this.refs.previewAllowCustomCSS.checked,
lineThroughCheckbox: this.refs.lineThroughCheckbox.checked,
customCSS: this.customCSSCM.getCodeMirror().getValue() customCSS: this.customCSSCM.getCodeMirror().getValue()
} }
} }
@@ -125,7 +126,7 @@ class UiTab extends React.Component {
this.props.haveToSave({ this.props.haveToSave({
tab: 'UI', tab: 'UI',
type: 'warning', type: 'warning',
message: i18n.__('You have to save!') message: i18n.__('Unsaved Changes!')
}) })
} }
}) })
@@ -187,6 +188,7 @@ class UiTab extends React.Component {
<option value='white'>{i18n.__('White')}</option> <option value='white'>{i18n.__('White')}</option>
<option value='solarized-dark'>{i18n.__('Solarized Dark')}</option> <option value='solarized-dark'>{i18n.__('Solarized Dark')}</option>
<option value='monokai'>{i18n.__('Monokai')}</option> <option value='monokai'>{i18n.__('Monokai')}</option>
<option value='dracula'>{i18n.__('Dracula')}</option>
<option value='dark'>{i18n.__('Dark')}</option> <option value='dark'>{i18n.__('Dark')}</option>
</select> </select>
</div> </div>
@@ -498,7 +500,7 @@ class UiTab extends React.Component {
</div> </div>
</div> </div>
<div styleName='group-section'> <div styleName='group-section'>
<div styleName='group-section-label'>{i18n.__('Code block Theme')}</div> <div styleName='group-section-label'>{i18n.__('Code Block Theme')}</div>
<div styleName='group-section-control'> <div styleName='group-section-control'>
<select value={config.preview.codeBlockTheme} <select value={config.preview.codeBlockTheme}
ref='previewCodeBlockTheme' ref='previewCodeBlockTheme'
@@ -512,6 +514,16 @@ class UiTab extends React.Component {
</select> </select>
</div> </div>
</div> </div>
<div styleName='group-checkBoxSection'>
<label>
<input onChange={(e) => this.handleUIChange(e)}
checked={this.state.config.preview.lineThroughCheckbox}
ref='lineThroughCheckbox'
type='checkbox'
/>&nbsp;
{i18n.__('Allow line through checkbox')}
</label>
</div>
<div styleName='group-checkBoxSection'> <div styleName='group-checkBoxSection'>
<label> <label>
<input onChange={(e) => this.handleUIChange(e)} <input onChange={(e) => this.handleUIChange(e)}

View File

@@ -14,18 +14,18 @@
list-style none list-style none
padding 0 padding 0
margin 0 margin 0
border-radius 4px border-radius 4px
margin .2em 0 0 margin .5rem 0 0
background-color $ui-noteList-backgroundColor background-color $ui-noteList-backgroundColor
border 1px solid rgba(0,0,0,.3) border 1px solid rgba(0,0,0,.3)
box-shadow .05em .2em .6em rgba(0,0,0,.2) box-shadow .05em .2em .6em rgba(0,0,0,.2)
text-shadow none text-shadow none
&:empty, &:empty,
&[hidden] &[hidden]
display none display none
&:before &:before
content "" content ""
position absolute position absolute
@@ -39,12 +39,12 @@
border-bottom 0 border-bottom 0
-webkit-transform rotate(45deg) -webkit-transform rotate(45deg)
transform rotate(45deg) transform rotate(45deg)
li li
position relative position relative
padding 6px 18px 6px 10px padding 6px 18px 6px 10px
cursor pointer cursor pointer
li[aria-selected="true"] li[aria-selected="true"]
background-color alpha($ui-button--active-backgroundColor, 40%) background-color alpha($ui-button--active-backgroundColor, 40%)
color $ui-text-color color $ui-text-color
@@ -53,15 +53,15 @@ body[data-theme="dark"]
.TagSelect .TagSelect
.react-autosuggest__input .react-autosuggest__input
color $ui-dark-text-color color $ui-dark-text-color
ul ul
border-color $ui-dark-borderColor border-color $ui-dark-borderColor
background-color $ui-dark-noteList-backgroundColor background-color $ui-dark-noteList-backgroundColor
color $ui-dark-text-color color $ui-dark-text-color
&:before &:before
background-color $ui-dark-noteList-backgroundColor background-color $ui-dark-noteList-backgroundColor
li[aria-selected="true"] li[aria-selected="true"]
background-color $ui-dark-button--active-backgroundColor background-color $ui-dark-button--active-backgroundColor
color $ui-dark-text-color color $ui-dark-text-color
@@ -70,32 +70,49 @@ body[data-theme="monokai"]
.TagSelect .TagSelect
.react-autosuggest__input .react-autosuggest__input
color $ui-monokai-text-color color $ui-monokai-text-color
ul ul
border-color $ui-monokai-borderColor border-color $ui-monokai-borderColor
background-color $ui-monokai-noteList-backgroundColor background-color $ui-monokai-noteList-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
&:before &:before
background-color $ui-dark-noteList-backgroundColor background-color $ui-dark-noteList-backgroundColor
li[aria-selected="true"] li[aria-selected="true"]
background-color $ui-monokai-button-backgroundColor background-color $ui-monokai-button-backgroundColor
color $ui-monokai-text-color color $ui-monokai-text-color
body[data-theme="dracula"]
.TagSelect
.react-autosuggest__input
color $ui-dracula-text-color
ul
border-color $ui-dracula-borderColor
background-color $ui-dracula-noteList-backgroundColor
color $ui-dracula-text-color
&:before
background-color $ui-dark-noteList-backgroundColor
li[aria-selected="true"]
background-color $ui-dracula-button-backgroundColor
color $ui-dracula-text-color
body[data-theme="solarized-dark"] body[data-theme="solarized-dark"]
.TagSelect .TagSelect
.react-autosuggest__input .react-autosuggest__input
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
ul ul
border-color $ui-solarized-dark-borderColor border-color $ui-solarized-dark-borderColor
background-color $ui-solarized-dark-noteList-backgroundColor background-color $ui-solarized-dark-noteList-backgroundColor
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
&:before &:before
background-color $ui-solarized-dark-noteList-backgroundColor background-color $ui-solarized-dark-noteList-backgroundColor
li[aria-selected="true"] li[aria-selected="true"]
background-color $ui-dark-button--active-backgroundColor background-color $ui-dark-button--active-backgroundColor
color $ui-solarized-dark-text-color color $ui-solarized-dark-text-color
@@ -104,6 +121,6 @@ body[data-theme="white"]
.TagSelect .TagSelect
ul ul
background-color $ui-white-noteList-backgroundColor background-color $ui-white-noteList-backgroundColor
li[aria-selected="true"] li[aria-selected="true"]
background-color $ui-button--active-backgroundColor background-color $ui-button--active-backgroundColor

View File

@@ -128,6 +128,16 @@ colorMonokaiPrimaryButton()
&:active:hover &:active:hover
background-color $dark-primary-button-background--active background-color $dark-primary-button-background--active
colorDraculaPrimaryButton()
color $ui-dracula-text-color
background-color $ui-dracula-button-backgroundColor
border none
&:hover
background-color $ui-dracula-button--active-backgroundColor
&:active
&:active:hover
background-color $ui-dracula-button--active-backgroundColor
// Danger button(Brand color) // Danger button(Brand color)
$danger-button-background = #c9302c $danger-button-background = #c9302c
@@ -369,7 +379,7 @@ $ui-monokai-active-color = #f92672
$ui-monokai-borderColor = #373831 $ui-monokai-borderColor = #373831
$ui-monokai-tag-backgroundColor = #f92672 $ui-monokai-tag-backgroundColor = #373831
$ui-monokai-button-backgroundColor = #373831 $ui-monokai-button-backgroundColor = #373831
$ui-monokai-button--active-color = white $ui-monokai-button--active-color = white
@@ -383,4 +393,30 @@ modalMonokai()
width 100% width 100%
background-color $ui-monokai-backgroundColor background-color $ui-monokai-backgroundColor
overflow hidden overflow hidden
border-radius $modal-border-radius
/******* Dracula theme ********/
$ui-dracula-backgroundColor = #282a36
$ui-dracula-noteList-backgroundColor = #282a36
$ui-dracula-noteDetail-backgroundColor = #282a36
$ui-dracula-text-color = #f8f8f2
$ui-dracula-active-color = #bd93f9
$ui-dracula-borderColor = #44475a
$ui-dracula-tag-backgroundColor = #8be9fd
$ui-dracula-button-backgroundColor = #44475a
$ui-dracula-button--active-color = #f8f8f2
$ui-dracula-button--active-backgroundColor = #bd93f9
$ui-dracula-button--hover-backgroundColor = lighten($ui-dracula-backgroundColor, 10%)
$ui-dracula-button--focus-borderColor = lighten(#44475a, 25%)
modalDracula()
position relative
z-index $modal-z-index
width 100%
background-color $ui-dracula-backgroundColor
overflow hidden
border-radius $modal-border-radius border-radius $modal-border-radius

View File

@@ -1,18 +1,18 @@
# Contributing to Boostnote (English) # Contributing to Boostnote (English)
### When you open an issue of a bug report ### When you open an issue or a bug report
There are no issue template. But there is a request. There is no issue template, but there is a request.
**Please paste screenshots of Boostnote with developer tool open** **Please paste screenshots of Boostnote with the developer tool open**
Thank you for your help in advance. Thank you in advance for your help.
### About copyright of Pull Request ### Concerning Copyright
If you make a pull request, It means you agree to transfer the copyright of the code changes to BoostIO. By making a pull request you agree to transfer ownership of your code to BoostIO.
It doesn't mean Boostnote will become a paid app. If we want to earn some money, We will try other way, which is some kind of cloud storage, Mobile app integration or some SPECIAL features. This doesn't mean Boostnote will become a paid app. If we want to earn money, we will find other way. Potentially some kind of cloud storage, mobile app integration, or some premium features.
Because GPL v3 is too strict to be compatible with any other License, We thought this is needed to replace the license with much freer one(like BSD, MIT) somewhen. GPL v3 is too strict to be compatible with another license, so we thought it might be necessary to replace the license with a more open one (like BSD, MIT) eventually.
--- ---

View File

@@ -0,0 +1,44 @@
.cm-table-row-even { background-color: rgb(242, 242, 242); }
.cm-s-3024-day.CodeMirror .cm-table-row-even { background-color: rgb(238, 237, 237); }
.cm-s-3024-night.CodeMirror .cm-table-row-even { background-color: rgb(30, 24, 21); }
.cm-s-abcdef.CodeMirror .cm-table-row-even { background-color: rgb(36, 39, 37); }
.cm-s-ambiance.CodeMirror .cm-table-row-even { background-color: rgb(242, 242, 242); }
.cm-s-base16-dark.CodeMirror .cm-table-row-even { background-color: rgb(41, 41, 41); }
.cm-s-base16-light.CodeMirror .cm-table-row-even { background-color: rgb(234, 234, 234); }
.cm-s-bespin.CodeMirror .cm-table-row-even { background-color: rgb(52, 45, 40); }
.cm-s-blackboard.CodeMirror .cm-table-row-even { background-color: rgb(36, 39, 55); }
.cm-s-cobalt.CodeMirror .cm-table-row-even { background-color: rgb(26, 56, 83); }
.cm-s-colorforth.CodeMirror .cm-table-row-even { background-color: rgb(25, 25, 25); }
.cm-s-darcula.CodeMirror .cm-table-row-even { background-color: rgb(56, 57, 59); }
.cm-s-dracula.CodeMirror .cm-table-row-even { background-color: rgb(61, 63, 73); }
.cm-s-duotone-dark.CodeMirror .cm-table-row-even { background-color: rgb(49, 45, 60); }
.cm-s-duotone-light.CodeMirror .cm-table-row-even { background-color: rgb(246, 243, 238); }
.cm-s-erlang-dark.CodeMirror .cm-table-row-even { background-color: rgb(26, 56, 83); }
.cm-s-gruvbox-dark.CodeMirror .cm-table-row-even { background-color: rgb(55, 53, 51); }
.cm-s-hopscotch.CodeMirror .cm-table-row-even { background-color: rgb(66, 58, 65); }
.cm-s-isotope.CodeMirror .cm-table-row-even { background-color: rgb(22, 22, 22); }
.cm-s-lesser-dark.CodeMirror .cm-table-row-even { background-color: rgb(58, 58, 57); }
.cm-s-liquibyte.CodeMirror .cm-table-row-even { background-color: rgb(26, 26, 26); }
.cm-s-lucario.CodeMirror .cm-table-row-even { background-color: rgb(64, 81, 96); }
.cm-s-material.CodeMirror .cm-table-row-even { background-color: rgb(58, 69, 74); }
.cm-s-mbo.CodeMirror .cm-table-row-even { background-color: rgb(65, 65, 63); }
.cm-s-midnight.CodeMirror .cm-table-row-even { background-color: rgb(34, 46, 63); }
.cm-s-monokai.CodeMirror .cm-table-row-even { background-color: rgb(60, 61, 55); }
.cm-s-neo.CodeMirror .cm-table-row-even { background-color: rgb(245, 245, 245); }
.cm-s-night.CodeMirror .cm-table-row-even { background-color: rgb(34, 25, 53); }
.cm-s-oceanic-next.CodeMirror .cm-table-row-even { background-color: rgb(68, 83, 89); }
.cm-s-paraiso-dark.CodeMirror .cm-table-row-even { background-color: rgb(61, 45, 59); }
.cm-s-paraiso-light.CodeMirror .cm-table-row-even { background-color: rgb(223, 224, 211); }
.cm-s-pastel-on-dark.CodeMirror .cm-table-row-even { background-color: rgb(54, 51, 49); }
.cm-s-railscasts.CodeMirror .cm-table-row-even { background-color: rgb(63, 63, 62); }
.cm-s-rubyblue.CodeMirror .cm-table-row-even { background-color: rgb(41, 58, 73); }
.cm-s-seti.CodeMirror .cm-table-row-even { background-color: rgb(40, 42, 43); }
.cm-s-shadowfox.CodeMirror .cm-table-row-even { background-color: rgb(56, 56, 59); }
.cm-s-solarized.CodeMirror .cm-table-row-even { background-color: rgb(242, 242, 242); }
.cm-s-the-matrix.CodeMirror .cm-table-row-even { background-color: rgb(0, 26, 0); }
.cm-s-tomorrow-night-bright.CodeMirror .cm-table-row-even { background-color: rgb(23, 23, 23); }
.cm-s-tomorrow-night-eighties.CodeMirror .cm-table-row-even { background-color: rgb(20, 20, 20); }
.cm-s-twilight.CodeMirror .cm-table-row-even { background-color: rgb(43, 43, 43); }
.cm-s-vibrant-ink.CodeMirror .cm-table-row-even { background-color: rgb(26, 26, 26); }
.cm-s-xq-dark.CodeMirror .cm-table-row-even { background-color: rgb(34, 25, 53); }
.cm-s-yeti.CodeMirror .cm-table-row-even { background-color: rgb(235, 232, 230); }

View File

@@ -0,0 +1,71 @@
(function(mod) {
if (typeof exports == "object" && typeof module == "object") // CommonJS
mod(require("../codemirror/lib/codemirror"), require("../codemirror/mode/gfm/gfm"))
else if (typeof define == "function" && define.amd) // AMD
define(["../codemirror/lib/codemirror", "../codemirror/mode/gfm/gfm"], mod)
else // Plain browser env
mod(CodeMirror)
})(function(CodeMirror) {
'use strict'
CodeMirror.defineMode('bfm', function(config, gfmConfig) {
const bfmOverlay = {
startState() {
return {
inTable: false,
rowIndex: 0
}
},
copyState(s) {
return {
inTable: s.inTable,
rowIndex: s.rowIndex
}
},
token(stream, state) {
state.combineTokens = true
if (state.inTable) {
if (stream.match(/^\|/)) {
++state.rowIndex
stream.skipToEnd()
if (state.rowIndex === 1) {
return 'table table-separator'
} else if (state.rowIndex % 2 === 0) {
return 'table table-row table-row-even'
} else {
return 'table table-row table-row-odd'
}
} else {
state.inTable = false
stream.skipToEnd()
return null
}
} else if (stream.match(/^\|/)) {
state.inTable = true
state.rowIndex = 0
stream.skipToEnd()
return 'table table-header'
}
stream.skipToEnd()
return null
}
}
gfmConfig.name = 'gfm'
return CodeMirror.overlayMode(CodeMirror.getMode(config, gfmConfig), bfmOverlay)
})
CodeMirror.defineMIME('text/x-bfm', 'bfm')
CodeMirror.modeInfo.push({
name: "Boost Flavored Markdown",
mime: "text/x-bfm",
mode: "bfm"
})
})

View File

@@ -1,3 +1,4 @@
const fs = require('fs')
const path = require('path') const path = require('path')
const ChildProcess = require('child_process') const ChildProcess = require('child_process')
const packager = require('electron-packager') const packager = require('electron-packager')
@@ -284,5 +285,48 @@ module.exports = function (grunt) {
} }
}) })
grunt.registerTask('bfm', function () {
const Color = require('color')
const parseCSS = require('css').parse
const root = path.join(__dirname, 'node_modules/codemirror/theme/')
const colors = fs.readdirSync(root).map(file => {
const css = parseCSS(fs.readFileSync(path.join(root, file), 'utf8'))
const rules = css.stylesheet.rules.filter(rule => rule.selectors && /\b\.CodeMirror$/.test(rule.selectors[0]))
if (rules.length === 1) {
let bgColor = Color('white')
let fgColor = Color('black')
rules[0].declarations.forEach(declaration => {
if (declaration.property === 'background-color' || declaration.property === 'background') {
bgColor = Color(declaration.value.split(' ')[0])
} else if (declaration.property === 'color') {
const value = /^(.*?)(?:\s*!important)?$/.exec(declaration.value)[1]
let match = /^rgba\((.*?),\s*1\)$/.exec(value)
if (match) {
fgColor = Color(`rgb(${match[1]})`)
} else {
fgColor = Color(value)
}
}
})
if (bgColor.isLight()) {
bgColor = bgColor.mix(fgColor, 0.05)
} else {
bgColor = bgColor.mix(fgColor, 0.1)
}
return `${rules[0].selectors[0]} .cm-table-row-even { background-color: ${bgColor.rgb().string()}; }`
}
}).filter(value => !!value)
const defaultBgColor = Color('white').mix(Color('black'), 0.05)
fs.writeFileSync(path.join(__dirname, 'extra_scripts/codemirror/mode/bfm/bfm.css'), [`.cm-table-row-even { background-color: ${defaultBgColor.rgb().string()}; }`, ...colors].join('\n'), 'utf8')
})
grunt.registerTask('default', ['build']) grunt.registerTask('default', ['build'])
} }

View File

@@ -10,6 +10,7 @@
<link rel="stylesheet" href="../node_modules/codemirror/lib/codemirror.css"> <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/katex/dist/katex.min.css">
<link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css"> <link rel="stylesheet" href="../node_modules/codemirror/addon/dialog/dialog.css">
<link rel="stylesheet" href="../extra_scripts/codemirror/mode/bfm/bfm.css">
<title>Boostnote</title> <title>Boostnote</title>
@@ -94,9 +95,13 @@
<script src="../node_modules/codemirror/keymap/vim.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/keymap/emacs.js"></script>
<script src="../node_modules/codemirror/addon/runmode/runmode.js"></script> <script src="../node_modules/codemirror/addon/runmode/runmode.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="../extra_scripts/boost/boostNewLineIndentContinueMarkdownList.js"></script> <script src="../extra_scripts/boost/boostNewLineIndentContinueMarkdownList.js"></script>
<script src="../extra_scripts/codemirror/addon/hyperlink/hyperlink.js"></script> <script src="../extra_scripts/codemirror/addon/hyperlink/hyperlink.js"></script>
<script src="../extra_scripts/codemirror/mode/bfm/bfm.js"></script>
<script src="../node_modules/codemirror/addon/edit/closebrackets.js"></script> <script src="../node_modules/codemirror/addon/edit/closebrackets.js"></script>
<script src="../node_modules/codemirror/addon/edit/matchbrackets.js"></script> <script src="../node_modules/codemirror/addon/edit/matchbrackets.js"></script>
@@ -120,7 +125,7 @@
<script> <script>
window._ = require('lodash') window._ = require('lodash')
</script> </script>
<script src="../node_modules/js-sequence-diagrams/fucknpm/sequence-diagram-min.js"></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/dist/react.min.js"></script>
<script src="../node_modules/react-dom/dist/react-dom.min.js"></script> <script src="../node_modules/react-dom/dist/react-dom.min.js"></script>

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Print", "Print": "Print",
"Your preferences for Boostnote": "Your preferences for Boostnote", "Your preferences for Boostnote": "Your preferences for Boostnote",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Add Storage Location", "Add Storage Location": "Add Storage Location",
"Add Folder": "Add Folder", "Add Folder": "Add Folder",
"Open Storage folder": "Open Storage folder", "Open Storage folder": "Open Storage folder",
@@ -55,7 +55,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Preview Font Size", "Preview Font Size": "Preview Font Size",
"Preview Font Family": "Preview Font Family", "Preview Font Family": "Preview Font Family",
"Code block Theme": "Code block Theme", "Code Block Theme": "Code Block Theme",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "You can choose to enable or disable this option.", "You can choose to enable or disable this option.": "You can choose to enable or disable this option.",
"Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Dear everyone,", "Dear Boostnote users,": "Dear Boostnote users,",
"Thank you for using Boostnote!": "Thank you for using Boostnote!", "Thank you for using Boostnote!": "Thank you for using Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.",
"To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", "To support our growing userbase, and satisfy community expectations,": "To support our growing userbase, and satisfy community expectations,",
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!",
"Thanks,": "Thanks,", "Thanks,": "Thanks,",
"Boostnote maintainers": "Boostnote maintainers", "The Boostnote Team": "The Boostnote Team",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Language", "Language": "Language",
"English": "English", "English": "English",
@@ -141,7 +141,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "You have to save!", "Unsaved Changes!": "Unsaved Changes!",
"Russian": "Russian", "Russian": "Russian",
"Command(⌘)": "Command(⌘)", "Command(⌘)": "Command(⌘)",
"Editor Rulers": "Editor Rulers", "Editor Rulers": "Editor Rulers",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Drucken", "Print": "Drucken",
"Your preferences for Boostnote": "Boostnote Einstellungen", "Your preferences for Boostnote": "Boostnote Einstellungen",
"Storages": "Speicherverwaltung", "Storage Locations": "Speicherverwaltung",
"Add Storage Location": "Speicherort hinzufügen", "Add Storage Location": "Speicherort hinzufügen",
"Add Folder": "Ordner hinzufügen", "Add Folder": "Ordner hinzufügen",
"Open Storage folder": "Speicherort öffnen", "Open Storage folder": "Speicherort öffnen",
@@ -55,7 +55,7 @@
"Preview": "Vorschau", "Preview": "Vorschau",
"Preview Font Size": "Vorschau Schriftgröße", "Preview Font Size": "Vorschau Schriftgröße",
"Preview Font Family": "Vorschau Schriftart", "Preview Font Family": "Vorschau Schriftart",
"Code block Theme": "Code-Block Theme", "Code Block Theme": "Code-Block Theme",
"Allow preview to scroll past the last line": "Vorschau das Scrollen über das Ende hinaus erlauben", "Allow preview to scroll past the last line": "Vorschau das Scrollen über das Ende hinaus erlauben",
"Show line numbers for preview code blocks": "Zeilennummern in Vorschau-Code-Blöcken anzeigen", "Show line numbers for preview code blocks": "Zeilennummern in Vorschau-Code-Blöcken anzeigen",
"LaTeX Inline Open Delimiter": "LaTeX Inline Beginn Kennzeichen", "LaTeX Inline Open Delimiter": "LaTeX Inline Beginn Kennzeichen",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "Du kannst wählen, ob du diese Option aktivieren oder daektivieren möchtest.", "You can choose to enable or disable this option.": "Du kannst wählen, ob du diese Option aktivieren oder daektivieren möchtest.",
"Enable analytics to help improve Boostnote": "Datenerhebung zur Verbesserung von Boostnote aktivieren", "Enable analytics to help improve Boostnote": "Datenerhebung zur Verbesserung von Boostnote aktivieren",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Hallo,", "Dear Boostnote users,": "Hallo,",
"Thank you for using Boostnote!": "Danke, dass du Boostnote verwendest.", "Thank you for using Boostnote!": "Danke, dass du Boostnote verwendest.",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote wird in über 200 verschiedenen Ländern von einer großartigen Community von Entwicklern verwendet.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote wird in über 200 verschiedenen Ländern von einer großartigen Community von Entwicklern verwendet.",
"To continue supporting this growth, and to satisfy community expectations,": "Um die Erwartungen der Community weiterhin erfüllen zu können und die Verbreitung von Boostnote weiter voranzutreiben,", "To support our growing userbase, and satisfy community expectations,": "Um die Erwartungen der Community weiterhin erfüllen zu können und die Verbreitung von Boostnote weiter voranzutreiben,",
"we would like to invest more time and resources in this project.": "würden wir gern mehr Zeit und Resourcen in dieses Projekt investieren.", "we would like to invest more time and resources in this project.": "würden wir gern mehr Zeit und Resourcen in dieses Projekt investieren.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Wenn dir dieses Projekt gefällt und du sein Potential erkennst, kannst du uns gern mit OpenCollective unterstützen!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Wenn dir dieses Projekt gefällt und du sein Potential erkennst, kannst du uns gern mit OpenCollective unterstützen!",
"Thanks,": "Vielen Dank,", "Thanks,": "Vielen Dank,",
"Boostnote maintainers": "Dein Boostnote Team", "The Boostnote Team": "Dein Boostnote Team",
"Support via OpenCollective": "Unterstützen mit OpenCollective", "Support via OpenCollective": "Unterstützen mit OpenCollective",
"Language": "Sprache", "Language": "Sprache",
"English": "Englisch", "English": "Englisch",
@@ -130,7 +130,7 @@
"Permanent Delete": "Dauerhaft löschen", "Permanent Delete": "Dauerhaft löschen",
"Confirm note deletion": "Löschen bestätigen", "Confirm note deletion": "Löschen bestätigen",
"This will permanently remove this note.": "Diese Notiz wird dauerhaft gelöscht.", "This will permanently remove this note.": "Diese Notiz wird dauerhaft gelöscht.",
"You have to save!": "Speichern notwendig!", "Unsaved Changes!": "Speichern notwendig!",
"Albanian": "Albanisch", "Albanian": "Albanisch",
"Danish": "Dänisch", "Danish": "Dänisch",
"Japanese": "Japanisch", "Japanese": "Japanisch",

View File

@@ -23,7 +23,7 @@
"Your preferences for Boostnote": "Your preferences for Boostnote", "Your preferences for Boostnote": "Your preferences for Boostnote",
"Help": "Help", "Help": "Help",
"Hide Help": "Hide Help", "Hide Help": "Hide Help",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Add Storage Location", "Add Storage Location": "Add Storage Location",
"Add Folder": "Add Folder", "Add Folder": "Add Folder",
"Select Folder": "Select Folder", "Select Folder": "Select Folder",
@@ -62,7 +62,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Preview Font Size", "Preview Font Size": "Preview Font Size",
"Preview Font Family": "Preview Font Family", "Preview Font Family": "Preview Font Family",
"Code block Theme": "Code block Theme", "Code Block Theme": "Code Block Theme",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -90,14 +90,14 @@
"You can choose to enable or disable this option.": "You can choose to enable or disable this option.", "You can choose to enable or disable this option.": "You can choose to enable or disable this option.",
"Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Dear everyone,", "Dear Boostnote users,": "Dear Boostnote users,",
"Thank you for using Boostnote!": "Thank you for using Boostnote!", "Thank you for using Boostnote!": "Thank you for using Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.",
"To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", "To support our growing userbase, and satisfy community expectations,": "To support our growing userbase, and satisfy community expectations,",
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!",
"Thanks,": "Thanks,", "Thanks,": "Thanks,",
"Boostnote maintainers": "Boostnote maintainers", "The Boostnote Team": "The Boostnote Team",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Language", "Language": "Language",
"English": "English", "English": "English",
@@ -134,7 +134,7 @@
"Storage": "Storage", "Storage": "Storage",
"Hotkeys": "Hotkeys", "Hotkeys": "Hotkeys",
"Show/Hide Boostnote": "Show/Hide Boostnote", "Show/Hide Boostnote": "Show/Hide Boostnote",
"Toggle editor mode": "Toggle editor mode", "Toggle Editor Mode": "Toggle Editor Mode",
"Restore": "Restore", "Restore": "Restore",
"Permanent Delete": "Permanent Delete", "Permanent Delete": "Permanent Delete",
"Confirm note deletion": "Confirm note deletion", "Confirm note deletion": "Confirm note deletion",
@@ -150,7 +150,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "You have to save!", "Unsaved Changes!": "Unsaved Changes!",
"UserName": "UserName", "UserName": "UserName",
"Password": "Password", "Password": "Password",
"Russian": "Russian", "Russian": "Russian",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Imprimir", "Print": "Imprimir",
"Your preferences for Boostnote": "Tus preferencias para Boostnote", "Your preferences for Boostnote": "Tus preferencias para Boostnote",
"Storages": "Almacenamientos", "Storage Locations": "Almacenamientos",
"Add Storage Location": "Añadir ubicación de almacenamiento", "Add Storage Location": "Añadir ubicación de almacenamiento",
"Add Folder": "Añadir carpeta", "Add Folder": "Añadir carpeta",
"Open Storage folder": "Abrir carpeta de almacenamiento", "Open Storage folder": "Abrir carpeta de almacenamiento",
@@ -55,7 +55,7 @@
"Preview": "Previsualizar", "Preview": "Previsualizar",
"Preview Font Size": "Previsualizar tamaño de la fuente", "Preview Font Size": "Previsualizar tamaño de la fuente",
"Preview Font Family": "Previsualizar fuente", "Preview Font Family": "Previsualizar fuente",
"Code block Theme": "Tema de los bloques de código", "Code Block Theme": "Tema de los bloques de código",
"Allow preview to scroll past the last line": "Permitir a la previsualización desplazarse más allá de la última línea", "Allow preview to scroll past the last line": "Permitir a la previsualización desplazarse más allá de la última línea",
"Show line numbers for preview code blocks": "Mostrar números de línea al previsualizar bloques de código", "Show line numbers for preview code blocks": "Mostrar números de línea al previsualizar bloques de código",
"LaTeX Inline Open Delimiter": "Delimitador de apertura de LaTeX en línea", "LaTeX Inline Open Delimiter": "Delimitador de apertura de LaTeX en línea",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "Puedes elegir activar o desactivar esta opción.", "You can choose to enable or disable this option.": "Puedes elegir activar o desactivar esta opción.",
"Enable analytics to help improve Boostnote": "Activar recopilación de datos para ayudar a mejorar Boostnote", "Enable analytics to help improve Boostnote": "Activar recopilación de datos para ayudar a mejorar Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Hola a todos,", "Dear Boostnote users,": "Hola a todos,",
"Thank you for using Boostnote!": "¡Gracias por usar Boostnote!", "Thank you for using Boostnote!": "¡Gracias por usar Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote es utilizado en alrededor de 200 países y regiones diferentes por una increíble comunidad de desarrolladores.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote es utilizado en alrededor de 200 países y regiones diferentes por una increíble comunidad de desarrolladores.",
"To continue supporting this growth, and to satisfy community expectations,": "Para continuar apoyando este crecimiento y satisfacer las expectativas de la comunidad,", "To support our growing userbase, and satisfy community expectations,": "Para continuar apoyando este crecimiento y satisfacer las expectativas de la comunidad,",
"we would like to invest more time and resources in this project.": "nos gustaría invertir más tiempo y recursos en este proyecto.", "we would like to invest more time and resources in this project.": "nos gustaría invertir más tiempo y recursos en este proyecto.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Si te gusta este proyecto y ves su potencial, ¡puedes ayudar apoyándonos en OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Si te gusta este proyecto y ves su potencial, ¡puedes ayudar apoyándonos en OpenCollective!",
"Thanks,": "Gracias,", "Thanks,": "Gracias,",
"Boostnote maintainers": "Equipo de Boostnote", "The Boostnote Team": "Equipo de Boostnote",
"Support via OpenCollective": "Contribuir vía OpenCollective", "Support via OpenCollective": "Contribuir vía OpenCollective",
"Language": "Idioma", "Language": "Idioma",
"English": "Inglés", "English": "Inglés",
@@ -141,7 +141,7 @@
"Polish": "Polaco", "Polish": "Polaco",
"Portuguese": "Portugués", "Portuguese": "Portugués",
"Spanish": "Español", "Spanish": "Español",
"You have to save!": "¡Tienes que guardar!", "Unsaved Changes!": "¡Tienes que guardar!",
"Russian": "Ruso", "Russian": "Ruso",
"Command(⌘)": "Comando(⌘)", "Command(⌘)": "Comando(⌘)",
"Editor Rulers": "Reglas del editor", "Editor Rulers": "Reglas del editor",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "پرینت", "Print": "پرینت",
"Your preferences for Boostnote": "تنظیمات شما برای boostnote", "Your preferences for Boostnote": "تنظیمات شما برای boostnote",
"Storages": "ذخیره سازی", "Storage Locations": "ذخیره سازی",
"Add Storage Location": "افزودن محل ذخیره سازی", "Add Storage Location": "افزودن محل ذخیره سازی",
"Add Folder": "ساخت پوشه", "Add Folder": "ساخت پوشه",
"Open Storage folder": "بازکردن پوشه ذخیره سازی", "Open Storage folder": "بازکردن پوشه ذخیره سازی",
@@ -55,7 +55,7 @@
"Preview": "پیش نمایش", "Preview": "پیش نمایش",
"Preview Font Size": "اندازه فونتِ پیش نمایش", "Preview Font Size": "اندازه فونتِ پیش نمایش",
"Preview Font Family": " فونتِ پیش نمایش", "Preview Font Family": " فونتِ پیش نمایش",
"Code block Theme": "تم بخش کد", "Code Block Theme": "تم بخش کد",
"Allow preview to scroll past the last line": "اجازه بده پیش نمایش بعد از آخرین خط اسکرول کند.", "Allow preview to scroll past the last line": "اجازه بده پیش نمایش بعد از آخرین خط اسکرول کند.",
"Show line numbers for preview code blocks": "شماره خطوط در پیش نمایش را نمایش بده.", "Show line numbers for preview code blocks": "شماره خطوط در پیش نمایش را نمایش بده.",
"LaTeX Inline Open Delimiter": "جداکننده آغازین لاتکس خطی", "LaTeX Inline Open Delimiter": "جداکننده آغازین لاتکس خطی",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "میتوانید این گزینه را فعال یا غیرفعال کنید.", "You can choose to enable or disable this option.": "میتوانید این گزینه را فعال یا غیرفعال کنید.",
"Enable analytics to help improve Boostnote":".تجزیه تحلیل داده ها را برای کمک به بهبود برنامه فعال کن", "Enable analytics to help improve Boostnote":".تجزیه تحلیل داده ها را برای کمک به بهبود برنامه فعال کن",
"Crowdfunding": "جمع سپاری (سرمایه گذاری جمعی )", "Crowdfunding": "جمع سپاری (سرمایه گذاری جمعی )",
"Dear everyone,": "عزیزان,", "Dear Boostnote users,": "عزیزان,",
"Thank you for using Boostnote!": "از شما بخاطر استفاده از boostnote ممنونیم!", "Thank you for using Boostnote!": "از شما بخاطر استفاده از boostnote ممنونیم!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "در ۲۰۰ کشور مختلف دنیا مورد توسط جمعی از برنامه نویسان بی نظیر مورد استفاده قرار میگیرد. Boostnote", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "در ۲۰۰ کشور مختلف دنیا مورد توسط جمعی از برنامه نویسان بی نظیر مورد استفاده قرار میگیرد. Boostnote",
"To continue supporting this growth, and to satisfy community expectations,": "برای حمایت از این رشد ، و برآورده شدن انتظارات کامینیتی,", "To support our growing userbase, and satisfy community expectations,": "برای حمایت از این رشد ، و برآورده شدن انتظارات کامینیتی,",
"we would like to invest more time and resources in this project.": "ما می خواهیم زمان و منابع بیشتری را در این پروژه سرمایه گذاری کنیم.", "we would like to invest more time and resources in this project.": "ما می خواهیم زمان و منابع بیشتری را در این پروژه سرمایه گذاری کنیم.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "اگر این پروژه را دوست دارید و پتانسیلی در آن می‌بینید، میتوانید مارا در اوپن‌ کالکتیو حمایت کنید.", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "اگر این پروژه را دوست دارید و پتانسیلی در آن می‌بینید، میتوانید مارا در اوپن‌ کالکتیو حمایت کنید.",
"Thanks,": "با تشکر,", "Thanks,": "با تشکر,",
"Boostnote maintainers": "Boostnote نگهدارندگان", "The Boostnote Team": "Boostnote نگهدارندگان",
"Support via OpenCollective": "حمایت کنید OpenCollective از طریق", "Support via OpenCollective": "حمایت کنید OpenCollective از طریق",
"Language": "زبان", "Language": "زبان",
"English": "انگلیسی", "English": "انگلیسی",
@@ -142,7 +142,7 @@
"Polish": "لهستانی", "Polish": "لهستانی",
"Portuguese": "پرتغالی", "Portuguese": "پرتغالی",
"Spanish": "اسپانیایی", "Spanish": "اسپانیایی",
"You have to save!": "!باید ذخیره کنید", "Unsaved Changes!": "!باید ذخیره کنید",
"UserName": "نام کاربری", "UserName": "نام کاربری",
"Password": "رمز عبور", "Password": "رمز عبور",
"Russian": "روسی", "Russian": "روسی",
@@ -156,4 +156,4 @@
"Allow dangerous html tags": "تگ های خطرناک اچ‌ تی ام ال مجاز اند", "Allow dangerous html tags": "تگ های خطرناک اچ‌ تی ام ال مجاز اند",
"Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.", "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.",
"⚠ You have pasted a link referring an attachment that could not be found in the storage location of this note. Pasting links referring attachments is only supported if the source and destination location is the same storage. Please Drag&Drop the attachment instead! ⚠": "⚠ You have pasted a link referring an attachment that could not be found in the storage location of this note. Pasting links referring attachments is only supported if the source and destination location is the same storage. Please Drag&Drop the attachment instead! ⚠" "⚠ You have pasted a link referring an attachment that could not be found in the storage location of this note. Pasting links referring attachments is only supported if the source and destination location is the same storage. Please Drag&Drop the attachment instead! ⚠": "⚠ You have pasted a link referring an attachment that could not be found in the storage location of this note. Pasting links referring attachments is only supported if the source and destination location is the same storage. Please Drag&Drop the attachment instead! ⚠"
} }

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Imprimer", "Print": "Imprimer",
"Your preferences for Boostnote": "Vos préférences pour Boostnote", "Your preferences for Boostnote": "Vos préférences pour Boostnote",
"Storages": "Stockages", "Storage Locations": "Stockages",
"Add Storage Location": "Ajouter un espace de stockage", "Add Storage Location": "Ajouter un espace de stockage",
"Add Folder": "Ajouter un dossier", "Add Folder": "Ajouter un dossier",
"Open Storage folder": "Ouvrir un dossier de stockage", "Open Storage folder": "Ouvrir un dossier de stockage",
@@ -55,7 +55,7 @@
"Preview": "Aperçu", "Preview": "Aperçu",
"Preview Font Size": "Taille de police de l'aperçu", "Preview Font Size": "Taille de police de l'aperçu",
"Preview Font Family": "Police de l'aperçu", "Preview Font Family": "Police de l'aperçu",
"Code block Theme": "Thème des blocs de code", "Code Block Theme": "Thème des blocs de code",
"Show line numbers for preview code blocks": "Montrer les numéros de lignes dans les blocs de code dans l'aperçu", "Show line numbers for preview code blocks": "Montrer les numéros de lignes dans les blocs de code dans l'aperçu",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
"LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter", "LaTeX Inline Close Delimiter": "LaTeX Inline Close Delimiter",
@@ -82,14 +82,14 @@
"You can choose to enable or disable this option.": "Vous pouvez choisir d'activer/désactiver cette option.", "You can choose to enable or disable this option.": "Vous pouvez choisir d'activer/désactiver cette option.",
"Enable analytics to help improve Boostnote": "Activer la collecte de données anonymisées pour améliorer Boostnote", "Enable analytics to help improve Boostnote": "Activer la collecte de données anonymisées pour améliorer Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Cher utilisateur,", "Dear Boostnote users,": "Cher utilisateur,",
"Thank you for using Boostnote!": "Merci d'utiliser Boostnote !", "Thank you for using Boostnote!": "Merci d'utiliser Boostnote !",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote est utilisé dans plus de 200 pays et régions par une impressionnante communauté de développeurs.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote est utilisé dans plus de 200 pays et régions par une impressionnante communauté de développeurs.",
"To continue supporting this growth, and to satisfy community expectations,": "Afin de continuer à grandir, et de satisfaire les attentes de la communauté,", "To support our growing userbase, and satisfy community expectations,": "Afin de continuer à grandir, et de satisfaire les attentes de la communauté,",
"we would like to invest more time and resources in this project.": "nous aimerions investir d'avantage de temps et de ressources dans ce proje.", "we would like to invest more time and resources in this project.": "nous aimerions investir d'avantage de temps et de ressources dans ce proje.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Si vous aimez ce projet et que vous en voyez tout le potentiel, vous pouvez aider par un support sur OpenCollective !", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Si vous aimez ce projet et que vous en voyez tout le potentiel, vous pouvez aider par un support sur OpenCollective !",
"Thanks,": "Merci,", "Thanks,": "Merci,",
"Boostnote maintainers": "Les mainteneurs de Boostnote", "The Boostnote Team": "Les mainteneurs de Boostnote",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Langues", "Language": "Langues",
"English": "Anglais", "English": "Anglais",
@@ -140,7 +140,7 @@
"Polish": "Polonais", "Polish": "Polonais",
"Portuguese": "Portugais", "Portuguese": "Portugais",
"Spanish": "Espagnol", "Spanish": "Espagnol",
"You have to save!": "Il faut sauvegarder !", "Unsaved Changes!": "Il faut sauvegarder !",
"Russian": "Russe", "Russian": "Russe",
"Command(⌘)": "Command(⌘)", "Command(⌘)": "Command(⌘)",
"Editor Rulers": "Règles dans l'éditeur", "Editor Rulers": "Règles dans l'éditeur",

View File

@@ -23,7 +23,7 @@
"Your preferences for Boostnote": "Boostnote beállításaid", "Your preferences for Boostnote": "Boostnote beállításaid",
"Help": "Súgó", "Help": "Súgó",
"Hide Help": "Súgó Elrejtése", "Hide Help": "Súgó Elrejtése",
"Storages": "Tárolók", "Storage Locations": "Tárolók",
"Add Storage Location": "Tároló Hozzáadása", "Add Storage Location": "Tároló Hozzáadása",
"Add Folder": "Könyvtár Hozzáadása", "Add Folder": "Könyvtár Hozzáadása",
"Select Folder": "Könyvtár Kiválasztása", "Select Folder": "Könyvtár Kiválasztása",
@@ -62,7 +62,7 @@
"Preview": "Megtekintés", "Preview": "Megtekintés",
"Preview Font Size": "Megtekintés Betűmérete", "Preview Font Size": "Megtekintés Betűmérete",
"Preview Font Family": "Megtekintés Betűtípusa", "Preview Font Family": "Megtekintés Betűtípusa",
"Code block Theme": "Kódblokk Témája", "Code Block Theme": "Kódblokk Témája",
"Allow preview to scroll past the last line": "Megtekintésben az utolsó sor alá is lehessen görgetni", "Allow preview to scroll past the last line": "Megtekintésben az utolsó sor alá is lehessen görgetni",
"Show line numbers for preview code blocks": "Mutatassa a sorszámokat a megtekintett kódblokkokban", "Show line numbers for preview code blocks": "Mutatassa a sorszámokat a megtekintett kódblokkokban",
"LaTeX Inline Open Delimiter": "LaTeX Inline Nyitó Határolója", "LaTeX Inline Open Delimiter": "LaTeX Inline Nyitó Határolója",
@@ -90,14 +90,14 @@
"You can choose to enable or disable this option.": "Kiválaszthatod, hogy engedélyezed, vagy tiltod ezt az opciót.", "You can choose to enable or disable this option.": "Kiválaszthatod, hogy engedélyezed, vagy tiltod ezt az opciót.",
"Enable analytics to help improve Boostnote": "Adatok elemzésének engedélyezése a Boostnote tökéletesítésének céljából", "Enable analytics to help improve Boostnote": "Adatok elemzésének engedélyezése a Boostnote tökéletesítésének céljából",
"Crowdfunding": "Közösségi finanszírozás", "Crowdfunding": "Közösségi finanszírozás",
"Dear everyone,": "Kedves felhasználók!", "Dear Boostnote users,": "Kedves felhasználók!",
"Thank you for using Boostnote!": "Köszönjük, hogy a Boostnote-ot használjátok!", "Thank you for using Boostnote!": "Köszönjük, hogy a Boostnote-ot használjátok!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "A Boostnote-ot több, mint 200 ország és régió fantasztikus fejlesztői használják.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "A Boostnote-ot több, mint 200 ország és régió fantasztikus fejlesztői használják.",
"To continue supporting this growth, and to satisfy community expectations,": "Hogy folytathassuk ezt a fejlődést és kielégíthessük a felhasználói elvárásokat,", "To support our growing userbase, and satisfy community expectations,": "Hogy folytathassuk ezt a fejlődést és kielégíthessük a felhasználói elvárásokat,",
"we would like to invest more time and resources in this project.": "több időt és erőforrást szeretnénk a projektbe fektetni.", "we would like to invest more time and resources in this project.": "több időt és erőforrást szeretnénk a projektbe fektetni.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Ha tetszik a projekt és hasznosnak találod, te is segíthetsz ebben az OpenCollective-en keresztül küldött támogatásoddal.", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Ha tetszik a projekt és hasznosnak találod, te is segíthetsz ebben az OpenCollective-en keresztül küldött támogatásoddal.",
"Thanks,": "Köszönjük!", "Thanks,": "Köszönjük!",
"Boostnote maintainers": "A Boostnote csapata", "The Boostnote Team": "A Boostnote csapata",
"Support via OpenCollective": "Támogatás Küldése", "Support via OpenCollective": "Támogatás Küldése",
"Language": "Nyelv", "Language": "Nyelv",
"English": "English", "English": "English",
@@ -134,7 +134,7 @@
"Storage": "Tároló", "Storage": "Tároló",
"Hotkeys": "Gyorsbillentyűk", "Hotkeys": "Gyorsbillentyűk",
"Show/Hide Boostnote": "Boostnote Megjelenítése/Elrejtése", "Show/Hide Boostnote": "Boostnote Megjelenítése/Elrejtése",
"Toggle editor mode": "Szerkesztő mód váltása", "Toggle Editor Mode": "Szerkesztő mód váltása",
"Restore": "Visszaállítás", "Restore": "Visszaállítás",
"Permanent Delete": "Végleges Törlés", "Permanent Delete": "Végleges Törlés",
"Confirm note deletion": "Törlés megerősítése", "Confirm note deletion": "Törlés megerősítése",
@@ -150,7 +150,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "Mentened kell!", "Unsaved Changes!": "Mentened kell!",
"UserName": "FelhasznaloNev", "UserName": "FelhasznaloNev",
"Password": "Jelszo", "Password": "Jelszo",
"Russian": "Russian", "Russian": "Russian",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Stampa", "Print": "Stampa",
"Your preferences for Boostnote": "Le tue preferenze per Boostnote", "Your preferences for Boostnote": "Le tue preferenze per Boostnote",
"Storages": "Posizioni", "Storage Locations": "Posizioni",
"Add Storage Location": "Aggiungi posizione", "Add Storage Location": "Aggiungi posizione",
"Add Folder": "Aggiungi cartella", "Add Folder": "Aggiungi cartella",
"Open Storage folder": "Apri cartella di memoria", "Open Storage folder": "Apri cartella di memoria",
@@ -55,7 +55,7 @@
"Preview": "Anteprima", "Preview": "Anteprima",
"Preview Font Size": "Dimensione font nell'anteprima", "Preview Font Size": "Dimensione font nell'anteprima",
"Preview Font Family": "Famiglia del font dell'anteprima", "Preview Font Family": "Famiglia del font dell'anteprima",
"Code block Theme": "Tema blocco di codice", "Code Block Theme": "Tema blocco di codice",
"Allow preview to scroll past the last line": "Consenti scrolling oltre l'ultima linea", "Allow preview to scroll past the last line": "Consenti scrolling oltre l'ultima linea",
"Show line numbers for preview code blocks": "Mostra numero di linea per i blocchi di codice nell'Anteprima", "Show line numbers for preview code blocks": "Mostra numero di linea per i blocchi di codice nell'Anteprima",
"LaTeX Inline Open Delimiter": "Delimitatore inline per apertura LaTex", "LaTeX Inline Open Delimiter": "Delimitatore inline per apertura LaTex",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "Puoi scegliere se attivare o disattivare questa opzione.", "You can choose to enable or disable this option.": "Puoi scegliere se attivare o disattivare questa opzione.",
"Enable analytics to help improve Boostnote": "Attiva raccolta dati per aiutare a migliorare Boostnote", "Enable analytics to help improve Boostnote": "Attiva raccolta dati per aiutare a migliorare Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Cari utenti,", "Dear Boostnote users,": "Cari utenti,",
"Thank you for using Boostnote!": "Grazie per stare utilizzando Boostnote!", "Thank you for using Boostnote!": "Grazie per stare utilizzando Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote è usato in circa 200 Paesi da una fantastica community di sviluppatori.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote è usato in circa 200 Paesi da una fantastica community di sviluppatori.",
"To continue supporting this growth, and to satisfy community expectations,": "Per continuare a supportarne la crescita, e per soddisfare le aspettative della comunità,", "To support our growing userbase, and satisfy community expectations,": "Per continuare a supportarne la crescita, e per soddisfare le aspettative della comunità,",
"we would like to invest more time and resources in this project.": "ci piacerebbe investire più tempo e risorse in questo progetto.", "we would like to invest more time and resources in this project.": "ci piacerebbe investire più tempo e risorse in questo progetto.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Se ti piace questo progetto e ci vedi del potenziale, puoi aiutarci dandodci supporto su OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Se ti piace questo progetto e ci vedi del potenziale, puoi aiutarci dandodci supporto su OpenCollective!",
"Thanks,": "Grazie,", "Thanks,": "Grazie,",
"Boostnote maintainers": "I mantainers di Boostnote", "The Boostnote Team": "I mantainers di Boostnote",
"Support via OpenCollective": "Supporta su OpenCollective", "Support via OpenCollective": "Supporta su OpenCollective",
"Language": "Lingua", "Language": "Lingua",
"English": "Inglese", "English": "Inglese",
@@ -142,7 +142,7 @@
"Polish": "Polacco", "Polish": "Polacco",
"Portuguese": "Portoghese", "Portuguese": "Portoghese",
"Spanish": "Spagnolo", "Spanish": "Spagnolo",
"You have to save!": "Devi salvare!", "Unsaved Changes!": "Devi salvare!",
"UserName": "UserName", "UserName": "UserName",
"Password": "Password", "Password": "Password",
"Russian": "Russo", "Russian": "Russo",

View File

@@ -23,7 +23,7 @@
"Your preferences for Boostnote": "Boostnoteの個人設定", "Your preferences for Boostnote": "Boostnoteの個人設定",
"Help": "ヘルプ", "Help": "ヘルプ",
"Hide Help": "ヘルプを隠す", "Hide Help": "ヘルプを隠す",
"Storages": "ストレージ", "Storage Locations": "ストレージ",
"Add Storage Location": "ストレージロケーションを追加", "Add Storage Location": "ストレージロケーションを追加",
"Add Folder": "フォルダを追加", "Add Folder": "フォルダを追加",
"Select Folder": "フォルダを選択", "Select Folder": "フォルダを選択",
@@ -62,7 +62,7 @@
"Preview": "プレビュー", "Preview": "プレビュー",
"Preview Font Size": "プレビュー時フォントサイズ", "Preview Font Size": "プレビュー時フォントサイズ",
"Preview Font Family": "プレビュー時フォント", "Preview Font Family": "プレビュー時フォント",
"Code block Theme": "コードブロックのテーマ", "Code Block Theme": "コードブロックのテーマ",
"Allow preview to scroll past the last line": "プレビュー時に最終行以降にスクロールできるようにする", "Allow preview to scroll past the last line": "プレビュー時に最終行以降にスクロールできるようにする",
"Show line numbers for preview code blocks": "プレビュー時のコードブロック内に行番号を表示する", "Show line numbers for preview code blocks": "プレビュー時のコードブロック内に行番号を表示する",
"LaTeX Inline Open Delimiter": "LaTeX 開始デリミタ(インライン)", "LaTeX Inline Open Delimiter": "LaTeX 開始デリミタ(インライン)",
@@ -90,14 +90,14 @@
"You can choose to enable or disable this option.": "このオプションは有効/無効を選択できます。", "You can choose to enable or disable this option.": "このオプションは有効/無効を選択できます。",
"Enable analytics to help improve Boostnote": "Boostnote の機能向上のための解析機能を有効にする", "Enable analytics to help improve Boostnote": "Boostnote の機能向上のための解析機能を有効にする",
"Crowdfunding": "クラウドファンディング", "Crowdfunding": "クラウドファンディング",
"Dear everyone,": "みなさまへ", "Dear Boostnote users,": "みなさまへ",
"Thank you for using Boostnote!": "Boostnote を利用いただき、ありがとうございます!", "Thank you for using Boostnote!": "Boostnote を利用いただき、ありがとうございます!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote はおよそ 200 の国と地域において、開発者コミュニティを中心に利用されています。", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote はおよそ 200 の国と地域において、開発者コミュニティを中心に利用されています。",
"To continue supporting this growth, and to satisfy community expectations,": "この成長を持続し、またコミュニティからの要望に答えるため、", "To support our growing userbase, and satisfy community expectations,": "この成長を持続し、またコミュニティからの要望に答えるため、",
"we would like to invest more time and resources in this project.": "私達はこのプロジェクトにより多くの時間とリソースを投資したいと考えています。", "we would like to invest more time and resources in this project.": "私達はこのプロジェクトにより多くの時間とリソースを投資したいと考えています。",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "もしあなたがこのプロジェクトとそのポテンシャルを気に入っていただけたのであれば、OpenCollective を通じて支援いただくことができます!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "もしあなたがこのプロジェクトとそのポテンシャルを気に入っていただけたのであれば、OpenCollective を通じて支援いただくことができます!",
"Thanks,": "ありがとうございます。", "Thanks,": "ありがとうございます。",
"Boostnote maintainers": "Boostnote メンテナンスチーム", "The Boostnote Team": "Boostnote メンテナンスチーム",
"Support via OpenCollective": "OpenCollective を通じて支援します", "Support via OpenCollective": "OpenCollective を通じて支援します",
"Language": "言語", "Language": "言語",
"English": "英語", "English": "英語",
@@ -134,7 +134,7 @@
"Storage": "ストレージ", "Storage": "ストレージ",
"Hotkeys": "ホットキー", "Hotkeys": "ホットキー",
"Show/Hide Boostnote": "Boostnote の表示/非表示", "Show/Hide Boostnote": "Boostnote の表示/非表示",
"Toggle editor mode": "エディタモードの切替", "Toggle Editor Mode": "エディタモードの切替",
"Restore": "リストア", "Restore": "リストア",
"Permanent Delete": "永久に削除", "Permanent Delete": "永久に削除",
"Confirm note deletion": "ノート削除確認", "Confirm note deletion": "ノート削除確認",
@@ -150,7 +150,7 @@
"Polish": "ポーランド語", "Polish": "ポーランド語",
"Portuguese": "ポルトガル語", "Portuguese": "ポルトガル語",
"Spanish": "スペイン語", "Spanish": "スペイン語",
"You have to save!": "保存してください!", "Unsaved Changes!": "保存してください!",
"UserName": "ユーザー名", "UserName": "ユーザー名",
"Password": "パスワード", "Password": "パスワード",
"Russian": "ロシア語", "Russian": "ロシア語",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "인쇄", "Print": "인쇄",
"Your preferences for Boostnote": "Boostnote 설정", "Your preferences for Boostnote": "Boostnote 설정",
"Storages": "저장소", "Storage Locations": "저장소",
"Add Storage Location": "저장소 위치 추가", "Add Storage Location": "저장소 위치 추가",
"Add Folder": "폴더 추가", "Add Folder": "폴더 추가",
"Open Storage folder": "저장소 위치 열기", "Open Storage folder": "저장소 위치 열기",
@@ -55,7 +55,7 @@
"Preview": "프리뷰", "Preview": "프리뷰",
"Preview Font Size": "프리뷰시 폰트 크기", "Preview Font Size": "프리뷰시 폰트 크기",
"Preview Font Family": "프리뷰시 폰트 종류", "Preview Font Family": "프리뷰시 폰트 종류",
"Code block Theme": "코드 블록 테마", "Code Block Theme": "코드 블록 테마",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX 인라인 블록 열기 기호", "LaTeX Inline Open Delimiter": "LaTeX 인라인 블록 열기 기호",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "사용 통계/분석 수집 여부는 직접 선택하실 수 있습니다.", "You can choose to enable or disable this option.": "사용 통계/분석 수집 여부는 직접 선택하실 수 있습니다.",
"Enable analytics to help improve Boostnote": "Boostnote 개선을 돕기위해 사용 통계/분석 수집 허가", "Enable analytics to help improve Boostnote": "Boostnote 개선을 돕기위해 사용 통계/분석 수집 허가",
"Crowdfunding": "크라우드펀딩", "Crowdfunding": "크라우드펀딩",
"Dear everyone,": "모두들에게,", "Dear Boostnote users,": "모두들에게,",
"Thank you for using Boostnote!": "사용해주셔서 감사합니다!", "Thank you for using Boostnote!": "사용해주셔서 감사합니다!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote는 200여개의 국가에서 뛰어난 개발자들에게 사용되어지고 있습니다.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote는 200여개의 국가에서 뛰어난 개발자들에게 사용되어지고 있습니다.",
"To continue supporting this growth, and to satisfy community expectations,": "성장을 계속하기 위해 그리고 커뮤니티의 기대를 만족시키기 위해서,", "To support our growing userbase, and satisfy community expectations,": "성장을 계속하기 위해 그리고 커뮤니티의 기대를 만족시키기 위해서,",
"we would like to invest more time and resources in this project.": "저희도 시간과 자원을 더 쏟아붓고 싶습니다.", "we would like to invest more time and resources in this project.": "저희도 시간과 자원을 더 쏟아붓고 싶습니다.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "만약 이 프로젝트가 마음에 들고 가능성이 보이신다면, 저희를 OpenCollective에서 도와주세요!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "만약 이 프로젝트가 마음에 들고 가능성이 보이신다면, 저희를 OpenCollective에서 도와주세요!",
"Thanks,": "감사합니다,", "Thanks,": "감사합니다,",
"Boostnote maintainers": "Boostnote 메인테이너", "The Boostnote Team": "Boostnote 메인테이너",
"Support via OpenCollective": "OpenCollective로 지원하기", "Support via OpenCollective": "OpenCollective로 지원하기",
"Language": "언어(Language)", "Language": "언어(Language)",
"English": "English", "English": "English",
@@ -141,7 +141,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "저장해주세요!", "Unsaved Changes!": "저장해주세요!",
"Russian": "Russian", "Russian": "Russian",
"Command(⌘)": "Command(⌘)", "Command(⌘)": "Command(⌘)",
"Delete Folder": "폴더 삭제", "Delete Folder": "폴더 삭제",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Print", "Print": "Print",
"Your preferences for Boostnote": "Your preferences for Boostnote", "Your preferences for Boostnote": "Your preferences for Boostnote",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Add Storage Location", "Add Storage Location": "Add Storage Location",
"Add Folder": "Add Folder", "Add Folder": "Add Folder",
"Open Storage folder": "Open Storage folder", "Open Storage folder": "Open Storage folder",
@@ -55,7 +55,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Preview Font Size", "Preview Font Size": "Preview Font Size",
"Preview Font Family": "Preview Font Family", "Preview Font Family": "Preview Font Family",
"Code block Theme": "Code block Theme", "Code Block Theme": "Code Block Theme",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "You can choose to enable or disable this option.", "You can choose to enable or disable this option.": "You can choose to enable or disable this option.",
"Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Dear everyone,", "Dear Boostnote users,": "Dear Boostnote users,",
"Thank you for using Boostnote!": "Thank you for using Boostnote!", "Thank you for using Boostnote!": "Thank you for using Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.",
"To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", "To support our growing userbase, and satisfy community expectations,": "To support our growing userbase, and satisfy community expectations,",
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!",
"Thanks,": "Thanks,", "Thanks,": "Thanks,",
"Boostnote maintainers": "Boostnote maintainers", "The Boostnote Team": "The Boostnote Team",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Language", "Language": "Language",
"English": "English", "English": "English",
@@ -141,7 +141,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "You have to save!", "Unsaved Changes!": "Unsaved Changes!",
"Russian": "Russian", "Russian": "Russian",
"Editor Rulers": "Editor Rulers", "Editor Rulers": "Editor Rulers",
"Enable": "Enable", "Enable": "Enable",

View File

@@ -15,14 +15,14 @@
"FOLDER": "FOLDER", "FOLDER": "FOLDER",
"CREATION DATE": "DATA UTWORZENIA", "CREATION DATE": "DATA UTWORZENIA",
"NOTE LINK": "LINK NOTATKI", "NOTE LINK": "LINK NOTATKI",
"Toggle editor mode": "Przełączanie trybu edytora", "Toggle Editor Mode": "Przełączanie trybu edytora",
".md": ".md", ".md": ".md",
".txt": ".txt", ".txt": ".txt",
".html": ".html", ".html": ".html",
"Print": "Drukuj", "Print": "Drukuj",
"Help": "Pomoc", "Help": "Pomoc",
"Your preferences for Boostnote": "Twoje ustawienia dla Boostnote", "Your preferences for Boostnote": "Twoje ustawienia dla Boostnote",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Dodaj miejsce zapisu", "Add Storage Location": "Dodaj miejsce zapisu",
"Add Folder": "Dodaj Folder", "Add Folder": "Dodaj Folder",
"Open Storage folder": "Otwórz folder zapisu", "Open Storage folder": "Otwórz folder zapisu",
@@ -61,7 +61,7 @@
"Enable smart quotes": "Włącz inteligentne cytowanie", "Enable smart quotes": "Włącz inteligentne cytowanie",
"Render newlines in Markdown paragraphs as <br>": "Dodawaj nowe linie w notatce jako znacznik <br>", "Render newlines in Markdown paragraphs as <br>": "Dodawaj nowe linie w notatce jako znacznik <br>",
"Preview Font Family": "Czcionka", "Preview Font Family": "Czcionka",
"Code block Theme": "Styl bloku kodu", "Code Block Theme": "Styl bloku kodu",
"Allow preview to scroll past the last line": "Pozwalaj podglądowi na przewijanie poza końcową linię", "Allow preview to scroll past the last line": "Pozwalaj podglądowi na przewijanie poza końcową linię",
"Show line numbers for preview code blocks": "Pokazuj numery lini dla podglądu bloków kodu", "Show line numbers for preview code blocks": "Pokazuj numery lini dla podglądu bloków kodu",
"LaTeX Inline Open Delimiter": "Otwarcie liniowego ogranicznika LaTeX", "LaTeX Inline Open Delimiter": "Otwarcie liniowego ogranicznika LaTeX",
@@ -89,14 +89,14 @@
"You can choose to enable or disable this option.": "Możesz włączyć lub wyłączyć zbieranie danych tutaj:", "You can choose to enable or disable this option.": "Możesz włączyć lub wyłączyć zbieranie danych tutaj:",
"Enable analytics to help improve Boostnote": "Zbieraj dane by pomóc w ulepszaniu Boostnote", "Enable analytics to help improve Boostnote": "Zbieraj dane by pomóc w ulepszaniu Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Droga społeczności,", "Dear Boostnote users,": "Droga społeczności,",
"Thank you for using Boostnote!": "Dziękujemy za używanie Boostnote!", "Thank you for using Boostnote!": "Dziękujemy za używanie Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote jest używany w około 200 krajach i regionach przez wspaniałą społeczność programistów.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote jest używany w około 200 krajach i regionach przez wspaniałą społeczność programistów.",
"To continue supporting this growth, and to satisfy community expectations,": "Chcielibyśmy poświęcić więcej czasu na rozwój naszego projektu", "To support our growing userbase, and satisfy community expectations,": "Chcielibyśmy poświęcić więcej czasu na rozwój naszego projektu",
"we would like to invest more time and resources in this project.": "aby popularność i satysfakcja naszej społeczności ciągle wzrastała.", "we would like to invest more time and resources in this project.": "aby popularność i satysfakcja naszej społeczności ciągle wzrastała.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Jeśli podoba Ci się naszy projekt i lubisz go używać, możesz wspomóc nasz przez OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Jeśli podoba Ci się naszy projekt i lubisz go używać, możesz wspomóc nasz przez OpenCollective!",
"Thanks,": "Dzięki,", "Thanks,": "Dzięki,",
"Boostnote maintainers": "Kontrybutorzy Boostnote", "The Boostnote Team": "Kontrybutorzy Boostnote",
"Support via OpenCollective": "Wspomóż przez OpenCollective", "Support via OpenCollective": "Wspomóż przez OpenCollective",
"Language": "Język", "Language": "Język",
"English": "Angielski", "English": "Angielski",
@@ -147,7 +147,7 @@
"Polish": "Polski", "Polish": "Polski",
"Portuguese": "Portugalski", "Portuguese": "Portugalski",
"Spanish": "Hiszpański", "Spanish": "Hiszpański",
"You have to save!": "Musisz zapisać!", "Unsaved Changes!": "Musisz zapisać!",
"Russian": "Rosyjski", "Russian": "Rosyjski",
"Editor Rulers": "Margines", "Editor Rulers": "Margines",
"Enable": "Włącz", "Enable": "Włącz",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Imprimir", "Print": "Imprimir",
"Your preferences for Boostnote": "Suas preferências para o Boostnote", "Your preferences for Boostnote": "Suas preferências para o Boostnote",
"Storages": "Armazenamentos", "Storage Locations": "Armazenamentos",
"Add Storage Location": "Adicionar Local de Armazenamento", "Add Storage Location": "Adicionar Local de Armazenamento",
"Add Folder": "Adicionar Pasta", "Add Folder": "Adicionar Pasta",
"Open Storage folder": "Abrir Local de Armazenamento", "Open Storage folder": "Abrir Local de Armazenamento",
@@ -55,7 +55,7 @@
"Preview": "Pré-Visualização", "Preview": "Pré-Visualização",
"Preview Font Size": "Tamanho da Fonte da Pré-Visualização", "Preview Font Size": "Tamanho da Fonte da Pré-Visualização",
"Preview Font Family": "Família da Fonte da Pré-Visualização", "Preview Font Family": "Família da Fonte da Pré-Visualização",
"Code block Theme": "Tema do Bloco de Código", "Code Block Theme": "Tema do Bloco de Código",
"Allow preview to scroll past the last line": "Permitir à pré-visualização rolar além da última linha", "Allow preview to scroll past the last line": "Permitir à pré-visualização rolar além da última linha",
"Show line numbers for preview code blocks": "Mostrar os números das linhas na pré-visualização dos blocos de código", "Show line numbers for preview code blocks": "Mostrar os números das linhas na pré-visualização dos blocos de código",
"LaTeX Inline Open Delimiter": "Delimitador em Linha Aberto do LaTeX", "LaTeX Inline Open Delimiter": "Delimitador em Linha Aberto do LaTeX",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "Você pode optar por ativar ou desativar essa opção.", "You can choose to enable or disable this option.": "Você pode optar por ativar ou desativar essa opção.",
"Enable analytics to help improve Boostnote": "Ativar técnicas analíticas para ajudar a melhorar o Boostnote", "Enable analytics to help improve Boostnote": "Ativar técnicas analíticas para ajudar a melhorar o Boostnote",
"Crowdfunding": "Financiamento Coletivo", "Crowdfunding": "Financiamento Coletivo",
"Dear everyone,": "Caros(as),", "Dear Boostnote users,": "Caros(as),",
"Thank you for using Boostnote!": "Obrigado por usar o Boostnote!", "Thank you for using Boostnote!": "Obrigado por usar o Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "O Boostnote é usado em cerca de 200 países e regiões diferentes por uma incrível comunidade de desenvolvedores.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "O Boostnote é usado em cerca de 200 países e regiões diferentes por uma incrível comunidade de desenvolvedores.",
"To continue supporting this growth, and to satisfy community expectations,": "Para continuar apoiando o crescimento e satisfazer as expectativas da comunidade,", "To support our growing userbase, and satisfy community expectations,": "Para continuar apoiando o crescimento e satisfazer as expectativas da comunidade,",
"we would like to invest more time and resources in this project.": "gostaríamos de investir mais tempo e recursos neste projeto.", "we would like to invest more time and resources in this project.": "gostaríamos de investir mais tempo e recursos neste projeto.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Se você gosta deste projeto e vê o seu potencial, você pode nos ajudar apoiando-nos no OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Se você gosta deste projeto e vê o seu potencial, você pode nos ajudar apoiando-nos no OpenCollective!",
"Thanks,": "Obrigado,", "Thanks,": "Obrigado,",
"Boostnote maintainers": "Mantenedores do Boostnote", "The Boostnote Team": "Mantenedores do Boostnote",
"Support via OpenCollective": "Suporte via OpenCollective", "Support via OpenCollective": "Suporte via OpenCollective",
"Language": "Idioma", "Language": "Idioma",
"English": "Inglês", "English": "Inglês",
@@ -141,7 +141,7 @@
"Polish": "Polonês", "Polish": "Polonês",
"Portuguese": "Português (pt-BR)", "Portuguese": "Português (pt-BR)",
"Spanish": "Espanhol", "Spanish": "Espanhol",
"You have to save!": "Você precisa salvar!", "Unsaved Changes!": "Você precisa salvar!",
"Russian": "Russo", "Russian": "Russo",
"Editor Rulers": "Réguas do Editor", "Editor Rulers": "Réguas do Editor",
"Enable": "Habilitado", "Enable": "Habilitado",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Print", "Print": "Print",
"Your preferences for Boostnote": "Your preferences for Boostnote", "Your preferences for Boostnote": "Your preferences for Boostnote",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Add Storage Location", "Add Storage Location": "Add Storage Location",
"Add Folder": "Add Folder", "Add Folder": "Add Folder",
"Open Storage folder": "Open Storage folder", "Open Storage folder": "Open Storage folder",
@@ -55,7 +55,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Preview Font Size", "Preview Font Size": "Preview Font Size",
"Preview Font Family": "Preview Font Family", "Preview Font Family": "Preview Font Family",
"Code block Theme": "Code block Theme", "Code Block Theme": "Code Block Theme",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -83,14 +83,14 @@
"You can choose to enable or disable this option.": "You can choose to enable or disable this option.", "You can choose to enable or disable this option.": "You can choose to enable or disable this option.",
"Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Dear everyone,", "Dear Boostnote users,": "Dear Boostnote users,",
"Thank you for using Boostnote!": "Thank you for using Boostnote!", "Thank you for using Boostnote!": "Thank you for using Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.",
"To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", "To support our growing userbase, and satisfy community expectations,": "To support our growing userbase, and satisfy community expectations,",
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!",
"Thanks,": "Thanks,", "Thanks,": "Thanks,",
"Boostnote maintainers": "Boostnote maintainers", "The Boostnote Team": "The Boostnote Team",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Language", "Language": "Language",
"English": "English", "English": "English",
@@ -141,7 +141,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "You have to save!", "Unsaved Changes!": "Unsaved Changes!",
"Russian": "Russian", "Russian": "Russian",
"Editor Rulers": "Editor Rulers", "Editor Rulers": "Editor Rulers",
"Enable": "Enable", "Enable": "Enable",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Print", "Print": "Print",
"Your preferences for Boostnote": "Настройки Boostnote", "Your preferences for Boostnote": "Настройки Boostnote",
"Storages": "Хранилища", "Storage Locations": "Хранилища",
"Add Storage Location": "Добавить хранилище", "Add Storage Location": "Добавить хранилище",
"Add Folder": "Добавить папку", "Add Folder": "Добавить папку",
"Open Storage folder": "Открыть хранилище", "Open Storage folder": "Открыть хранилище",
@@ -55,7 +55,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Размер шрифта", "Preview Font Size": "Размер шрифта",
"Preview Font Family": "Шрифт", "Preview Font Family": "Шрифт",
"Code block Theme": "Тема оформления кода", "Code Block Theme": "Тема оформления кода",
"Allow preview to scroll past the last line": "Разрешить прокрутку дальше последней строки в превью", "Allow preview to scroll past the last line": "Разрешить прокрутку дальше последней строки в превью",
"Show line numbers for preview code blocks": "Показывать номера строк в блоках кода", "Show line numbers for preview code blocks": "Показывать номера строк в блоках кода",
"LaTeX Inline Open Delimiter": "Символ начала inline записи в LaTeX", "LaTeX Inline Open Delimiter": "Символ начала inline записи в LaTeX",
@@ -82,14 +82,14 @@
"You can choose to enable or disable this option.": "Вы можете отказаться от передачи анонимной информации разработчикам.", "You can choose to enable or disable this option.": "Вы можете отказаться от передачи анонимной информации разработчикам.",
"Enable analytics to help improve Boostnote": "Отправлять анонимные данные, чтобы сделать Boostnote еще лучше", "Enable analytics to help improve Boostnote": "Отправлять анонимные данные, чтобы сделать Boostnote еще лучше",
"Crowdfunding": "Краудфандинг", "Crowdfunding": "Краудфандинг",
"Dear everyone,": "Привет,", "Dear Boostnote users,": "Привет,",
"Thank you for using Boostnote!": "Спасибо за использование Boostnote!", "Thank you for using Boostnote!": "Спасибо за использование Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote используется в 200 странах и регионов дружным сообществом разработчиков.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote используется в 200 странах и регионов дружным сообществом разработчиков.",
"To continue supporting this growth, and to satisfy community expectations,": "Чтобы продукт развивался и удовлетворял ожиданиям пользователей,", "To support our growing userbase, and satisfy community expectations,": "Чтобы продукт развивался и удовлетворял ожиданиям пользователей,",
"we would like to invest more time and resources in this project.": "мы хотим выделять больше времени и ресурсов проекту.", "we would like to invest more time and resources in this project.": "мы хотим выделять больше времени и ресурсов проекту.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Если вам нравится Boostnote и его сообщество, вы можете профинансировать проект на OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Если вам нравится Boostnote и его сообщество, вы можете профинансировать проект на OpenCollective!",
"Thanks,": "Спасибо,", "Thanks,": "Спасибо,",
"Boostnote maintainers": "разработчики Boostnote", "The Boostnote Team": "разработчики Boostnote",
"Support via OpenCollective": "Старница проекта на OpenCollective", "Support via OpenCollective": "Старница проекта на OpenCollective",
"Language": "Язык", "Language": "Язык",
"English": "Английский", "English": "Английский",
@@ -140,7 +140,7 @@
"Polish": "Польский", "Polish": "Польский",
"Portuguese": "Португальский", "Portuguese": "Португальский",
"Spanish": "Испанский", "Spanish": "Испанский",
"You have to save!": "Нужно сохранить!", "Unsaved Changes!": "Нужно сохранить!",
"UserName": "Имя пользователя", "UserName": "Имя пользователя",
"Password": "Пароль", "Password": "Пароль",
"Russian": "Русский", "Russian": "Русский",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Print", "Print": "Print",
"Your preferences for Boostnote": "Your preferences for Boostnote", "Your preferences for Boostnote": "Your preferences for Boostnote",
"Storages": "Storages", "Storage Locations": "Storage Locations",
"Add Storage Location": "Add Storage Location", "Add Storage Location": "Add Storage Location",
"Add Folder": "Add Folder", "Add Folder": "Add Folder",
"Open Storage folder": "Open Storage folder", "Open Storage folder": "Open Storage folder",
@@ -55,7 +55,7 @@
"Preview": "Preview", "Preview": "Preview",
"Preview Font Size": "Preview Font Size", "Preview Font Size": "Preview Font Size",
"Preview Font Family": "Preview Font Family", "Preview Font Family": "Preview Font Family",
"Code block Theme": "Code block Theme", "Code Block Theme": "Code Block Theme",
"Allow preview to scroll past the last line": "Allow preview to scroll past the last line", "Allow preview to scroll past the last line": "Allow preview to scroll past the last line",
"Show line numbers for preview code blocks": "Show line numbers for preview code blocks", "Show line numbers for preview code blocks": "Show line numbers for preview code blocks",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -82,14 +82,14 @@
"You can choose to enable or disable this option.": "You can choose to enable or disable this option.", "You can choose to enable or disable this option.": "You can choose to enable or disable this option.",
"Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote", "Enable analytics to help improve Boostnote": "Enable analytics to help improve Boostnote",
"Crowdfunding": "Crowdfunding", "Crowdfunding": "Crowdfunding",
"Dear everyone,": "Dear everyone,", "Dear Boostnote users,": "Dear Boostnote users,",
"Thank you for using Boostnote!": "Thank you for using Boostnote!", "Thank you for using Boostnote!": "Thank you for using Boostnote!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote is used in about 200 different countries and regions by an awesome community of developers.",
"To continue supporting this growth, and to satisfy community expectations,": "To continue supporting this growth, and to satisfy community expectations,", "To support our growing userbase, and satisfy community expectations,": "To support our growing userbase, and satisfy community expectations,",
"we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.", "we would like to invest more time and resources in this project.": "we would like to invest more time and resources in this project.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "If you like this project and see its potential, you can help by supporting us on OpenCollective!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!",
"Thanks,": "Thanks,", "Thanks,": "Thanks,",
"Boostnote maintainers": "Boostnote maintainers", "The Boostnote Team": "The Boostnote Team",
"Support via OpenCollective": "Support via OpenCollective", "Support via OpenCollective": "Support via OpenCollective",
"Language": "Language", "Language": "Language",
"English": "English", "English": "English",
@@ -140,7 +140,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "You have to save!", "Unsaved Changes!": "Unsaved Changes!",
"Russian": "Russian", "Russian": "Russian",
"Editor Rulers": "Editor Rulers", "Editor Rulers": "Editor Rulers",
"Enable": "Enable", "Enable": "Enable",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "Yazdır", "Print": "Yazdır",
"Your preferences for Boostnote": "Boostnote tercihleriniz", "Your preferences for Boostnote": "Boostnote tercihleriniz",
"Storages": "Saklama Alanları", "Storage Locations": "Saklama Alanları",
"Add Storage Location": "Saklama Yeri Ekle", "Add Storage Location": "Saklama Yeri Ekle",
"Add Folder": "Dosya Ekle", "Add Folder": "Dosya Ekle",
"Open Storage folder": "Saklama Alanı Dosyasını Aç", "Open Storage folder": "Saklama Alanı Dosyasını Aç",
@@ -55,7 +55,7 @@
"Preview": "Önizleme", "Preview": "Önizleme",
"Preview Font Size": "Yazı Büyüklüğünü Önizle", "Preview Font Size": "Yazı Büyüklüğünü Önizle",
"Preview Font Family": "Yazı Tipini Önizle", "Preview Font Family": "Yazı Tipini Önizle",
"Code block Theme": "Kod bloğu Teması", "Code Block Theme": "Kod bloğu Teması",
"Allow preview to scroll past the last line": "Önizlemenin son satırı geçmesine izin ver", "Allow preview to scroll past the last line": "Önizlemenin son satırı geçmesine izin ver",
"Show line numbers for preview code blocks": "Kod bloklarının önizlemesinde satır numaralarını göster", "Show line numbers for preview code blocks": "Kod bloklarının önizlemesinde satır numaralarını göster",
"LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter", "LaTeX Inline Open Delimiter": "LaTeX Inline Open Delimiter",
@@ -82,14 +82,14 @@
"You can choose to enable or disable this option.": "Bu seçeneği etkinleştirmeyi veya devre dışı bırakmayı seçebilirsiniz.", "You can choose to enable or disable this option.": "Bu seçeneği etkinleştirmeyi veya devre dışı bırakmayı seçebilirsiniz.",
"Enable analytics to help improve Boostnote": "Boostnote'un geliştirilmesine katkıda bulunmak için analizleri etkinleştirin", "Enable analytics to help improve Boostnote": "Boostnote'un geliştirilmesine katkıda bulunmak için analizleri etkinleştirin",
"Crowdfunding": "Kitle Fonlaması", "Crowdfunding": "Kitle Fonlaması",
"Dear everyone,": "Sevgili herkes,", "Dear Boostnote users,": "Sevgili herkes,",
"Thank you for using Boostnote!": "Boostnote'u kullandığınız için teşekkürler!", "Thank you for using Boostnote!": "Boostnote'u kullandığınız için teşekkürler!",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote, 200 farklı ülke ve bölgede, harika bir geliştirici topluluğu tarafından kullanılmaktadır.", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "Boostnote, 200 farklı ülke ve bölgede, harika bir geliştirici topluluğu tarafından kullanılmaktadır.",
"To continue supporting this growth, and to satisfy community expectations,": "Bu büyümeyi desteklemeye devam etmek ve topluluk beklentilerini karşılamak için,", "To support our growing userbase, and satisfy community expectations,": "Bu büyümeyi desteklemeye devam etmek ve topluluk beklentilerini karşılamak için,",
"we would like to invest more time and resources in this project.": "bu projeye daha fazla zaman ve kaynak yatırmak istiyoruz.", "we would like to invest more time and resources in this project.": "bu projeye daha fazla zaman ve kaynak yatırmak istiyoruz.",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "Bu projeyi beğeniyor ve potansiyel görüyorsanız, OpenCollective üzerinden bizi destekleyerek katkıda bulunabilirsiniz!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "Bu projeyi beğeniyor ve potansiyel görüyorsanız, OpenCollective üzerinden bizi destekleyerek katkıda bulunabilirsiniz!",
"Thanks,": "Teşekkürler,", "Thanks,": "Teşekkürler,",
"Boostnote maintainers": "Boostnote'un bakımını yapanlar", "The Boostnote Team": "Boostnote'un bakımını yapanlar",
"Support via OpenCollective": "OpenCollective aracılığıyla destekle", "Support via OpenCollective": "OpenCollective aracılığıyla destekle",
"Language": "Dil", "Language": "Dil",
"English": "İngilizce", "English": "İngilizce",
@@ -140,7 +140,7 @@
"Polish": "Lehçe", "Polish": "Lehçe",
"Portuguese": "Portekizce", "Portuguese": "Portekizce",
"Spanish": "İspanyolca", "Spanish": "İspanyolca",
"You have to save!": "Kaydetmelisiniz!", "Unsaved Changes!": "Kaydetmelisiniz!",
"UserName": "KullanıcıAdı", "UserName": "KullanıcıAdı",
"Password": "Şifre", "Password": "Şifre",
"Russian": "Rusça", "Russian": "Rusça",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "打印", "Print": "打印",
"Your preferences for Boostnote": "个性设置", "Your preferences for Boostnote": "个性设置",
"Storages": "本地存储", "Storage Locations": "本地存储",
"Add Storage Location": "添加一个本地存储位置", "Add Storage Location": "添加一个本地存储位置",
"Add Folder": "新建文件夹", "Add Folder": "新建文件夹",
"Open Storage folder": "打开本地存储文件夹", "Open Storage folder": "打开本地存储文件夹",
@@ -56,7 +56,7 @@
"Preview": "预览", "Preview": "预览",
"Preview Font Size": "预览字号", "Preview Font Size": "预览字号",
"Preview Font Family": "预览字体", "Preview Font Family": "预览字体",
"Code block Theme": "代码块主题", "Code Block Theme": "代码块主题",
"Allow preview to scroll past the last line": "允许预览时滚动到最后一行", "Allow preview to scroll past the last line": "允许预览时滚动到最后一行",
"Show line numbers for preview code blocks": "在预览时显示行号", "Show line numbers for preview code blocks": "在预览时显示行号",
"LaTeX Inline Open Delimiter": "LaTeX 单行开头分隔符", "LaTeX Inline Open Delimiter": "LaTeX 单行开头分隔符",
@@ -84,14 +84,14 @@
"You can choose to enable or disable this option.": "你可以选择开启或不开启这个功能", "You can choose to enable or disable this option.": "你可以选择开启或不开启这个功能",
"Enable analytics to help improve Boostnote": "允许对数据进行分析,帮助我们改进 Boostnote", "Enable analytics to help improve Boostnote": "允许对数据进行分析,帮助我们改进 Boostnote",
"Crowdfunding": "众筹", "Crowdfunding": "众筹",
"Dear everyone,": "亲爱的用户:", "Dear Boostnote users,": "亲爱的用户:",
"Thank you for using Boostnote!": "谢谢你使用 Boostnote", "Thank you for using Boostnote!": "谢谢你使用 Boostnote",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "大约有200个不同的国家和地区的优秀开发者们都在使用 Boostnote", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "大约有200个不同的国家和地区的优秀开发者们都在使用 Boostnote",
"To continue supporting this growth, and to satisfy community expectations,": "为了继续支持这种发展,和满足社区的期待,", "To support our growing userbase, and satisfy community expectations,": "为了继续支持这种发展,和满足社区的期待,",
"we would like to invest more time and resources in this project.": "我们非常愿意投入更多的时间和资源到这个项目中。", "we would like to invest more time and resources in this project.": "我们非常愿意投入更多的时间和资源到这个项目中。",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "如果你喜欢这款软件并且看好它的潜力, 请在 OpenCollective 上支持我们!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "如果你喜欢这款软件并且看好它的潜力, 请在 OpenCollective 上支持我们!",
"Thanks,": "十分感谢!", "Thanks,": "十分感谢!",
"Boostnote maintainers": "Boostnote 的维护人员", "The Boostnote Team": "Boostnote 的维护人员",
"Support via OpenCollective": "在 OpenCollective 上支持我们", "Support via OpenCollective": "在 OpenCollective 上支持我们",
"Language": "语言", "Language": "语言",
"English": "English", "English": "English",
@@ -143,7 +143,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "你必须保存一下!", "Unsaved Changes!": "你必须保存一下!",
"Russian": "Russian", "Russian": "Russian",
"Editor Rulers": "Editor Rulers", "Editor Rulers": "Editor Rulers",
"Enable": "开启", "Enable": "开启",

View File

@@ -20,7 +20,7 @@
".html": ".html", ".html": ".html",
"Print": "列印", "Print": "列印",
"Your preferences for Boostnote": "Boostnote 偏好設定", "Your preferences for Boostnote": "Boostnote 偏好設定",
"Storages": "儲存空間", "Storage Locations": "儲存空間",
"Add Storage Location": "新增儲存位置", "Add Storage Location": "新增儲存位置",
"Add Folder": "新增資料夾", "Add Folder": "新增資料夾",
"Open Storage folder": "開啟儲存資料夾", "Open Storage folder": "開啟儲存資料夾",
@@ -55,7 +55,7 @@
"Preview": "預覽頁面", "Preview": "預覽頁面",
"Preview Font Size": "預覽頁面字型大小", "Preview Font Size": "預覽頁面字型大小",
"Preview Font Family": "預覽頁面字體", "Preview Font Family": "預覽頁面字體",
"Code block Theme": "程式碼區塊主題", "Code Block Theme": "程式碼區塊主題",
"Allow preview to scroll past the last line": "允許預覽頁面捲軸捲動超過最後一行", "Allow preview to scroll past the last line": "允許預覽頁面捲軸捲動超過最後一行",
"Show line numbers for preview code blocks": "在預覽頁面的程式碼區塊中顯示行號", "Show line numbers for preview code blocks": "在預覽頁面的程式碼區塊中顯示行號",
"LaTeX Inline Open Delimiter": "LaTeX 單行開頭符號", "LaTeX Inline Open Delimiter": "LaTeX 單行開頭符號",
@@ -82,14 +82,14 @@
"You can choose to enable or disable this option.": "你可以選擇啟用或停用這項功能", "You can choose to enable or disable this option.": "你可以選擇啟用或停用這項功能",
"Enable analytics to help improve Boostnote": "允許數據分析以協助我們改進 Boostnote", "Enable analytics to help improve Boostnote": "允許數據分析以協助我們改進 Boostnote",
"Crowdfunding": "群眾募資", "Crowdfunding": "群眾募資",
"Dear everyone,": "親愛的用戶:", "Dear Boostnote users,": "親愛的用戶:",
"Thank you for using Boostnote!": "謝謝你使用 Boostnote", "Thank you for using Boostnote!": "謝謝你使用 Boostnote",
"Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "大約有 200 個不同的國家和地區的優秀開發者們都在使用 Boostnote", "Boostnote is used in about 200 different countries and regions by an awesome community of developers.": "大約有 200 個不同的國家和地區的優秀開發者們都在使用 Boostnote",
"To continue supporting this growth, and to satisfy community expectations,": "為了繼續支持這種發展,和滿足社群的期待,", "To support our growing userbase, and satisfy community expectations,": "為了繼續支持這種發展,和滿足社群的期待,",
"we would like to invest more time and resources in this project.": "我們非常願意投入更多的時間和資源到這個專案中。", "we would like to invest more time and resources in this project.": "我們非常願意投入更多的時間和資源到這個專案中。",
"If you like this project and see its potential, you can help by supporting us on OpenCollective!": "如果你喜歡這款軟體並且看好它的潛力, 請在 OpenCollective 上支持我們!", "If you use Boostnote and see its potential, help us out by supporting the project on OpenCollective!": "如果你喜歡這款軟體並且看好它的潛力, 請在 OpenCollective 上支持我們!",
"Thanks,": "十分感謝!", "Thanks,": "十分感謝!",
"Boostnote maintainers": "Boostnote 的維護人員", "The Boostnote Team": "Boostnote 的維護人員",
"Support via OpenCollective": "在 OpenCollective 上支持我們", "Support via OpenCollective": "在 OpenCollective 上支持我們",
"Language": "語言", "Language": "語言",
"English": "English", "English": "English",
@@ -140,7 +140,7 @@
"Polish": "Polish", "Polish": "Polish",
"Portuguese": "Portuguese", "Portuguese": "Portuguese",
"Spanish": "Spanish", "Spanish": "Spanish",
"You have to save!": "你必須儲存一下!", "Unsaved Changes!": "你必須儲存一下!",
"Russian": "Russian", "Russian": "Russian",
"Editor Rulers": "編輯器中顯示垂直尺規", "Editor Rulers": "編輯器中顯示垂直尺規",
"Enable": "啟用", "Enable": "啟用",

View File

@@ -1,7 +1,7 @@
{ {
"name": "boost", "name": "boost",
"productName": "Boostnote", "productName": "Boostnote",
"version": "0.11.9", "version": "0.11.10",
"main": "index.js", "main": "index.js",
"description": "Boostnote", "description": "Boostnote",
"license": "GPL-3.0", "license": "GPL-3.0",
@@ -53,11 +53,12 @@
"aws-sdk": "^2.48.0", "aws-sdk": "^2.48.0",
"aws-sdk-mobile-analytics": "^0.9.2", "aws-sdk-mobile-analytics": "^0.9.2",
"chart.js": "^2.7.2", "chart.js": "^2.7.2",
"codemirror": "^5.39.0", "codemirror": "^5.40.2",
"codemirror-mode-elixir": "^1.1.1", "codemirror-mode-elixir": "^1.1.1",
"electron-config": "^1.0.0", "electron-config": "^1.0.0",
"electron-gh-releases": "^2.0.2", "electron-gh-releases": "^2.0.2",
"escape-string-regexp": "^1.0.5", "escape-string-regexp": "^1.0.5",
"file-uri-to-path": "^1.0.0",
"file-url": "^2.0.2", "file-url": "^2.0.2",
"filenamify": "^2.0.0", "filenamify": "^2.0.0",
"flowchart.js": "^1.6.5", "flowchart.js": "^1.6.5",
@@ -115,8 +116,10 @@
"babel-preset-react-hmre": "^1.0.1", "babel-preset-react-hmre": "^1.0.1",
"babel-register": "^6.11.6", "babel-register": "^6.11.6",
"browser-env": "^3.2.5", "browser-env": "^3.2.5",
"color": "^3.0.0",
"concurrently": "^3.4.0", "concurrently": "^3.4.0",
"copy-to-clipboard": "^3.0.6", "copy-to-clipboard": "^3.0.6",
"css": "^2.2.4",
"css-loader": "^0.19.0", "css-loader": "^0.19.0",
"devtron": "^1.1.0", "devtron": "^1.1.0",
"dom-storage": "^2.0.2", "dom-storage": "^2.0.2",

View File

@@ -1,10 +1,10 @@
:mega: The Boostnote team launches [IssueHunt](https://issuehunt.io/) for sustainable open-source ecosystem. :mega: The Boostnote team uses [IssueHunt](https://issuehunt.io/) for a sustainable open-source ecosystem.
![Boostnote app screenshot](./resources/repository/top.png) ![Boostnote app screenshot](./resources/repository/top.png)
<h4 align="center">Note-taking app for programmers. </h4> <h4 align="center">Note-taking app for programmers. </h4>
<h5 align="center">Apps available for Mac, Windows, Linux, Android and iOS.</h5> <h5 align="center">Apps available for Mac, Windows, Linux, Android, and iOS.</h5>
<h5 align="center">Built with Electron, React + Redux, Webpack and CSSModules.</h5> <h5 align="center">Built with Electron, React + Redux, Webpack, and CSSModules.</h5>
[![Build Status](https://travis-ci.org/BoostIO/Boostnote.svg?branch=master)](https://travis-ci.org/BoostIO/Boostnote) [![Build Status](https://travis-ci.org/BoostIO/Boostnote.svg?branch=master)](https://travis-ci.org/BoostIO/Boostnote)
@@ -12,16 +12,17 @@
- [Rokt33r](https://github.com/rokt33r) - [Rokt33r](https://github.com/rokt33r)
- [Sosuke](https://github.com/sosukesuzuki) - [Sosuke](https://github.com/sosukesuzuki)
- [Kazz](https://github.com/kazup01) - [Kazz](https://github.com/kazup01)
- [ZeroX-DG](https://github.com/ZeroX-DG)
## Contributors ## Contributors
Thank you to all the people who already contributed to Boostnote! Thank you to all the people who have contributed to Boostnote!
<a href="https://github.com/BoostIO/Boostnote/graphs/contributors"><img src="https://opencollective.com/boostnoteio/contributors.svg?width=890" /></a> <a href="https://github.com/BoostIO/Boostnote/graphs/contributors"><img src="https://opencollective.com/boostnoteio/contributors.svg?width=890" /></a>
## Supporting Boostnote ## Supporting Boostnote
Boostnote is an open source project. It's an independent project with its ongoing development made possible entirely thanks to the support by these awesome backers. Boostnote is an open source project. It's an independent project with its ongoing development made possible thanks to the support by our amazing backers.
Any issues on Boostnote can be funded by anyone and that money will be distributed to contributors and maintainers. If you'd like to join them, please consider: Issues on Boostnote can be funded by anyone and the money will be distributed to contributors and maintainers. If you use Boostnote please consider becoming a backer:
[![issuehunt-image](https://github.com/BoostIO/issuehunt-materials/blob/master/issuehunt-badge@1x.png?raw=true)](https://issuehunt.io/repos/53266139) [![issuehunt-image](https://github.com/BoostIO/issuehunt-materials/blob/master/issuehunt-badge@1x.png?raw=true)](https://issuehunt.io/repos/53266139)

View File

@@ -39,7 +39,7 @@ Generated by [AVA](https://ava.li).
`<ul>␊ `<ul>␊
<li class="taskListItem"><input type="checkbox" id="checkbox-2" /> Unchecked</li>␊ <li class="taskListItem"><input type="checkbox" id="checkbox-2" /> Unchecked</li>␊
<li class="taskListItem"><input type="checkbox" checked id="checkbox-3" /> Checked</li>␊ <li class="taskListItem checked"><input type="checkbox" checked id="checkbox-3" /> Checked</li>␊
</ul>␊ </ul>␊
` `

View File

@@ -1803,9 +1803,9 @@ codemirror@^5.18.2, codemirror@^5.20.2:
version "5.38.0" version "5.38.0"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.38.0.tgz#26a9551446e51dbdde36aabe60f72469724fd332" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.38.0.tgz#26a9551446e51dbdde36aabe60f72469724fd332"
codemirror@^5.39.0: codemirror@^5.40.2:
version "5.39.0" version "5.40.2"
resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.39.0.tgz#4654f7d2f7e525e04a62e72d9482348ccb37dce5" resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.40.2.tgz#f4a41fee2d84e679543591b3680af259d903330b"
coffee-script@^1.10.0, coffee-script@^1.12.4: coffee-script@^1.10.0, coffee-script@^1.12.4:
version "1.12.7" version "1.12.7"
@@ -1832,7 +1832,13 @@ color-convert@^1.3.0, color-convert@^1.9.0:
dependencies: dependencies:
color-name "^1.1.1" color-name "^1.1.1"
color-name@^1.0.0, color-name@^1.1.1: color-convert@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
dependencies:
color-name "1.1.3"
color-name@1.1.3, color-name@^1.0.0, color-name@^1.1.1:
version "1.1.3" version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
@@ -1842,6 +1848,13 @@ color-string@^0.3.0:
dependencies: dependencies:
color-name "^1.0.0" color-name "^1.0.0"
color-string@^1.5.2:
version "1.5.3"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
dependencies:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@^0.11.0: color@^0.11.0:
version "0.11.4" version "0.11.4"
resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
@@ -1850,6 +1863,13 @@ color@^0.11.0:
color-convert "^1.3.0" color-convert "^1.3.0"
color-string "^0.3.0" color-string "^0.3.0"
color@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
dependencies:
color-convert "^1.9.1"
color-string "^1.5.2"
colormin@^1.0.5: colormin@^1.0.5:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
@@ -2149,6 +2169,15 @@ css-selector-tokenizer@^0.5.0, css-selector-tokenizer@^0.5.1:
cssesc "^0.1.0" cssesc "^0.1.0"
fastparse "^1.1.1" fastparse "^1.1.1"
css@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
dependencies:
inherits "^2.0.3"
source-map "^0.6.1"
source-map-resolve "^0.5.2"
urix "^0.1.0"
cssesc@^0.1.0: cssesc@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4"
@@ -3520,6 +3549,10 @@ file-entry-cache@^2.0.0:
flat-cache "^1.2.1" flat-cache "^1.2.1"
object-assign "^4.0.1" object-assign "^4.0.1"
file-uri-to-path@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
file-url@^2.0.2: file-url@^2.0.2:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/file-url/-/file-url-2.0.2.tgz#e951784d79095127d3713029ab063f40818ca2ae" resolved "https://registry.yarnpkg.com/file-url/-/file-url-2.0.2.tgz#e951784d79095127d3713029ab063f40818ca2ae"
@@ -4587,6 +4620,10 @@ is-arrayish@^0.2.1:
version "0.2.1" version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
is-arrayish@^0.3.1:
version "0.3.2"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
is-binary-path@^1.0.0: is-binary-path@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
@@ -8043,6 +8080,12 @@ signale@^1.2.1:
figures "^2.0.0" figures "^2.0.0"
pkg-conf "^2.1.0" pkg-conf "^2.1.0"
simple-swizzle@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
dependencies:
is-arrayish "^0.3.1"
single-line-log@^1.1.2: single-line-log@^1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
@@ -8134,7 +8177,7 @@ source-list-map@^0.1.4, source-list-map@~0.1.7:
version "0.1.8" version "0.1.8"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106"
source-map-resolve@^0.5.0: source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
version "0.5.2" version "0.5.2"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
dependencies: dependencies: