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
とか便利そうね使わないけど。
実際作ったやつはこんな感じになりました。
(Jest)引数で渡したcallbackのmockをテストする
mockしたメソッドの引数にcallbackを渡してそれをテストしたい。
( ͡° ͜ʖ ͡°)
べつにテストしたくないけどカバレッジが100%にならないからテストしたい。
こういうのがあったとする
func(() => { console.log('callback') })
func = jest.fn().mockImplementationOnce((cb) => cb())
MacBook Pro買うた
macbook買った。
なぜ買うた
今の仕事はPC至急してくれないので自分のPCを使わなければいけません。macbook airを持っていたのですが、
開発環境をdockerで完結する職場なのでメモリが8Gじゃ全然足りず、やむなくPCを買うことになりました。
グレード上げたところ
メモリ
- 16GB 2,133MHz LPDDR3メモリ
Docker使うと結構食うので、16GBは最低でも必要。これぐらいあればしばらくは安心な気がする。
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
に依存しているものが多く、
クライアントで気軽に使えるのが少ない(Winston
、Bunyan
、log4js-node
全部だめ)
loglevelはなんでも行けるマンなのでこちらをNuxtJSで使う。
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)
javascriptでregect
var arr = [1,2,3,4,5,6,7,8,9,10]; arr.splice(... [0,arr.length].concat(arr.filter((v) => v % 2 == 0)))
結局こっちがみやすい
arr = arr.filter((v) => v % 2 == 0)
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はモチベ上がらず