|
Python APIを実行する上で多用されているJupyter notebookやGitHubのrepoサイトなどを見るとマークダウン文書に頻繁に遭遇します。例えば、YOLO5の実行ノートブックを見てみれば、マークダウンの利用の仕方がわかります。マークダウン(Markdown)とは、アメリカ合衆国、フィラデルフィア出身のライター・コラムニストであるジョン・グルーバー(John Gruber)によって、2004年に開発された記法のことを指します。マークダウンの記法を知る上で、欠かせないのがマークアップ言語です。マークアップ言語 (markup language)とは、「HTML(HyperText Markup Language)」や「XML(eXtensible Markup Language)」などを指します。
マークアップ言語は、「タグ」と呼ばれる特定の文字列で囲むことで、元の文に構造・装飾などを反映させる言語のことです。しかし、これら「マークアップ」は記述や種類が多く、また覚えることも多いので、専門的な知識を持つ人でなければハードルが高いです。webページなどのデジタル文章を作るときに使うHTML(HyperText Markup Language)などのマークアップ言語を、簡略化できるようにプログラムされた記法がマークダウンです。
markdown 記法の簡単な例 |
日本語Markdownユーザー会の説明を見てみましょう。 文章には「章」や「節」といった「見出し」があります。本文には「段落」や「箇条書き」があります。こんにちのオンライン文書なら「リンク」も使われるでしょう。文章にはこうした「構造」があり、それを明示することで便利に読み書きできます。Markdownの書き方の代表的なルールには
段落は空行で、一行開ける 強調したい部分を ** で囲む 箇条書きは行頭に - リンクは [] でリンクしたい文字を囲って、その直後の () の中にURLを書く
などがあります。Markdownとは、こういったルールの体系、つまり文章の書き方なのです。この例として、以下の文章が載っています。
Markdown(マークダウン)は、**文章の書き方**です。デジタル文書を活用する方法として考案されました。特徴は、 - 手軽に文章構造を明示できること - 簡単で、覚えやすいこと - 読み書きに特別なアプリを必要としないこと - それでいて、対応アプリを使えば快適に読み書きできること などです。Markdownはジョン・グルーバー(John Gruber)によって2004年に開発され、最初は [Daring Fireball: Markdown](http://daringfireball.net/projects/markdown/) で公開されました。その後、多くの開発者の手を経ながら発展してきました。
Markdownは、しばしばHTMLの代わりとして使われます。上記の文章をHTMLで書くとすれば以下のようになります。
<p>Markdown(マークダウン)は、<strong>文章の書き方</strong>です。デジタル文書を活用する方法として考案されました。特徴は、</p> <ul> <li>手軽に文章構造を明示できること</li> <li>簡単で、覚えやすいこと</li> <li>読み書きに特別なアプリを必要としないこと</li> <li>それでいて、対応アプリを使えば快適に読み書きできること</li> </ul> <p>などです。Markdownはジョン・グルーバー(John Gruber)によって2004年に開発され、最初は <a href="http://daringfireball.net/projects/markdown/">Daring Fireball: Markdown</a> で公開されました。その後、多くの開発者の手を経ながら発展してきました。</p> HTMLを書くときには、<p> や <li> といったHTMLタグをたくさん入力する必要があります。タグを打つことに注意が奪われてしまい、本来の文章作成に集中できません。ふだんの文章作成に気軽に使えるとは言いにくいですね。
この例からも分かる通り、MarkdownからHTMLに変換するのは簡単です。そのためのアプリが多数あります。「HTMLに出力すること」は、Markdownのもっとも一般的な活用法です。作成した文書は拡張子 .md をつけて保存します。
markdown文書を作成し、表示を確認できるエディタの一つにVisual Studio があります。上記のマークダウン文書をVisual Studioで作成します。文書の表示を確認するためには、文書名の上にカーソルを置いて、右クリックします。「プレビューを開く」をクリックすると文書の表示が見られます。または、「space + command + V」(⇧⌘V) キーを押します。
Jupyter Notebookのインストールと使用方法 |
Jupyter Projectにより開発されているJupyter Notebookは、インタラクティブなシェル環境で、ブラウザ上でソースコードを記述し、実行結果を確認しながらドキュメント、数式、画像を含めて一つの「ノートブック」にまとめて、保存することを可能にします。Jupyter NotebookはAnacondaをインストールした時は、一緒にインストールされています。ここでは、Anacondaが使用されていないことを前提にしています。Jupyter notebookが既にインストール済みの時は、この節をスキップして下さい。Terminal上で
$ python3 -m pip install --upgrade pip $ python3 -m pip install jupyterlab jupyter jupyter-console notebook spyder
とコマンドを入力し、Jupyter Notebookをインストールします。python3としているのはpython2.x用のpipを使用しないためです。
どちらのケースでも、Jupyter Notebookを起動するためにはTerminal上で
$ jupyter notebook
とコマンドを入力します。以下の様に、jupyter notebookのダッシュボードがデスクトップに表示されます。
右上に位置する[new]をクリックして、[python3]とします。ノートブックが起動しますので、作成してある[file]を開くか、あるいは、セルに新しいコードを記述します。セルの実行は[cell]をクリックして、[run-cell]します。
Jupyterは、Cellという箱の中に、Codeや説明(Markdown)を記載していき、順次実行させて動かします。色々なiconが表示されていますが、主要な機能は以下の通りです。
これらの機能は使用してみないとわからないので、以下のPythonコードの実行で順次使ってみてください。
枠取りの付いたセルにコードを書き込んで実行する、あるいは、複数個のセルにスクリプトを書き込んで、上から順番にセルのコードを実行します。この作成した(複数個のセルから構成される)ノートをファイルとして保存します。初期名称はUntitledとなっていますので、必要な名前に変えます。ファイルの拡張子はipynbとなっています。保存記号アイコンをクリックして保存すると、homeディレクトリに保存されます。Webブラウザで作業しているので、[File]-[Download as]とクリックすると、NotebookはPCのDownloadsディレクトリにダウンロードされて保存されます。Jupyter Notebookを終了させるときは、ファイルを保存して、[File]-[Close and Halt]とクリックしてください。右上にある[quit]で終了します。また、ターミナルで[Ctrl+c]を入力して、カーネルの作動も終わらせることできます。
Google ColabにおけるMarkdown記法の例 |
Google ColabのMarkdown guideにも簡単な例が出ています。文字のタイプを変化させるケースでは、
//太文字タイプにする **bold text** //イタリック体にする *italicized text* //等幅フォントにする `Monospace` //()内の画像を表示 ![An image](https://www.google.com/images/rss.png)
などがあります。ヘッダー用の記法として、記号#を用いることができます。
# 第1章 Jupyter Notebookの使用法 # 第2章 マークダウンの利用 ## 第2章の第1節 マークダウンの規則 ### 第2章第1節の第1項 ヘッダの使用 # 第3章 数式の表現
jupyter notebookを開いて、新しいブックを作成して、このコードをコピペして下さい。このセルのコードをMarkdownに変更して下さい。セルをrunして下さい。どのように表示されたでしょうか。
コードを表示するときは、以下のように記述します。以下のコードを次のセルにコピペして、Markdownに変更して、runして下さい。pythonのコードが「print(a)」と表示されます。
```python print("a") ```
リスト表示を使用するときは以下のように記述します。
//Ordered lists: 1. One 1. Two 1. Three --- //Unordered lists: * One * Two * Three
数式を表示するときは以下のような様式を採用します。HTMLでのLaTex形式とほとんど同一です。以下のコードを次のセルにコピペして同様にrunして下さい。綺麗な数式が表示されたでしょう。
//Equations: $y=x^2$ $e^{i\pi} + 1 = 0$ $e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$ $\frac{n!}{k!(n-k)!} = {n \choose k}$ $A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix}$
以下は表を表示するときの記述様式です。
//Tables: First column name | Second column name -------------------|------------------ Row 1, Col 1 | Row 1, Col 2 Row 2, Col 1 | Row 2, Col 2 //Horizontal rules: ---
このコードも前と同じように実行して下さい。最後の行は水平線を引く記述です。
Google Colabでは、Markdownの記法として、Jupyter Notebookのように(MathJax)LaTex表現をサポートしていますが、HTMLタグを許可していません。また、Colabは、絵文字やToDoチェックボックスなどのGitHubの追加をサポートしていません。
Markdownの公式サイトでの表現形式の説明は以下のサイトにあります。