Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Goでマークダウンの独自記法を実装する
Search
lag129
August 25, 2025
Technology
0
150
Goでマークダウンの独自記法を実装する
lag129
August 25, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
2
20k
.NET開発者のためのAzureの概要
tomokusaba
0
190
Amazon Bedrock AgentCore でプロモーション用動画生成エージェントを開発する
nasuvitz
6
350
結局QUICで通信は速くなるの?
kota_yata
9
7.5k
Amazon Inspector コードセキュリティで手軽に実現するシフトレフト
maimyyym
0
150
GCASアップデート(202506-202508)
techniczna
0
230
[OCI Technical Deep Dive] OCIで生成AIを活用するためのソリューション解説(2025年8月5日開催)
oracle4engineer
PRO
0
130
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual Localization
takmin
0
350
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
570
広島発!スタートアップ開発の裏側
tsankyo
0
150
AIエージェントの開発に必須な「コンテキスト・エンジニアリング」とは何か──プロンプト・エンジニアリングとの違いを手がかりに考える
masayamoriofficial
0
130
株式会社ARAV 採用案内
maqui
0
150
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Writing Fast Ruby
sferik
628
62k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Designing for Performance
lara
610
69k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Transcript
Goでマークダウンの独自記法を実装する 2025/08/23 Kyoto.なんか #7 1
自己紹介 id:lag129 使う言語: Kotlin(Android),TypeScript,Python はてなサマーインターンシップ2025に参加しました! 2
インターンシップの課題 Kubernetes上で動作するブログサービスのMarkdownパース処理を実装する GoかTypeScriptで実装する TypeScriptだったら使ったことあるけど... 3
『せっかくインターンシップで開発するなら、新しい ことに挑戦したいなぁ』 ⇛ Goで実装しよう! 4
Wikipedia記法を実装する [wikipedia:日本] goldmarkというライブラリを使用して実装 独自構文の実装にextensionを拡張する 5
できたもの 6
実際のコード1 func Render(ctx context.Context, src string) (string, error) { html
:= template.HTMLEscapeString(src) md := goldmark.New( goldmark.WithExtensions( Wikipedia, ), ) var buf bytes.Buffer if err := md.Convert([]byte(html), &buf); err != nil { return "", nil } return buf.String(), nil } 7
goldmarkの拡張 Trigger() , Parse() , RegisterFuncs() , CloseBlock() ... 見よう見まねで実装
ありがとうDeepWiki 8
実際のコード2 // 中略 client := &http.Client{ CheckRedirect: func(req *http.Request, via
[]*http.Request) error { return http.ErrUseLastResponse }, } resp, _ := client.Head(url) return resp.StatusCode 9
困ったこと extensionの実装方法がドキュメントにない ソースコードを読みこむ [wikipedia:日本] この記法だと既存のリンク記法の実装と被ってうまくいかない {} での実装に変更 10
実装した感想とまとめ 新しいことを始めるのはおもしろい ドキュメントや実際のコードを見ながら実装した体験 パーサーとかgRPCをKotlinで実装したい!! 11