From 9bf96e943d00d085c2c82ea39d355376f37cd90f Mon Sep 17 00:00:00 2001 From: Nikolay Lopin Date: Mon, 19 Mar 2018 00:22:07 +0300 Subject: [PATCH 1/3] Add `filenamify` dependency --- package.json | 1 + yarn.lock | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/package.json b/package.json index 3aec6b606..1b8898693 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "codemirror-mode-elixir": "^1.1.1", "electron-config": "^0.2.1", "electron-gh-releases": "^2.0.2", + "filenamify": "^2.0.0", "flowchart.js": "^1.6.5", "font-awesome": "^4.3.0", "i18n-2": "^0.7.2", diff --git a/yarn.lock b/yarn.lock index a0d515466..defb4563b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3066,6 +3066,18 @@ filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + +filenamify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.0.0.tgz#bd162262c0b6e94bfbcdcf19a3bbb3764f785695" + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -7050,6 +7062,12 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" +strip-outer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8" + dependencies: + escape-string-regexp "^1.0.2" + striptags@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/striptags/-/striptags-2.2.1.tgz#4c450b708d41b8bf39cf24c49ff234fc6aabfd32" @@ -7334,6 +7352,12 @@ trim-off-newlines@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + dependencies: + escape-string-regexp "^1.0.2" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" From 0c4e72e507062f9cd765ccf6b63e2a11443240b1 Mon Sep 17 00:00:00 2001 From: Nikolay Lopin Date: Mon, 19 Mar 2018 00:28:36 +0300 Subject: [PATCH 2/3] Replace forbidden filename symbols to _ --- browser/main/lib/dataApi/exportFolder.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/browser/main/lib/dataApi/exportFolder.js b/browser/main/lib/dataApi/exportFolder.js index bb3b28346..3e998f150 100644 --- a/browser/main/lib/dataApi/exportFolder.js +++ b/browser/main/lib/dataApi/exportFolder.js @@ -1,6 +1,7 @@ import { findStorage } from 'browser/lib/findStorage' import resolveStorageData from './resolveStorageData' import resolveStorageNotes from './resolveStorageNotes' +import filenamify from 'filenamify' import * as path from 'path' import * as fs from 'fs' @@ -45,7 +46,7 @@ function exportFolder (storageKey, folderKey, fileType, exportDir) { notes .filter(note => note.folder === folderKey && note.isTrashed === false && note.type === 'MARKDOWN_NOTE') .forEach(snippet => { - const notePath = path.join(exportDir, `${snippet.title}.${fileType}`) + const notePath = path.join(exportDir, `${filenamify(snippet.title, {replacement: '_'})}.${fileType}`) fs.writeFileSync(notePath, snippet.content) }) From 657759995984ebc7f8db6d727eae7b92d01d9c1b Mon Sep 17 00:00:00 2001 From: Nikolay Lopin Date: Mon, 19 Mar 2018 00:33:23 +0300 Subject: [PATCH 3/3] Replace forbidden filename symbols to _ for image export --- browser/main/lib/dataApi/exportNote.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/browser/main/lib/dataApi/exportNote.js b/browser/main/lib/dataApi/exportNote.js index 740baa20d..313bb85b3 100755 --- a/browser/main/lib/dataApi/exportNote.js +++ b/browser/main/lib/dataApi/exportNote.js @@ -1,5 +1,6 @@ import copyFile from 'browser/main/lib/dataApi/copyFile' import {findStorage} from 'browser/lib/findStorage' +import filenamify from 'filenamify' const fs = require('fs') const path = require('path') @@ -28,6 +29,7 @@ function exportNote (storageKey, noteContent, targetPath, outputFormatter) { } let exportedData = noteContent.replace(LOCAL_STORED_REGEX, (match, dstFilename, srcFilename) => { + dstFilename = filenamify(dstFilename, {replacement: '_'}) if (!path.extname(dstFilename)) { dstFilename += path.extname(srcFilename) }