QiitaやGitHub(ReadMe.md)で使用するマークダウンの記号を簡単に入力できるツール

## はじめに

この記事では、ペースターというテキスト入力支援ツールを使用してマークダウン記号を簡単に入力する方法をご紹介します。マークダウン形式のファイルは、QiitaやGitHub(ReadMe.md)の記事を作成する時などに使用します。

## 使用するツール

今回はフリーソフトとして公開しているWindows用の「ペースター」というソフトを使用します。
このソフトは「定型文入力の機能」と「クリップボード履歴を管理する機能」を持っている常駐タイプのソフトになります。テキストエディター、ワープロ、Webブラウザなど、いろいろなアプリから使用することができます。ただし、ストアアプリからは使用できません。

通常使用するカスタムメニューでは、日付、署名、会員サイトのログインなどに使用するユーザー名やパスワードなどを登録しておいて、必要な時にポップアップメニュー形式でキャレット位置にペーストして使用します。テンプレートファイルの特定のフィールドを指定されたテキスト項目に置き換えて貼り付ける、というような機能もあります。

このカスタムメニューは、用途に応じてユーザーの方が自由に作成することができます。
HTMLやCSSのタグを入力するためのメニュー、LaTeXの数式を入力するためのメニュー、ヤフオクでの定型処理を簡単に行うためのメニュー、などをご自分で作成することができます。

今回はマークダウン記号を簡単に入力するためのメニューを作成しましたので、こちらを紹介したいと思います。

## ペースターのインストールと簡単な使い方

**（注意）ペースターはWindows専用のソフトです。大変申し訳ありませんが、Macのユーザーの方はお使い頂けません。**

ペースターは下記のサイトからダウンロードすることができます。
・[オータムソフト](https://autumn-soft.github.io)

なお、今回使用するカスタムメニューとテンプレートファイル（Markdown.txt, ReadMe_Temp.md, Qiita_Temp.txt）は、上記のオータムソフトのサイトのペースターのダウンロードページから取得できるようになっています。

## カスタムメニューのイメージ

それでは、実際にどのようなイメージで記号を入力していくのかを説明します。
今回使用するメニューファイル（Markdown.txt）をペースターに登録して呼び出すと、以下のようなポップアップメニューが表示されます。

![step_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262544/dcc701dc-db32-f9c5-fed3-b565ab0024d6.png)


この中から入力したい記号を選択していく感じになります。
なお、メニュー項目の先頭に [■] という記号がある項目は、エディター上で何らかのテキストを選択している状態で実行する、という意味になります。例えば、選択テキストの前後に「*」を付ける、といった処理を行うことができます。

## 各項目の解説

### 見出しの入力

見出しは「#」記号を付けるだけですので、わざわざメニューを表示するまでもないと思いますが一応用意してあります。レベル１からレベル６まであり、実行すると、

```text:sample.md
# 
##
###
```

のような記号が貼り付きます。

### 文字修飾の入力

文字修飾は、太字、斜体、打ち消し線などを入力します。
ここでは２つの入力スタイルに対応しています。**この位置から太字で入力したい**という場合と、**すでに入力されているテキストを選択して太字の記号で囲みたい**という場合です。

この位置から太字で入力したいという場合には、メニューから「文字修飾」－「太字」コマンドを実行します。するとキャレット位置に以下のような記号が貼り付きます。この時、**キャレットが自動的に２つの「*」の真ん中に移動します**ので便利です。

```text:sample.md
****
```

すでに入力されているテキストを選択して太字の記号で囲みたいという場合には、対象となるテキストを選択した状態で、「文字修飾」－「[■] 太字（選択状態）」コマンドを実行します。すると、選択されているテキストがいったんカットされて加工されてから元の位置に貼り付きます。

```text:sample.md
太字にしたいテキスト
　　　　　↓
**太字にしたいテキスト**
```

### 箇条書きの入力

箇条書きも文字修飾と似ています。ここでは２つの入力スタイルに対応しています。
何も選択されていない状態で、「箇条書き」－「順序無しリスト」コマンドを実行すると以下のように貼り付きます。

```text:sample.md
- 
```

何かテキストを選択した状態（複数行でもＯＫ）で、「箇条書き」－「[■] 順序無しリスト（選択状態）」コマンドを実行すると以下のように貼り付きます。

```text:sample.md
- こんにちは。
- こんにちは。
- こんにちは。

1. こんにちは。
1. こんにちは。
1. こんにちは。
```

コマンド名の後ろに「（ネスト）」とある場合には、先頭にタブ記号を追加します。

### リンクと画像の入力

リンクや画像を作成する場合には、ペースターの「ユーザー定義のタグ」という機能を利用します。これは、**ダイアログから必要な項目を入力してもらって、それをテンプレートの指定されたフィールドに埋め込む**、というものです。

リンクを作成する場合にタイトルとURLを両方とも入力する場合には、「リンクと画像」－「リンクを作成（タイトルとURLを指定）」コマンドを実行します。
すると、以下のようなダイアログが表示されます。

![step_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262544/fdebe295-35dd-28c5-9bba-c0b18468f685.png)

そして、「タイトル」と「リンク先のURL」を入力すると、以下のようなテキストが貼り付きます。
すでにタイトルやURLが選択状態にある場合などのメニュー項目も用意してあります。

```text:sample.md
[オータムソフト](https://autumn-soft.github.io)
```

画像についても同様の方法で入力することができます。

### 表（テーブル）の入力

表の入力はテンプレートから「４×３の表（ヘッダーを含む）」などを選択するものと、ヘッダー行、アラインメント行、データ行を個別に入力するものがあります。

「表（テーブル）」－「４×３の表（ヘッダーを含む）」コマンドを実行すると以下のようなテキストが貼り付きます。

```text:sample.md
|col-1|col-2|col-3|col-4|
|:---:|:---:|:---:|:---:|
|111|222|333|444|
|111|222|333|444|
```

Qiitaでは以下のような表になります。

|col-1|col-2|col-3|col-4|
|:---:|:---:|:---:|:---:|
|111|222|333|444|
|111|222|333|444|

また、「表（テーブル）」－「アラインメント記号（左寄せ）」コマンドを実行すると以下のようなテキストが貼り付きます。

```text:sample.md
:----
```

### プログラムコードの入力

プログラムのソースコードを入力する場合には、インラインとブロックの２つの形式に対応しています。
コードを選択して「[■] インラインコードの入力（選択状態）」コマンドを実行すると、以下のようなテキストが貼り付きます。

```text:sample.md
`reg_date = re.compile(r'^\s*(\d+)年(\d+)月(\d+)日.*$')`
```

Qiitaでは以下のようになります。

`reg_date = re.compile(r'^\s*(\d+)年(\d+)月(\d+)日.*$')`

「コードブロックの入力」コマンドを実行すると以下のようなダイアログが表示されます。

![step_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262544/b730f467-fc7e-a218-aa7d-47d45beb9343.png)

Qiitaでは以下のようになります。

```python:test.py
# 使用する正規表現のパターン
reg_nth1 = re.compile(r'^\s*第(\d+)回\s+toto\s+くじ予想と結果\s*$')
reg_nth2 = re.compile(r'^\s*第(\d+)回\s+toto\s*$')
reg_kata = re.compile(r'[\u30A1-\u30F4]+')
reg_date = re.compile(r'^\s*(\d+)年(\d+)月(\d+)日.*$')
reg_sec = re.compile(r'^.*第(\d+)節.*$')
```

### その他の入力

この他に、「改行する」、「段落を区切る」、「水平線」、「エスケープ記号」などのコマンドがありますが、これらは単に「スペース２つを入力して改行する」、「改行する」、「---」を入力、「\」を入力といった記号の貼り付けになります。

### テンプレートの入力

最後にQiitaとGitHubのReadMe.mdのテンプレートを貼り付けるコマンドを紹介します。
これらのテンプレートは、ペースターのデータフォルダにコピーした「ReadMe_Temp.md」と「Qiita_Temp.txt」をそれぞれ参照しています。

「GitHub(ReadMe.md)のテンプレート」コマンドを実行すると、以下のようなテキストが貼り付きます。

```text:ReadMe.md
良い README.md を書くためのテンプレート（翻訳）
https://qiita.com/KamataRyo/items/466255fc33da12274c72

# Project Title / プロジェクトのタイトル

プロジェクトの概要を 1 段落でここに書きます。

## Getting Started / スタートガイド

プロジェクトを複製してローカル端末で実行し、開発や検証ができるまでの
手順を説明します。実際のシステムにプロジェクトをデプロイする方法に
ついては、デプロイの項目を参照してください。

### Prerequisites / 必要条件

プロジェクトを走らせるためにはどんなソフトウェアが必要で、
それらをどのようにインストールするか。

### Installing / インストール

動作する開発環境の構築方法を段階的に例示します。

手順はこんな感じ

それから

このシステムが出力するデータの例とか、ちょっとしたデモを示して終わります。

## Running the tests / テストの実行

自動テストをどのように実行するかをここで説明します。

### Break down into end to end tests / e2e テストまで詳解する場合

何のためのテストでどうしてそれを行うのかを説明します。

### And coding style tests / それからコーディングスタイルのテスト

何のためのテストでどうしてそれを行うのかを説明します。

## Deployment / デプロイ

実際のシステムにデプロイするための補足的な説明を行います。

## Built With / 協働するシステムのリスト

* [Dropwizard](http://www.dropwizard.io/1.0.2/docs/) - The web framework used
* [Maven](https://maven.apache.org/) - Dependency Management
* [ROME](https://rometools.github.io/rome/) - Used to generate RSS Feeds

## Contributing / コントリビューション

私たちのコーディング規範とプルリクエストの手順についての詳細は
[CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426)
を参照してください。

## Versioning / バージョン管理

私たちはバージョン管理に [SemVer](http://semver.org/) を使用しています。
利用可能なバージョンは
[このリポジトリのタグ](https://github.com/your/project/tags) を参照してください。

## Authors / 著者

* **Billie Thompson** - *Initial work* - [PurpleBooth](https://github.com/PurpleBooth)

このプロジェクトへの [貢献者](https://github.com/your/project/contributors)
のリストもご覧ください。

## License / ライセンス

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
このプロジェクトは MIT ライセンスの元にライセンスされています。
詳細は[LICENSE.md](LICENSE.md)をご覧ください。

## Acknowledgments / 謝辞

* Hat tip to anyone whose code was used / コードを書いた人への感謝
* Inspiration / 何からインスピレーションを得たか
* etc / その他

```

「Qiitaのテンプレート」コマンドを実行すると、以下のようなテキストが貼り付きます。

```text
## はじめに

なぜこの記事を書こうと思ったのか。
誰に向けた記事なのか。

## 開発環境

使ったツール、コマンド、言語等の情報を記述。

## コード

今回書いたコード、または成果物を書く。

## 解説

コードの細かい解説をする。

## 使い方

コードやツールの使い方についての解説を書く。

## デモ

実際のデモンストレーションを行う。

## 補足

解説した中でも、更に深く突っ込んで書きたいところがあれば書く。

## 終わりに

書いてみての考察。
良かった点、悪かった点、次回への意気込み等。

## 参考記事、参考書籍

参考にした記事や書籍の情報を記載する。

```

テンプレートの内容は自由に書き換えることができます。また、用途に応じて複数のテンプレートを登録しておくことも可能です。

## 終わりに

以上、簡単ではありますが、ペースターを使用したマークダウン記号の入力について紹介しました。
Qiitaの場合には、すでに入力ツールが充実していますので、あまり上記のメニューに頼る必要はないかと思いますが、ReadMe.mdや一般のマークダウン形式のファイルを作成する場合などにお役立て頂けると嬉しいです。