with 2794
_If you do not have a local copy of the master branch yet_
```
diff --git a/docs/ko/build.md b/docs/ko/build.md
index 17e9c712..d9a5f4a9 100644
--- a/docs/ko/build.md
+++ b/docs/ko/build.md
@@ -5,8 +5,6 @@
* npm: 6.x
* node: 8.x
-`$ grunt pre-build`를 `npm v5.x`에서 실행할 수 없기 때문에, 반드시 `npm v4.x`를 사용하셔야 합니다.
-
## 개발
개발에 있어서 Webpack HRM을 사용합니다.
@@ -29,6 +27,34 @@ $ yarn run dev
> 1. 콤포넌트의 컨스트럭터 함수를 수정할 경우
> 2. 새로운 CSS코드를 추가할 경우(1.과 같은 이유: CSS클래스는 콤포넌트마다 다시 만들어 지는데, 이 작업은 컨스트럭터에서 일어납니다.)
+## Pull Request에 사용된 코드를 적용하는 방법
+관련된 Pull request 페이지를 방문하여, url 스트링 마지막에 표기된 PR 번호를 확인합니다.
+
+https://github.com/BoostIO/Boostnote/pull/2794
+
+아래의 커맨드를 실행하면서, \ 대신에 위에서 확인한 번호를 입력합니다 (부등호 신호는 빼고 입력하세요).
+위에 보여진 예시의 경우, \ 자리에 2794를 입력하면 됩니다.
+
+_본인의 로컬 컴퓨터에 마스터 브랜치가 복사되어 있지 않은 경우_
+```
+git clone https://github.com/BoostIO/Boostnote.git
+cd Boostnote
+git fetch origin pull//head:
+git checkout
+```
+
+_이미 마스터 브랜치를 로컬 컴퓨터에 저장해둔 경우_
+```
+git fetch origin pull//head:
+git checkout
+```
+
+_To compile and run the code_
+```
+yarn
+yarn run dev
+```
+
## 배포
Boostnote에서는 배포 자동화를 위하여 그런트를 사용합니다.
@@ -43,3 +69,31 @@ grunt pre-build
실행 파일은 `dist`에서 찾을 수 있습니다. 이 경우, 인증이 되어있지 않기 때문에 업데이터는 사용할 수 없습니다.
필요로 하다면, 이 실행파일에 Codesign나 Authenticode등의 서명을 할 수 있습니다.
+
+## 독자적인 배포판을 제작하는 방법 (deb, rpm)
+
+배포판 패키지를 제작하려면 (우분투, 페도라 등) 리눅스 플랫폼에서 `grunt build` 커맨드를 실행하면 됩니다.
+
+> 참조: 동일한 환경에서 `.deb` 파일과 `.rpm` 파일을 모두 만들 수 있습니다.
+
+지원되는 버전의 `node`와 `npm`을 설치한 다음, 빌드에 필요한 패키지를 설치합니다.
+
+우분투/데비안 환경 (Ubuntu/Debian):
+
+```
+$ sudo apt-get install -y rpm fakeroot
+```
+
+페도라 환경 (Fedora):
+
+```
+$ sudo dnf install -y dpkg dpkg-dev rpm-build fakeroot
+```
+
+그 다음 `grunt build` 커맨드를 실행합니다.
+
+```
+$ grunt build
+```
+
+`dist` 디렉토리에 `.deb` 파일과 `.rpm` 파일이 새롭게 생성됩니다.
diff --git a/docs/ko/debug.md b/docs/ko/debug.md
index 290eee9c..6d68d951 100644
--- a/docs/ko/debug.md
+++ b/docs/ko/debug.md
@@ -1,5 +1,7 @@
# Boostnote의 디버그 방법(Electron app)
+## 구글 크롬 Developer Tools를 사용한 디버깅
+
Boostnote는 Electron 애플리케이션이므로 Chromium위에서 작동합니다. 그렇기 때문에 개발자분들은 Google Chrome 브라우저에서 처럼 `Developer Tools`를 사용하실 수 있습니다.
다음과 같이 `Developer Tools`를 실행할 수 있습니다:
@@ -10,12 +12,26 @@ Boostnote는 Electron 애플리케이션이므로 Chromium위에서 작동합니
에러가 발생할 때에는, 에러메시지가 `console`위에 표시 됩니다.
-## 디버깅
+### 디버깅
예를들면 `debugger`를 사용하여 코드 안에서 다음과 같이 일시 정지지점을 설정할 수 있습니다:

이는 단순한 하나의 예시에 불과합니다. 자기자신에게 가장 잘 맞는 디버그 방법을 찾는 것도 좋을 것 입니다.
-## 참고
+ ### 참고
* [디버그에 관한 Google Chrome의 공식 문서](https://developer.chrome.com/devtools)
+
+## 비주얼 스튜디오 코드를 사용한 디버깅
+
+1. **[크롬 디버깅 플러그인](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome 'Install Debugger for Chrome')** 을 비주얼 스튜디오 코드에 설치한 후, 프로그램을 닫았다가 재실행합니다.
+2. **Shift+Command+B** 키를 누르거나, **Terminal** 메뉴 하단에 있는 **Run Build Task** 메뉴를 선택한 후 **Build Boostnote** 를 선택합니다. 아니면 터미널에서 곧바로 `yarn run watch`를 실행해도 됩니다.
+3. 위의 절차가 실행되고 있을 때, 사이드바 **Activity Bar**에서 **Debug view**를 선택합니다. 키보드 단축키로는 **Shift+Command+D**를 눌러도 됩니다..
+4. **Debug configuration**에서 **Boostnote All** 설정을 선택한 후, 초록색 화살표를 클릭하거나 **F5** 키를 누르면 디버깅이 시작됩니다.
+5. 이 시점에서는 **Boostnote**가 실행되고 있을 텐데, 두 개의 프로세스가 진행중인 것을 볼 수 있을 겁니다. 바로 **Boostnote Main** 프로세스와 **Boostnote Renderer** 프로세스입니다. 이제 비주얼 스튜디오 코드에서 곧바로 **디버깅 정지지점 (debug breakpoint)** 을 설정할 수 있습니다. 만약에 지정한 **정지지점 (breakpoint)** 이 등록되지 않는다면, **Boostnote Renderer** 와 **Boostnote Main** 프로세스 사이를 번갈아 확인해 보아야 합니다.
+
+
+### 참고
+
+- [일렉트론 애플리케이션 디버깅 공식 튜토리얼](https://electronjs.org/docs/tutorial/application-debugging)
+- [비쥬얼 스튜디오 코드용 크롬 디버깅 플러그인](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome)
diff --git a/docs/zh_TW/build.md b/docs/zh_TW/build.md
index 151f946d..4f9c7a96 100644
--- a/docs/zh_TW/build.md
+++ b/docs/zh_TW/build.md
@@ -10,7 +10,6 @@
## 開發
我們使用 Webpack HMR 來開發 Boostnote。
-
在專案根目錄底下執行下列指令,將會以原始設置啟動 Boostnote。
**用 yarn 來安裝必要 packages**
@@ -19,41 +18,70 @@
$ yarn
```
-**開始開發**
+**編譯及執行**
```
$ yarn run dev
```
-> ### Notice
+> ### 注意
>
-> There are some cases where you have to refresh the app manually.
+> 以下是一些可能要手動重新啟動程式的情況。
>
-> 1. When editing a constructor method of a component
-> 2. When adding a new css class (similar to 1: the CSS class is re-written by each component. This process occurs at the Constructor method.)
+> 1. 修改一個 component 的 constructor 方法時。
+> 2. 新增新的 CSS 類別時 (和 1 很類似:CSS 類別會被每個 component 重寫過。這個過程在 constructor 方法中發生)。
-## Deploy
+## 使用 Pull Requests 中的程式碼
+瀏覽 pull request 的頁面,從 URL 的後面找到 PR 號碼。
-We use Grunt to automate deployment.
-You can build the program by using `grunt`. However, we don't recommend this because the default task includes codesign and authenticode.
+
+https://github.com/BoostIO/Boostnote/pull/2794
+
+接著,於底下步驟中把 \ 換成這個號碼 (沒有括號)。
+請將下方 URL 中的 \ 換置成 2794。
-So, we've prepared a separate script which just makes an executable file.
+_如果您還未取得一份 master branch 的本地備份_
+```
+git clone https://github.com/BoostIO/Boostnote.git
+cd Boostnote
+git fetch origin pull//head:
+git checkout
+```
+
+_如果您已經擁有了 master branch_
+```
+git fetch origin pull//head:
+git checkout
+```
+
+_編譯及執行程式碼_
+```
+yarn
+yarn run dev
+```
+
+## 佈署
+
+我們用 Grunt 做自動佈署。
+您能使用 `grung` 建構本程式。然而,我們並不建議這麼做,因為預設工作流程包含了程式簽名以及 Authenticode 驗證。
+
+所以,我們準備了一份額外的腳本用於建構可執行檔。
```
grunt pre-build
```
-You will find the executable in the `dist` directory. Note, the auto updater won't work because the app isn't signed.
+您可以在 `dist` 資料夾下找到可執行檔。注意,自動更新功能 (auto updater) 並不會生效,因為程式沒有被簽署過。
-If you find it necessary, you can use codesign or authenticode with this executable.
+必要時您可以使用程式簽名或 authenticode 驗證執行檔。
-## Make own distribution packages (deb, rpm)
+## 建立您自己的發行版套件 (deb, rpm)
-Distribution packages are created by exec `grunt build` on Linux platform (e.g. Ubuntu, Fedora).
+發行版套件可以透過在 Linux 平台上 (如 Ubuntu, Fedora) 執行 `grunt build` 來建立。
-> Note: You can create both `.deb` and `.rpm` in a single environment.
+> 注意:您可以在同個環境中同時建立 `.deb` 及`.rpm` 。
-After installing the supported version of `node` and `npm`, install build dependency packages.
+安裝支援版本的 `node` 和 `npm` 後,安裝編譯相依套件。
Ubuntu/Debian:
@@ -67,10 +95,10 @@ Fedora:
$ sudo dnf install -y dpkg dpkg-dev rpm-build fakeroot
```
-Then execute `grunt build`.
+接著執行 `grunt build`。
```
$ grunt build
```
-You will find `.deb` and `.rpm` in the `dist` directory.
+於 `dist` 資料夾下找到 `.deb` 及 `.rpm`。
diff --git a/yarn.lock b/yarn.lock
index 77621a24..2d153615 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -486,7 +486,7 @@ async@^0.9.0, async@~0.9.0:
version "0.9.2"
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-async@^1.3.0, async@^1.4.0, async@^1.4.2, async@^1.5.1, async@^1.5.2:
+async@^1.3.0, async@^1.4.2, async@^1.5.1, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -3669,8 +3669,9 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
is-extendable "^1.0.1"
extend@~3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extglob@^0.3.1:
version "0.3.2"
@@ -3952,6 +3953,7 @@ font-awesome@^4.3.0:
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
for-own@^0.1.4:
version "0.1.5"
@@ -4420,14 +4422,15 @@ gud@^1.0.0:
integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==
handlebars@^4.0.3:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
+ integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
dependencies:
- async "^1.4.0"
+ neo-async "^2.6.0"
optimist "^0.6.1"
- source-map "^0.4.4"
+ source-map "^0.6.1"
optionalDependencies:
- uglify-js "^2.6"
+ uglify-js "^3.1.4"
har-schema@^2.0.0:
version "2.0.0"
@@ -4997,6 +5000,7 @@ is-extendable@^0.1.0, is-extendable@^0.1.1:
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
dependencies:
is-plain-object "^2.0.4"
@@ -5126,6 +5130,7 @@ is-plain-obj@^1.0.0:
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
dependencies:
isobject "^3.0.1"
@@ -5229,6 +5234,7 @@ isobject@^2.0.0:
isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
isomorphic-fetch@^2.1.1:
version "2.2.1"
@@ -6553,6 +6559,7 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+ integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
minipass@^2.2.1, minipass@^2.3.3:
version "2.3.3"
@@ -6568,8 +6575,9 @@ minizlib@^1.1.0:
minipass "^2.2.1"
mixin-deep@^1.1.3, mixin-deep@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
@@ -6696,6 +6704,11 @@ negotiator@0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+neo-async@^2.6.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+ integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+
next-tick@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
@@ -7021,6 +7034,7 @@ open@0.0.5:
optimist@^0.6.1, optimist@~0.6.0, optimist@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
dependencies:
minimist "~0.0.1"
wordwrap "~0.0.2"
@@ -8976,12 +8990,6 @@ source-map@0.5.6:
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-source-map@^0.4.4, source-map@~0.4.1:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
@@ -8990,6 +8998,12 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+source-map@~0.4.1:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
sourcemapped-stacktrace@^1.1.6:
version "1.1.8"
resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.8.tgz#6b7a3f1a6fb15f6d40e701e23ce404553480d688"
@@ -9680,14 +9694,13 @@ uc.micro@^1.0.5:
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
-uglify-js@^2.6:
- version "2.8.29"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+uglify-js@^3.1.4:
+ version "3.7.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.3.tgz#f918fce9182f466d5140f24bb0ff35c2d32dcc6a"
+ integrity sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg==
dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
+ commander "~2.20.3"
+ source-map "~0.6.1"
uglify-js@^3.5.1:
version "3.6.9"
@@ -10144,6 +10157,7 @@ wordwrap@0.0.2:
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+ integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
wordwrap@~1.0.0:
version "1.0.0"