kaz.dev

気軽に投稿できるブログっぽいものを作った

tag: 11ty


なぜ作ったか





要件定義

作りたい、欲しいという気持ちが生まれたので要件定義をしていく





類似のサービスについて

最近だとZennのScrapsが近い気がする
でも

Zennはエンジニアのための新しい情報共有コミュニティです。 誰かのために、自分のために知見を共有しましょう。

と書いてあり、技術情報以外にもクジラについて調べたこととか書きたいと思ったので合わなかった

あとは関係なく 作りたい があったので類似サービスはそんなに調べてない





技術構成について

要件定義でissueみたいに書きたいとある通り, Issue as a Blog となっている
完成した後に調べてみるとazuさんやmiyaokaさんが過去に考えたり作ってたみたい

本題

記事データについて

記事データ自体はGitHub Issuesに置いてる
各IssueにLabelを付与することで状態管理をしている

---
date: 2021-07-18
tags: []
slug: hello-world
---

本文に関してはissueコメントをつなげる形で記述している

画像も一応issueに貼ればGitHub側でホストしてくるけど最適化されないので当分は最適化後に貼り付ける予定
気が向いたらCloudinaryとかを使おうかと

サイトについて

11ty を使ってGitHub Actionsで静的に生成後、Firebase Hostingsにデプロイしている

11tyを使うのは初めてだったのでsosukesuzukiさんのblogを参考にさせていただきました。ありがとうございます!🙇‍♂️
今思うとデザインがかなり類似していて引っ張られてしまったなと少し反省しています

markdownのパース等はmizchiさんのamdxを参考にさせていただきました。ありがとうございます!🙇‍♂️

OGP生成に関してはretoruto-carryさんのshindan-chart-maker-ogp
を参考にさせていただきました。ありがとうございます!🙇‍♂️

mermaidをmdからsvgにするライブラリがあまり見つからず書きました。
mermaidはsvg内にstyleタグを持つのですが、それの重複が少し嫌だったのでclean-cssで最適化できるようにしました。

実装に関してサイトが簡素なこともあり基本的に詰まることはありませんでした。

(大した量もないのでhtmlをテンプレートリテラルで書いても大丈夫だろうと思ってたけど、最後の方は辛くてjsxで書きたい気持ちが強かったです)





できること

一般的にmarkdownでできることは網羅してあると思います

heading

heading 2

heading 3

heading 4

heading 5
heading 6

plain text

plain text

link

Google

code block

const data = fetch("url");
console.log(data);

math block

eiθ=cosθ+isinθe^{i\theta} = \cos \theta + i \sin \theta

inline math

11 から 1010 までの総和は n=110n\sum_{n=1}^{10} n と表せる

todo

list

mermaid

A
B
C
D

quote

春眠不覚暁
処処聞啼鳥
夜来風雨声
花落知多少
— 孟浩然

summary

じつは...
僕の一番好きなお寿司はマグロです

image(horizontal)

graham-pengelly-yyH95Gx_Fqc-unsplash

https://unsplash.com/photos/BjgFMADAH-s

image(vertical)

joni-rajala-BjgFMADAH-s-unsplash

https://unsplash.com/photos/yyH95Gx_Fqc

YouTube

Twitter

編入終わったらしたいことリストです
誰か一緒にしよ!!!! pic.twitter.com/iJFdlmjJDf

— こばたけ (@kobakazu0429) July 10, 2021

上記はこのように書くことで変換されています

## heading

# heading 2
## heading 3
### heading 4
#### heading 5
##### heading 6

## plain text

plain text

## link

[Google](https://www.google.co.jp)

## code block

\`\`\`js
const data = fetch("url");
console.log(data);
\`\`\`

## math block

$$e^{i\theta} = \cos \theta + i \sin \theta$$

## inline math
$1$ から $10$ までの総和は $\sum_{n=1}^{10} n$ と表せる

## todo

- [ ] task
- [x] done

## list

- 1
- 2
  - 2-1
    - 2-1-1
  - 2-2
-  3

## mermaid

\`\`\`mermaid
graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
\`\`\`

## quote
> 春眠不覚暁
> 処処聞啼鳥
> 夜来風雨声
> 花落知多少
>  孟浩然

## summary

<details>
    <summary>じつは...summary>
<div>
僕の一番好きなお寿司はマグロです
div>
details>

## image(horizontal)

クリックすると拡大表示されます

![graham-pengelly-yyH95Gx_Fqc-unsplash](https://user-images.githubusercontent.com/31001505/126055569-b879e321-fcd1-4160-900e-95c9f3547cb4.jpg)

https://unsplash.com/photos/BjgFMADAH-s

## image(vertical)

![joni-rajala-BjgFMADAH-s-unsplash](https://user-images.githubusercontent.com/31001505/126055573-651e3c58-8322-44fb-b372-d7f4c8694a0d.jpg)

https://unsplash.com/photos/yyH95Gx_Fqc

## YouTube

https://www.youtube.com/watch?v=FR91CB5SBWU

## Twitter

<blockquote class="twitter-tweet" data-dnt="true"><p lang="ja" dir="ltr">編入終わったらしたいことリストです<br>誰か一緒にしよ!!!! <a href="https://t.co/iJFdlmjJDf">pic.twitter.com/iJFdlmjJDfa>p> こばたけ (@kobakazu0429) <a href="https://twitter.com/kobakazu0429/status/1413711067427983367?ref_src=twsrc%5Etfw">July 10, 2021a>blockquote>




その他

一応 https://kaz.dev/posts/tags/ があってそこから絞り込めるようになってる





最後に

とりあえずは使えそうなものができたので良かったです
Lighthouseも満点だった気がする

今後の予定として下記のようなものを考えてる





何かあればTwitterのDM等までお願いします!