JavaScriptで、MarkdownをHTMLに変換する

やること
テキストエリアに入力したMarkdown形式の文字列を、HTMLに変換する。
使用するライブラリ
使い方
1. ライブラリを読み込む
CDNにJSファイルを置いてくださっているので、利用させて頂く。
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
2. 変換
変換自体は、marked.parse()でできてしまう。
後は、必要に応じたオプションを設定するくらい。
const before = '# 変換前';
const after = marked.parse(before);
console.log(after); // <h1>変換前</h1>
使用例
▼ Markdown入力欄<br />
<textarea id="demo_markdown_before"></textarea><br />
<input type="button" id="demo_markdown_parse" value="Markdown変換" /><br />
▼ 変換後<br />
<textarea id="demo_markdown_after"></textarea>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script>
$(document)
.on('click', '#demo_markdown_parse', function(){
// オプション:文中の改行をbrタグに変換する
marked.setOptions({breaks : true});
// テキストエリアに入力されたMarkdown形式の内容をHTMLに変換
const after = marked.parse($('#demo_markdown_before').val());
// 変換したHTMLを、変換後テキストエリアに出力
$('#demo_markdown_after').val(after);
})
;
</script>
背景にグラデーションをかけるCSS

最終目標
こんな感じなことがしたい。
方法
CSSには、linear-gradient()という便利なものが存在します。
これは、2色以上を指定し、直線的にグラデーションした画像を生成してくれるもの。
放射状にグラデーションするradial-gradient()なんかもあります。
ただし、IE9以下は対応していません。
書き方
基本的な書き方は、background: linear-gradient(方向(最終的に到達する箇所), 開始地点の色, 終了地点の色);です。
方向の指定は、例えば「下へ向かう」ならto bottom、「右上へ向かう」ならto right topとなります。
開始地点の色は、to bottomの場合だと、上側の色です。
終了地点の色は、開始地点の逆ですね。
例えば、右上から左下に向けて、白から黒へと変化していく場合は以下のようになります。
background: linear-gradient(to left bottom, rgba(255, 255, 255, 1), rgba(0, 0, 0, 1));
※透過させたい場合に備えて、rgbaで指定しています。別に、#fffとかでも構いません。
▼ 描画例
応用:グラデーションに緩急をつける
background: linear-gradient(to left bottom, rgba(255, 255, 255, 1) 90%, rgba(0, 0, 0, 1));
▼ 描画例
上記のように、色に対してパーセンテージを指定することで、変化する場所を変えることができます。
イメージとしては、上の例でいくと、「90%の地点までは白で塗ってから、グラデーション変化していく」という指示になります。
複数色による変化
色の指定をカンマ区切りで増やすことで、増やすことができます。
例として、白→黒→赤→青としてみます。
background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(0, 0, 0, 1), rgba(255, 0, 0, 1), rgba(0, 0, 255, 1));
▼ 描画例
スマホスタンドを自作する
今回作るもの

スマートフォンスタンド。
横置きにして、音楽プレーヤーとして使いたい。
材料
- プラダン
- プラスチックダンボールのこと。
- カッターで切れるのに頑丈という、工作向きな素材。
- Amazon
- セロハンテープ
- ビニールテープ
- 最後に外側を覆うので、好きな色で。
制作
1. 材料の切り出し

- 奥の柱材
- 短辺:2cm、長辺:7cm
- 数:2(余り材が同じ大きさで2個)
- 下材
- 短辺:2cm、長辺:6cm
- 数:2
- 左右の接続用
- 短辺:2cm、長辺:9cm
- 数:1
- スマホ立てかけ部分
- 短辺:1cm、長辺:2cm
- 数:2
2. 柱材の接合

2x7cmの材料に余りができたので、くっつけました。
正直、必要なかったかなと思います。
3. 柱材と下材の接合

セロテープで、Lの字になるように接続します。
4. スマホ立てかけ部分の接合

こちらもセロテープで引っ付けます。
奥の柱材と反対側に、出っ張りを作ります。
5. 左右の材料を接合

これまでに作ったパーツを繋げるように接合します。
6. ビニールテープで包む

補強の意味も兼ねて、ビニールテープで巻いていきます。
完成です。
完成

ちなみに、これを作ったのは1年半ほど前になります。
以前使っていたスマホを音楽プレイヤー代わりに立てかけ、特に壊れることはありませんでした。
そんなに重いものを置くわけでもないので、そうそう壊れないでしょうけど。
市販のスタンドは高さのある商品が多かったので、PCモニターの下に収まるものが見つからずにいました。
結構、気に入っています。

エルビス演算子とNull合体演算子で、それぞれの挙動の違い

エルビス演算子(PHP5.3以降)
$val = ($_GET['value']) ?: 'default';
var_dump($_GET['value']) |
var_dump($val) |
備考 |
|---|---|---|
| NULL | string(7) "default" | Notice: Undefined index 発生 |
| string(0) "" | string(7) "default" | - |
| string(3) "aaa" | string(3) "aaa" | - |
Null合体演算子(PHP7.0以降)
$val = ($_GET['value']) ?? 'default';
var_dump($_GET['value']) |
var_dump($val) |
備考 |
|---|---|---|
| NULL | string(7) "default" | - |
| string(0) "" | string(0) "" | - |
| string(3) "aaa" | string(3) "aaa" | - |
醤油ラーメン【総大醤】 - 大阪市北区/最寄り駅:天神橋筋六丁目

ざっくり評価
★★★★★
5点満点で言うと、5点。
この店に行くことだけを目的に出かけられるレベル。
お店について
関西に展開している塩元帥の代表を務める方が、独立した際にオープンされたお店。
カウンターのみの、小さめなお店。なのに凄く美味いので、行列はよくできています。
並ぶのが嫌いなので、総大醤に行く日は朝食の時間をずらして、空腹になるタイミングを遅らせるようにしています。
私が社会人になって初めて働いた会社から近かったこともあり、オープン当初から寄らせていただいておりました。
「美味しいから替え玉する」を初めて体験したようにも思います。
(それまでは、量を食べたいがために替え玉を頼んでいた)
誰かに、「美味しいラーメン屋教えて」と言われた場合に、真っ先に名前を挙げるお店です。
ラーメン

黒大醤(くろだいしょう)が、このお店における、普通のラーメン。
別途、濃口もあるのですが、ノーマルな方でも十分にガツンと来る醤油のコク。かといって、くどさは感じない。
そして、柚子が清涼感を与えてくれるおかげで飽きが来ない。
また麺も美味しい。
麺自体は、そこまで主張するわけではありませんが、スープと合わさると抜群のバランス。
中太麺(?)のややもっちりとした歯ごたえ、旨味、スープの醤油と出汁らしき旨味。美味しい。
不満点を挙げるとしたら、チャーシューでしょうか。大当たりの時、ハズレの時があります。
基本的にはでっかくて食べごたえがあって大好きなんですが、ごく稀に、薄い時があったり。
かと思えば、めちゃくちゃ分厚い時があったり。
手作業なので、まあそういうこともあるか。くらいに思っていますが。
ご飯もの
チャーハン

何かの番組(焼き飯特集)で関西チャンピオンに選ばれた、らしい。
よくよく考えると、私があまりチャーハン食べないので、「美味しい」くらいしか言えないんですよね……。
私の中のチャーハンというと、油たっぷりなギットリなイメージがあるんですが、こちらはあっさり目な感じ。
チャーハン → ラーメンスープ → チャーハン → ラーメンスープ……のループがしっかりハマる味付けだと思います。
チャーマヨ丼

好き。
たっぷりのチャーシューと、マヨネーズに加えて、一味(あるいは七味?)のピリ辛。
ついついかきこみたくなる美味しさ。
セットメニュー
平日お昼限定セットメニューと、夜間・休日の通常セットメニューがあります。
私の場合、いつも平日昼に行くので、黒大醤とチャーマヨ丼(950円だったと思う)です。
たまに休日に行くときは、チャーハンセット(1200円だったと思う)にします。
