tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

C#でmarkdownを書く(Markdig)

サイトを運用する人あるあるで

「ガイドとかヘルプ、マジめんどくせ〜」

ってなりませんか?僕はめっちゃなります、
CSSとかマークアップがとりあえずだるいし、wordpress運用してAPIで取り込むとかもだるいです。
今回はC#markdownが書けるライブラリを紹介します。ちなみに今のご時世MVCが少なくなってきているので
フロントエンドだったらmarkedおすすめです(僕はブログのネタ用でC#で書きました。)

C#Markdownが書けるライブラリ

Markdigってやつです。
github.com

とりあえずNuget

dotnet add package Markdig

使う

using Markdig;
var markdown = File.ReadAllText(path);
var html = Markdown.ToHtml(markdown);
Console.Write(html);
/*
    markdown -> #見出しです。
    html -> <h1>見出しです。</h1>
*/

ちなみに拡張機能を使いたい場合はこうやるらしいです。

// Configure the pipeline with all advanced extensions active
var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var result = Markdown.ToHtml("This is a text with some *emphasis*", pipeline);

拡張機能こちらに載ってます。UseAutoLinkstとか便利そうね使わないけど。


実際作ったやつはこんな感じになりました。
f:id:tekitoumemo:20200130225906p:plain

(Jest)引数で渡したcallbackのmockをテストする

mockしたメソッドの引数にcallbackを渡してそれをテストしたい。

( ͡° ͜ʖ ͡°)

べつにテストしたくないけどカバレッジが100%にならないからテストしたい。

こういうのがあったとする

func(() => { console.log('callback') })

mockImplementationOnceを使う

func = jest.fn().mockImplementationOnce((cb) => cb())

MacBook Pro買うた

f:id:tekitoumemo:20200127213332p:plain
macbook買った。

私が買ったMacBook Pro

f:id:tekitoumemo:20200127213657p:plain

¥267,080 高っ。

なぜ買うた

今の仕事はPC至急してくれないので自分のPCを使わなければいけません。macbook airを持っていたのですが、
開発環境をdockerで完結する職場なのでメモリが8Gじゃ全然足りず、やむなくPCを買うことになりました。

グレード上げたところ

CPU

少なくともWEB系の開発なら、2.4GHzあれば充分。xcodeなど使う人はどうだろ?

メモリ

  • 16GB 2,133MHz LPDDR3メモリ

Docker使うと結構食うので、16GBは最低でも必要。これぐらいあればしばらくは安心な気がする。

SSD

  • 512GB SSDストレージ

128だと話にならないし、256でもちょっと気になるかなぐらい。なにも考えずに使いたい場合は512あれば無難。

MacBookの良いところ

キーボードと打ちやすい

いろんなPCを持ったけど、MacBookが最強な気がする。MacBookを買った理由のほとんどがこれ

トラックパッドが使いやすい

めっちゃ使いやすいと思う。macはインターフェースがめちゃくちゃ良い!

見た目がかっこいい

これでしょ大半の理由は。

電池持ちがよい

他のPCと比べて良い気がする。毎回充電するのがめんどくさいので助かる

MacBookの悪いところ

値段が高すぎ

zenbookとか約半分の値段でほぼ同じスペックなんだよね。。

軽くない

うん、軽くはない。

Touch Barいらない

必要ないとまでは言わないが、その分安くしてくれ。。

色が少ない

黒とシルバーだけ。airの方が選択肢が多い。高い買い物なのに選択肢が少なくなるなんて。。

結論

zenbook買ってubuntuとかでもよかったかもー。オーディオとかドライバの関係がめんどくさそうだなーと思ってチキったんですが、
別にオーディオつかわねぇー。損もせず、得もせずって買い物でした・

rails sでWebpacker configuration file not found

令和になってこれやってるワロタ😇
railsguides.jp

Rails6でrails sすると

Webpacker configuration file not found .. etc

Webpackerってなんやねんって思ったらwebpack関連のやつ

でこれ

rails webpacker:install

yarn入れてない人はこれがでる

Yarn not installed.  etc.

yarnいれて再度実行

brew install yarn
rails webpacker:install

で起動

rails s

素直にwebpack使わせてくれればいいのに。。

NuxtJSでloglevelを扱う

nodeのロガーはfsに依存しているものが多く、
クライアントで気軽に使えるのが少ない(WinstonBunyanlog4js-node全部だめ)
loglevelはなんでも行けるマンなのでこちらをNuxtJSで使う。

github.com

plugins/logger.js

/**
 * ref. https://github.com/pimterry/loglevel
 */
import Vue from 'vue'
import * as log from 'loglevel'

// 必要であれば log.noConflict();
log.setLevel('trace')
Vue.prototype.$log = log

nuxt.config.js

  plugins: [
    ... 
    { src: '~/plugins/logger.js', ssr: false },
  ],
this.$log.error(e)

fishでrbenv

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.config/fish/config.fish:

status --is-interactive; and source (rbenv init -|psub)

~/.config/fish/config.fish

# rbenv
set -x PATH $HOME/.rbenv/bin $PATH
status --is-interactive; and source (rbenv init -|psub)

Rubyはモチベ上がらず