Quiverをはじめよう

karu4n edited this page May 20, 2016 · 3 revisions

1 - はじめに

Quiverへようこそ! このチュートリアルはQuiverを始めるのに役立つでしょう。

Quiverはプログラマのために開発されたノートブックです。Quiverを使えばテキスト、コード、Markdown、LaTeXが混在したノートを簡単に作成したり、優れたコードエディタを使ってコードを編集したり、MarkdownやLaTeXのライブプレビューすることもできます。そして、どのノートも全文検索可能です。

すぐにQuiverを使ってみたいなら、1つだけ覚えてください。

Quiverのノートはセルで構成される

セルはテキストのスニペットだったり、コードだったり、Markdown、はたまたLaTeXだったりしますが、それらを自由に組み合わせることができます。そして、同じノートの中で、異なる言語のセルを組みあわせて使用できます。

新しいノートの内側をクリックして入力をはじめましょう。「シフト+リターン」(⇧⏎)を押すと新しいセルが作成されます。そして、「バックスペース」を押せばセルをマージすることができます。以上が、Quiverを使い始めるために知っておくことのすべてです。

さらに詳しく知りたいなら、続きを読んでください。

2 - セルの種類

現在、5種類のセルがサポートされています。

  1. "テキストセル"はリッチテキストを編集できます。画像とリンクもサポートしています。
  2. "コードセル"は素晴らしいACEエディタを内蔵しており、120種類以上の言語のシンタクスハイライト、20以上のテーマ、自動インデントとアウトデント、コード補完などをサポートしています。
  3. "Markdownセル"はインラインの整形とカスタムCSSをサポートしています。
  4. "LaTeXセル"はMathJax使用してノートに数式を書くことができます。
  5. "ダイアグラムセル"はテキストからシーケンス図やフローチャートを作成することができます。

テキストセル

text-cell-style

画面の上にあるツールバーか、ショートカットキーでテキストの書式を変更することができます。"Format"メニューの配下に、すべての書式変更オプションとキーボードショートカットがありますので、ご覧ください。

コードセル

以下はJavaScriptモードに設定したコードセルです。

void hello()
{
    console.log("Hello World!");
}

そして、これはCoffeeScriptモードに設定したコードのセルです。

hello = -> console.log 'Hello World!'

「コードセル」は120種類以上の言語のシンタクスハイライト、20以上のテーマ、自動インデント、およびアウトデント、コードの折りたたみ、マルチカーソルと選択、コード補完、タブトリガー、Vim/Emacsのキーバインディングなどをサポートしています。 詳しくは素晴らしいAceエディタのサイトをご覧ください(http://ace.c9.io/)

Markdownセル

Markdownセルは標準のMarkdown構文に加えて、GitHub Flavored Markdown(GFM)をサポートしています。

基本

# H1
## H2
### H3
#### H4
##### H5
###### H6

---

*italic*, **bold**, ~~Scratch this.~~

`inline code`

リスト

1. First ordered list item
2. Another item
  * Unordered sub-list. 
1. Actual numbers don't matter, just that it's a number
  1. Ordered sub-list
4. And another item.

引用

> Peace cannot be kept by force; it can only be achieved by understanding.

リンク

[I'm an inline-style link](https://www.google.com)
http://example.com

ノート間のリンクも設定できます。 (Note menu -> Copy Note Link -> Paste)

[01 - Getting Started](quiver-note-url/D2A1CC36-CC97-4701-A895-EFC98EF47026)

テーブル

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |

GFM タスクリスト

- [ ] a task list item
- [ ] list syntax required
- [ ] normal **formatting**, @mentions, #1234 refs
- [ ] incomplete
- [x] completed

インラインLaTeX

Markdownセル中にインラインでLaTeXを書くことができます。例えばこんな感じ。 $x^2$

LaTexセル

LaTeXセルを使えば、簡単に数式を書くことができます。例えば、

\begin{align}
  \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
  \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
  \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
  \nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}

これは次のようにレンダリングされます。

latex-cell-rendered

インラインのLaTexもサポートしています。例えば $x^2$

また、環境設定でカスタムマクロを追加することができます。追加したマクロはすべてのLaTeXのセルで利用可能です。

ダイアグラムセル

ダイアグラムセルは、プレーンテキストからシーケンス図やフローチャートを作成できます。

ダイアグラムを書くための構文は、以下で確認してください。

シーケンス図の例:

Title: Here is a title
A->B: Normal line
B-->C: Dashed line
C->>D: Open arrow
D-->>A: Dashed open arrow

以下のようにレンダリングされます。

sequence-diagram-rendered

フローチャートの例:

st=>start: Start:>http://www.google.com[blank]
e=>end:>http://www.google.com
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes
or No?:>http://www.google.com
io=>inputoutput: catch something...

st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1

以下のようにレンダリングされます。

flowchart-rendered

セルの操作

Quiverのセルの操作はとても強力で直感的です。

最も重要なのは新しいセルを作ることです。「シフト+リターン」(⇧⏎)を押して、カレントセルの下に新しいセルを作ってみてください。デフォルトではテキストセルが作成されますが、他のセルに変えることもできます。

他のセルタイプに変更するには、いくつかの方法があります。ツールバーのポップアップボタンを使う、または、ショートカットキー(⌥⌘1 でテキストセル、 ⌥⌘2でコードセル、 ⌥⌘3でMarkdownセル、⌥⌘4でLaTeXセル, ⌥⌘5でダイアグラムセル)を使う方法もあります。これらのオプションは“Cell”メニューの配下にあります。

もう一つの重要なセル操作にセルのマージがあります。マージするセルの2番目のセルにカーソルを移動し、「バックスペース」キーを押せば、2つのセルをマージできます。異なるタイプのセルはマージできません。

現在のカーソル位置に新しいセルを追加したい場合 "New Cell At Cursor" (⇧⌘I)メニューを選んでください。

セルをコピー&ペースト、切り取り、分割、上下への移動も可能です。これらすべてのセル操作は“Cell”メニューの配下から選択可能です。

4 - 画像、ファイルとリンク

画像はテキストセルにドラッグ、またはペーストすることができます。ツールバーの“Insert Image”ボタンも使用できます。

画像はノート内部のリソースフォルダへコピーされるので、元の画像が削除されても大丈夫です。

テキストセルにファイル(例えば、PDF、ZIP、ソースファイル)をドラッグした場合は、ノートにコピーするか、参照リンクにするかを選ぶことができます。 ツールバーの“attach file"ボタンを使用することもできます。

テキストセルのURLは自動的に検出されます。例えば http://www.apple.com.

ノートリンクという便利な機能もあります。“Note”メニューの“Copy Note Link” (⌃⌥⌘C)を選択すると、ノートリンクを作成できます。

02 - Cell Types

03 - Cell Operations

この機能はノート間でクロスリファレンスを作成するのに便利です。異なるノートブック間でもリンクすることができます。

ノートリンクはMarkdownセルでも使用可能です。“Note”メニューの“Copy Note Link” (⌃⌥⌘C)でノートリンクをコピーし、Markdownセルへペーストしてください。例えば、こんな感じ。

[02 - Cell Types](quiver-note-url/9686AA1A-A5E9-41FF-9260-C3E0D0E9D4CB)

プレビューまたはプレゼンテーションモードでは、ノートリンクとしてレンダリングされます。

5 - プレビューとプレゼンテーション

ライブプレビュー

QuiverはMarkdownセルとLaTeXセルのライブプレビューをサポートしています。(⌘6)でサイド・バイ・サイドプレビューにスイッチすると、エディタとプレビューを横並びで表示することができます。

また、ノートリストでノートをダブルクリックし、新しいウィンドウで開いた後で、サイドバイサイドプレビューに切り替えると、このように表示されます。

エディタで変更を行うと、プレビューが自動的に更新されます。

デフォルトでは、エディタとプレビューは同期してスクロールしますが、View Menu > Note View > Scroll Syncメニューで、この機能をオフにすることができます。

プレゼンテーションモード

Quiverはフルスクリーンのプレゼンテーションモードをサポートしています。 “Note”メニューから“Start Presentation” (⌃⌥⌘P)を選ぶか、ノートの右下にあるプレゼンテーションボタンを押すと、プレゼンテーションモードが開始します。

プレゼンテーションモードは、教室での使用、チームミーティング、プレゼンテーション、または自分でノートを見直す場合などに便利です。

プレゼンテーションモードでは、左右のカーソルキーでノートリストの前後のノートを切り替えることができます。

6 - 全文検索

ノートはすぐに探せなければ意味がありません。 Quiverの全文検索はSearch Kitをベースにしており、Macの強力なスポットライトと同じテクロジーを使用しています。Quiverが数千のノートから一瞬で検索できるのはこのためです。

右上にある検索ボタンをクリックすると、すべてのノートを対象とした検索が可能です。キーワード、タイトルまたは #tag で検索できます。

特定のノートブックだけを対象とした検索も可能です。まずノートブックを開き、ノートリストの下にある検索フィールドへ、キーワードか #tagを入力します。この検索フィールドは、すべてのノートブックを対象としたグローバル検索と同様の全文検索が行われますが、こちらはマッチしたノートだけがノートリストで絞りこまれていきます。

ノート内のテキストを検索したい場合は、⌘Fを使用します。このような検索バーが表示されます。

⌘G(またはリターンキー)を押すと、次のマッチ箇所へ移動します。⇧⌘G(または+リターンをシフト)を押すと逆向きに検索します。

検索バーは、エディタとプレビューの両方で使用可能です。

7 - タグ付け

Quiverではノートにタグ付できます。これは、あなたのノートを整理する別の方法です。

タグビューでノートをブラウズできます。

複数のノートを選択して、まとめてタグを追加、削除することもできます。

8 - クラウド同期

QuiverはDropbox、iCloudドライブ、Googleドライブ、またはその他のファイルベースのクラウドサービスを使って複数のコンピュータ間でノートを同期することができます。

クラウド同期を設定するには、PreferencesのSyncタブを開きます。

別のコンピュータで同じライブラリを開き、Dropboxや他のクラウドサービスへあなたのライブラリーを移動します。 ここからは、すべてのメモがすべてのデバイス間で同期されます。

9 チームコラボレーション

Quiverをチームでコラボレーションする方法はいくつかあります。

共有ノートブック

共有ノートブックはDropbox、iCloudドライブ、Googleドライブ、またはその他のファイルベースのクラウドサービスに保存されたQuiverのノートブックです。共有ノートブックは既存のノートブック、または一からを作成することができます。他のチームメンバーは、別のコンピュータでノートブックを開き、編集することができます。 これはチーム全体でナレッジを共有するための素晴らしい方法です。

複数のユーザーが同時に同じ共有ノートブックを編集可能で、ノートブックの変更(ノートの追加や削除)は同期されます。 しかし、Quiverはノートレベルでの競合は解決できません。 2人のユーザーが同時に同じノートに変更を加えた場合、編集が競合したことが通知され、ノートを再読みする必要があります。

バージョン管理

コードやドキュメントを管理するために、バージョン管理システムを使用している場合、Quiverのノートもバージョン管理下に置きたいと思います。QuiverのノートはプレーンなJSONファイルですので、通常のテキストファイルとしてリポジトリにコミットすることができます。

全体をバージョン管理下へ置くこともできますし、いくつかのノートブックだけを管理することもできます。 バージョン管理システムを使用する副次的な利点として、2人のユーザが同時に同じノートを編集した場合に、マージの競合が自動的に解決される点があげられます。

10 - バックアップとリカバリ

クラウドの同期やバージョン管理を使用しない場合は、ノートを安全に管理する別の方法があります。

ライブラリ全体をバックアップするには、PreferencesのBackupタブを開きます。

“Backup Now”を選択しライブラリ全体をバックアップしてください。“Restore from Backup”を選択すると、以前のバックアップからあなたのライブラリーを復元可能です。

11 - インポートとエクスポート

Quiverはあなたをロックインしません。

QuiverはシンプルなJSON形式でノートブックとノートをを保存し、仕様は以下で公開しています。 https://github.com/HappenApps/Quiver/wiki/Quiver-Data-Format

このため、どこでもノートを作成できますし他のツールとの統合も容易です。

QuiverはHTML、Markdown、PDFでエクスポートすることができます。簡単にナビゲーションするために、ノートブックをリンクが張られたHTMLページとしてエクスポートすることもできます。

Markdownでノートをエクスポートすると、Markdownセルは統合され、コードセルも含めた単一のMarkdownドキュメントが作成されます。これにより、GitHubや他のMarkdownと親和性の高いプラットフォームへ簡単にノートをアップロードできます。

インポートとエクスポートに特別なニーズがある場合、Quiverのノートを他のフォーマットに変換するスクリプトを簡単に書くことができます。カスタムスクリプトは開発者向けドキュメントや、プログラミング書籍、チュートリアルなどを書く場合、特に便利でしょう。

いくつかのサンプルスクリプトが、ここにあります。 https://github.com/HappenApps/Quiver/wiki/Export-Scripts.

12 - プリファレンス

Generalタブではデフォルトのノートの並び順、セルタイプなどを変更することができます。

Themesタブではテーマを管理することができます。Quiverは美しくデザインされたライトテーマ、ダークテーマなどを内蔵しています。新しいテーマをインポートしたり、自分自身でデザインするのも簡単です。

Cellsタブでは、行番号の表示有無、コード補完の要否、キーバインディング、LaTeXセル用のカスタムマクロの設定などができます。

Stylesタブでは、エディタ、プレビュー、プレゼンテーション、HTML/PDFのエクポートと印刷のスタイルをスタマイズすることができます。標準的なCSSでフォントサイズ、文字色、背景色等を設定可能です。

Shortcutsタブでは、Quiverの最前面表示、新規ノート作成、ノート検索に対するキーボードショートカットを割り当てることができます。

Sync and Backupタブはすでに説明しました。

Advancedタブでは、すべての設定とCSSのカスタマイズを、単一のJSONファイルでエクスポートすることができます。 これにより、簡単に他の人とあなたの設定やカスタマイズを共有したり、別のコンピュータに同じ設定をロードすることができます。