Merge branch 'master' into dev
This commit is contained in:
commit
0afdaa557f
13
.travis.yml
13
.travis.yml
@ -1,3 +1,16 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
|
|
||||||
node_js:
|
node_js:
|
||||||
- "8"
|
- "8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
|
||||||
|
before_deploy:
|
||||||
|
- docker build -t benweet/stackedit .
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
provider: script
|
||||||
|
script: bash build/docker-push-tag.sh
|
||||||
|
on:
|
||||||
|
tags: true
|
||||||
|
7
build/docker-push-tag.sh
Normal file
7
build/docker-push-tag.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
docker login -u benweet -p "$DOCKER_PASSWORD"
|
||||||
|
docker tag benweet/stackedit "benweet/stackedit:$TRAVIS_TAG"
|
||||||
|
docker push benweet/stackedit:$TRAVIS_TAG
|
||||||
|
docker tag benweet/stackedit:$TRAVIS_TAG benweet/stackedit:latest
|
||||||
|
docker push benweet/stackedit:latest
|
7
index.js
7
index.js
@ -18,3 +18,10 @@ const httpServer = http.createServer(app);
|
|||||||
httpServer.listen(port, null, () => {
|
httpServer.listen(port, null, () => {
|
||||||
console.log(`HTTP server started: http://localhost:${port}`);
|
console.log(`HTTP server started: http://localhost:${port}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Handle graceful shutdown
|
||||||
|
process.on('SIGTERM', () => {
|
||||||
|
httpServer.close(() => {
|
||||||
|
process.exit(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "stackedit",
|
"name": "stackedit",
|
||||||
"version": "5.10.2",
|
"version": "5.10.5",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "stackedit",
|
"name": "stackedit",
|
||||||
"version": "5.10.2",
|
"version": "5.10.5",
|
||||||
"description": "Free, open-source, full-featured Markdown editor",
|
"description": "Free, open-source, full-featured Markdown editor",
|
||||||
"author": "Benoit Schweblin",
|
"author": "Benoit Schweblin",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
|
@ -75,7 +75,7 @@ export default {
|
|||||||
}),
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
panel() {
|
panel() {
|
||||||
return this.$store.getters['data/layoutSettings'].sideBarPanel;
|
return !this.$store.state.light && this.$store.getters['data/layoutSettings'].sideBarPanel;
|
||||||
},
|
},
|
||||||
panelName() {
|
panelName() {
|
||||||
return panelNames[this.panel];
|
return panelNames[this.panel];
|
||||||
|
@ -13,7 +13,9 @@
|
|||||||
StackEdit on <a target="_blank" href="https://twitter.com/stackedit/">Twitter</a>
|
StackEdit on <a target="_blank" href="https://twitter.com/stackedit/">Twitter</a>
|
||||||
<br>
|
<br>
|
||||||
<a target="_blank" href="https://community.stackedit.io/">Community</a>
|
<a target="_blank" href="https://community.stackedit.io/">Community</a>
|
||||||
<hr>
|
<div class="modal__info">
|
||||||
|
For commercial support or custom development, please <a href="mailto:stackedit.project@gmail.com">send us an email</a>.
|
||||||
|
</div>
|
||||||
<h3>FAQ</h3>
|
<h3>FAQ</h3>
|
||||||
<div class="faq" v-html="faq"></div>
|
<div class="faq" v-html="faq"></div>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
**Where is my data stored?**
|
**Where is my data stored?**
|
||||||
|
|
||||||
If your workspace is not synced, your files are only stored inside your browser (using the [IndexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)) and are not stored anywhere else.
|
If your workspace is not synced, your files are only stored inside your browser (using the [IndexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)) and are not stored anywhere else.
|
||||||
|
|
||||||
We recommend syncing your workspace to make sure files won't be lost in case your browser data is cleared.
|
We recommend syncing your workspace to make sure files won't be lost in case your browser data is cleared.
|
||||||
|
|
||||||
**Where is my data stored once I sync my workspace?**
|
**Where is my data stored once I sync my workspace?**
|
||||||
|
|
||||||
If you sign in with Google, your main workspace will be stored in Google Drive (in your [app data folder](https://developers.google.com/drive/v3/web/appdata)).
|
If you sign in with Google, your main workspace will be stored in Google Drive (in your [app data folder](https://developers.google.com/drive/v3/web/appdata)).
|
||||||
|
|
||||||
If you open a Google Drive workspace, the files in the workspace will be stored inside a Google Drive folder which you can share with other users.
|
If you open a Google Drive workspace, the files in the workspace will be stored inside a Google Drive folder which you can share with other users.
|
||||||
|
|
||||||
If you open a CouchDB workspace, the files in the workspace will be stored in the CouchDB database which can be hosted on premises for privacy concerns.
|
If you open a CouchDB workspace, the files in the workspace will be stored in the CouchDB database which can be hosted on premises for privacy concerns.
|
||||||
|
|
||||||
**Can StackEdit access my data without telling me?**
|
**Can StackEdit access my data without telling me?**
|
||||||
|
|
||||||
StackEdit is a frontend application. The access tokens issued by Google, Dropbox, GitHub... are stored in your browser and are not sent to our backend or to 3rd parties so your data won't be accessed by anybody.
|
StackEdit is a frontend application. The access tokens issued by Google, Dropbox, GitHub... are stored in your browser and are not sent to any backend or 3^rd^ parties so your data won't be accessed by anyone.
|
||||||
|
@ -335,6 +335,7 @@ function cledit(contentElt, scrollEltOpt, isMarkdown = false) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
turndownService = new TurndownService(store.getters['data/computedSettings'].turndown);
|
turndownService = new TurndownService(store.getters['data/computedSettings'].turndown);
|
||||||
|
turndownService.escape = str => str; // Disable escaping
|
||||||
}
|
}
|
||||||
|
|
||||||
contentElt.addEventListener('paste', (evt) => {
|
contentElt.addEventListener('paste', (evt) => {
|
||||||
@ -347,7 +348,7 @@ function cledit(contentElt, scrollEltOpt, isMarkdown = false) {
|
|||||||
if (turndownService) {
|
if (turndownService) {
|
||||||
try {
|
try {
|
||||||
const html = clipboardData.getData('text/html');
|
const html = clipboardData.getData('text/html');
|
||||||
if (html && !clipboardData.getData('text/css')) {
|
if (html) {
|
||||||
const sanitizedHtml = htmlSanitizer.sanitizeHtml(html)
|
const sanitizedHtml = htmlSanitizer.sanitizeHtml(html)
|
||||||
.replace(/ /g, ' '); // Replace non-breaking spaces with classic spaces
|
.replace(/ /g, ' '); // Replace non-breaking spaces with classic spaces
|
||||||
if (sanitizedHtml) {
|
if (sanitizedHtml) {
|
||||||
|
@ -23,8 +23,11 @@ const isGoogleSponsor = () => {
|
|||||||
|
|
||||||
const checkPayment = () => {
|
const checkPayment = () => {
|
||||||
const currentDate = Date.now();
|
const currentDate = Date.now();
|
||||||
if (!isGoogleSponsor() && networkSvc.isUserActive() && !store.state.offline &&
|
if (!isGoogleSponsor()
|
||||||
lastCheck + checkPaymentEvery < currentDate
|
&& networkSvc.isUserActive()
|
||||||
|
&& !store.state.offline
|
||||||
|
&& !store.state.light
|
||||||
|
&& lastCheck + checkPaymentEvery < currentDate
|
||||||
) {
|
) {
|
||||||
lastCheck = currentDate;
|
lastCheck = currentDate;
|
||||||
getMonetize()
|
getMonetize()
|
||||||
|
Loading…
Reference in New Issue
Block a user