STERFIELD

簡単なメモ帳に、markdown形式、ダウンロード、削除のモーダルの機能を追加してみた

簡単なメモ帳に、markdown形式、ダウンロード、削除のモーダルの機能を追加してみた

前回の記事で、
フロントエンドのフレームワーク「materialize」を使って簡単なメモ帳を作ってみた
という形でメモ帳を作ったのですが、
機能を追加してみたくなりタイトル通りですが、
・markdown形式で記入
・txtファイルをダウンロード
・削除する際に確認画面を表示する
という機能を追加しました。

SITE

markdown形式で記入

markdown形式に対応するには、marked.jsを使用します。

そして、ソースコードの部分をハイライト表示させるために、
highlight.jsも使用します。
スタイルも豊富にあり、好きなものをダウンロードして適用できます。
highlight.js demo

ちなみに今回は、Monokai Sublimeにしました。

まずは以下を記述しておき、

vueのcomputed部分に、

を追加しました。

リアルタイムで反映しているため、highlightさせるのが手こずりましたが上述しているような形になりました。

html側は、

こんな感じです。

切り替えるボタンについては、Materializeのフロートボタンをまたもや使用し、vueではclassを付け替えるだけにし(上記htmlの「:class=”viewMode”」部分)、それに合わせてcssを変更しています。

ボタン部分のhtmlは以下になります。

jsでは、
vueのdata部分に、

を追加し、

vueのmethods部分に、

txtファイルでダウンロード

今まであったフロートボタンの削除ボタンを取り、ダウンロードボタンに変更しました。

このダウンロードは、今見ているメモ帳をtxtファイルでダウンロードします。
ダウンロード機能は、html5からdownload属性があるのでそれを利用しつつ、IE系は対応していないのでそれようにjsも追加しました。

html

vueのmethodsに追加、

ダウンロード自体のjs部分はvueとは関係なく関数を作り、vue側からその関数を呼び出す形にしています。

削除する際に確認画面を表示する

今まで削除ボタンを押すとすぐ消えてしまう状態でした。
使っていて消すはずじゃなかったメモを消してしまったので追加しました。

こちらはMaterializeのmodalを使用しています。

今までの削除ボタンでmodalを呼び出すように変更し、
モーダルの決定ボタンで今見ているメモ帳を削除するようにしました。

html

js

機能を追加していくのはなんかいいですね。
今の世の中に出ているwebサービスも後から機能を追加していく形が多いので、まずは作ってみてそれからどんどん改良加えていくっていうので全然OKですね。
引き続き新しい機能を追加してみようかなと思います。

次は、記述用ボタンや、DB保存かな…

Author Profile

著者近影

スターフィールド編集部

SHARE

合わせて読みたい