Ikeda's Blog

JavaScriptで、MarkdownをHTMLに変換する

やること

テキストエリアに入力したMarkdown形式の文字列を、HTMLに変換する。

使用するライブラリ

markedjs

使い方

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点。
この店に行くことだけを目的に出かけられるレベル。

お店について

関西に展開している塩元帥の代表を務める方が、独立した際にオープンされたお店。
カウンターのみの、小さめなお店。なのに凄く美味いので、行列はよくできています。
並ぶのが嫌いなので、総大醤に行く日は朝食の時間をずらして、空腹になるタイミングを遅らせるようにしています。

私が社会人になって初めて働いた会社から近かったこともあり、オープン当初から寄らせていただいておりました。
「美味しいから替え玉する」を初めて体験したようにも思います。
(それまでは、量を食べたいがために替え玉を頼んでいた)

誰かに、「美味しいラーメン屋教えて」と言われた場合に、真っ先に名前を挙げるお店です。

Google MAP

ラーメン

黒大醤(くろだいしょう)が、このお店における、普通のラーメン。
別途、濃口もあるのですが、ノーマルな方でも十分にガツンと来る醤油のコク。かといって、くどさは感じない。
そして、柚子が清涼感を与えてくれるおかげで飽きが来ない。

また麺も美味しい。
麺自体は、そこまで主張するわけではありませんが、スープと合わさると抜群のバランス。
中太麺(?)のややもっちりとした歯ごたえ、旨味、スープの醤油と出汁らしき旨味。美味しい。

不満点を挙げるとしたら、チャーシューでしょうか。大当たりの時、ハズレの時があります。
基本的にはでっかくて食べごたえがあって大好きなんですが、ごく稀に、薄い時があったり。
かと思えば、めちゃくちゃ分厚い時があったり。
手作業なので、まあそういうこともあるか。くらいに思っていますが。

ご飯もの

チャーハン

何かの番組(焼き飯特集)で関西チャンピオンに選ばれた、らしい。
よくよく考えると、私があまりチャーハン食べないので、「美味しい」くらいしか言えないんですよね……。

私の中のチャーハンというと、油たっぷりなギットリなイメージがあるんですが、こちらはあっさり目な感じ。
チャーハン → ラーメンスープ → チャーハン → ラーメンスープ……のループがしっかりハマる味付けだと思います。

チャーマヨ丼

好き。
たっぷりのチャーシューと、マヨネーズに加えて、一味(あるいは七味?)のピリ辛。
ついついかきこみたくなる美味しさ。

セットメニュー

平日お昼限定セットメニューと、夜間・休日の通常セットメニューがあります。

私の場合、いつも平日昼に行くので、黒大醤とチャーマヨ丼(950円だったと思う)です。
たまに休日に行くときは、チャーハンセット(1200円だったと思う)にします。