Suche senden
Hochladen
MDX with Next.js
•
0 gefällt mir
•
1,100 views
Kazuhiro Hara
Folgen
React LT会で話したスライドです。MDX めちゃくちゃお勧めなので使いましょう
Weniger lesen
Mehr lesen
Internet
Melden
Teilen
Melden
Teilen
1 von 15
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
MDX and Next.js
MDX and Next.js
Kazuhiro Hara
最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617
phain u
今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
Takao Sumitomo
TypeScript0.9
TypeScript0.9
ukayare
はじめてのぽりごん
はじめてのぽりごん
naohito maeda
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Vue入門
Vue入門
Takeo Noda
Mongo db使ってみよう
Mongo db使ってみよう
Oda Shinsuke
Empfohlen
MDX and Next.js
MDX and Next.js
Kazuhiro Hara
最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617
phain u
今更ながらCSS3を試してみた
今更ながらCSS3を試してみた
Takao Sumitomo
TypeScript0.9
TypeScript0.9
ukayare
はじめてのぽりごん
はじめてのぽりごん
naohito maeda
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Vue入門
Vue入門
Takeo Noda
Mongo db使ってみよう
Mongo db使ってみよう
Oda Shinsuke
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
清水 正行
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
Tomoharu ASAMI
Parse.comと始めるBackbone.js入門(jscafe7)
Parse.comと始めるBackbone.js入門(jscafe7)
Ryuma Tsukano
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
20120831 mongoid
20120831 mongoid
Takeshi AKIMA
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
日本マイクロソフト株式会社
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
yamahige
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
Kohei KaiGai
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Hideo Harada
Vertica 9.0.0 新機能
Vertica 9.0.0 新機能
Kaito Tono
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
Inside of Asakusa DSL
Inside of Asakusa DSL
Suguru ARAKAWA
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
Yosuke Arai
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Insight Technology, Inc.
Mvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
CSS Design and Programming
CSS Design and Programming
Taku AMANO
About Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend Day
Kazuhiro Hara
Gatsby & React Static
Gatsby & React Static
Kazuhiro Hara
Weitere ähnliche Inhalte
Ähnlich wie MDX with Next.js
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
清水 正行
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
Tomoharu ASAMI
Parse.comと始めるBackbone.js入門(jscafe7)
Parse.comと始めるBackbone.js入門(jscafe7)
Ryuma Tsukano
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
20120831 mongoid
20120831 mongoid
Takeshi AKIMA
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Sotaro Kimura
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
日本マイクロソフト株式会社
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
yamahige
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
Kohei KaiGai
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Hideo Harada
Vertica 9.0.0 新機能
Vertica 9.0.0 新機能
Kaito Tono
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
Inside of Asakusa DSL
Inside of Asakusa DSL
Suguru ARAKAWA
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
Yosuke Arai
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Insight Technology, Inc.
Mvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
CSS Design and Programming
CSS Design and Programming
Taku AMANO
Ähnlich wie MDX with Next.js
(20)
データビジュアライゼーションの作り方
データビジュアライゼーションの作り方
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
Parse.comと始めるBackbone.js入門(jscafe7)
Parse.comと始めるBackbone.js入門(jscafe7)
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
20120831 mongoid
20120831 mongoid
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第1回
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Vertica 9.0.0 新機能
Vertica 9.0.0 新機能
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Inside of Asakusa DSL
Inside of Asakusa DSL
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
20170714_MySQLドキュメントストア JSONデータ型&JSON関数 by 日本オラクル株式会社 MySQL GBU 山﨑由章
Mvc conf session_2_shibamura
Mvc conf session_2_shibamura
CSS Design and Programming
CSS Design and Programming
Mehr von Kazuhiro Hara
About Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend Day
Kazuhiro Hara
Gatsby & React Static
Gatsby & React Static
Kazuhiro Hara
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
Kazuhiro Hara
Clojure.tokyo.descjop
Clojure.tokyo.descjop
Kazuhiro Hara
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
Kazuhiro Hara
React VR ことはじめ
React VR ことはじめ
Kazuhiro Hara
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
Re-frame and A-Frame
Re-frame and A-Frame
Kazuhiro Hara
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
Cryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
Kazuhiro Hara
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
Kazuhiro Hara
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
Kazuhiro Hara
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
Kazuhiro Hara
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara
Mehr von Kazuhiro Hara
(20)
About Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend Day
Gatsby & React Static
Gatsby & React Static
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
Clojure.tokyo.descjop
Clojure.tokyo.descjop
SwaggerとAPIのデザイン
SwaggerとAPIのデザイン
React VR ことはじめ
React VR ことはじめ
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Re-frame and A-Frame
Re-frame and A-Frame
ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
Cryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
ClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろう
WebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
sbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
MDX with Next.js
1.
MDX with Next.js MDX
を本番環境に導入するまで 2019/04/24 React LT 会 KAZUHIRO HARA @kara_d
2.
https://kansock.industries KAZUHIRO HARA
原 一浩 (@kara_d) ビッグデータの観測・ビジュアライズ および、複雑な UI デザインがメイン領域
3.
もくじ 1. MDX とは何ですか
? 2. MDX を使うには ? 3. Next.js における導入事例 4. demo : KANSOCK.INDUSTRIES 5. MDX に移行する場合ハマりそうなところ a. front matter を使う b. レイアウトの適用 c. Syntax highlight の適用 d. React コンポーネントをどう書く? 6. MDX は何が変換されるのか ?
4.
MDX とは何ですか ? ●
MDX ○ https://mdxjs.com/ ○ Markdown for the component era ● Markdown 文書に、JSX をシームレスに記述することができるフォーマット形式 ○ 公開されている React コンポーネントや独自コンポーネントを使うことができる ○ グラフやリッチコンテンツなど可能性は無限 ! ● 拡張子は .mdx ( 設定次第で .md 形式でも使える ) ● React やるマンにとっては至福のドキュメント形式 ○ React やらないマンでも、コンポーネントを使うだけならそこまで専門的な知識は不要
5.
MDX を使うには ? ●
公式サイトにて、それぞれのプロダクトへの導入方法が掲載されている ○ Next.js ○ Gatsby ○ Create React App ○ React static ○ Webpack ○ Parcel ○ X0 ● VS Code のプラグインもあるよ ○ https://marketplace.visualstudio.com/items?itemName=silvenon.mdx
6.
Next.js における導入事例 https://kansock.industries/ では、Next.js
を Siatic Site Generator として使っていて、そ の中で MDX による記述を可能にしている --- title: "全面的に MDX に移行しました" ... --- import { MdxArticle } from '../../../components/layouts/mdxArticle' export default ({ children }) => <MdxArticle>{children}</MdxArticle> # タイトル MDX 表示テストです
7.
demo https://kansock.industries/
8.
MDX に移行する場合ハマりそうなところ ● Front
matter を使う ● レイアウトの適用 ● Syntax highlight の適用 ● React コンポーネントをどう書く?
9.
Front matter について Front
matter は、ページ固有の情報を記載する変数 next-mdx-frontmatter が便利 --- title: "Example Page" ogp_url: "/ogp_url" --- module.exports = withTypescript( withMdxFm( withSass({ ... })));
10.
レイアウトについて Front matter 的な情報を定義した上で、レイアウトを指定することもできる Markdown
は子コンポーネントになる 例えば title や ogp_url という変数を使える import { MdxArticle } from '../../../components/layouts/mdxArticle' export default ({ children }) => <MdxArticle title={title} date={date} ogp_url={path} ogp_image={ogpImage} ogp_description={ogpDescription} model={this.props.model}>{children}</MdxArticle>
11.
Syntax highlighting について Bulma
と Prism が相性悪いので、 highlight.js (rehype-highlight) を使っている (next.config.js) const rehypeHighlight = require('rehype-highlight'); const withMDX = require('@next/mdx')() const withMdxFm = require('next-mdx-frontmatter')({ MDXOptions: { hastPlugins: [ rehypeHighlight ] } })
12.
MDX で使えるコンポーネント形式 いろいろなスタイルで書ける (
React パッケージは import 済み ) export const TestComponent = function (props) { return (<h1>{props.name} COMPONENT 1</h1>) } export const TestComponent2 = (props) => <h1>{props.name} COMPONENT 2</h1> export class TestComponent3 extends React.Component { render() { return (<h1>{this.props.name} COMPONENT TEST 3</h1>) } }
13.
MDX は何が変換されるのか ? https://mdxjs.com/advanced/ast
によれば、以下が AST の Node Type になっている ● jsx (instead of html) ● comment (instead of html comments) ● import ● export
14.
まとめ ● MDX を使うと、Markdown
に React コンポーネントを書いたり、 定義したりできる ● 柔軟なレイアウト、Front matter、Syntax highlighting もバッチリ ● UI スケッチや UI ドキュメントにぜひ!
15.
END KAZUHIRO HARA @kara_d React /
React Native / React 360 / Next.js / MDX でお困りの方、お気軽にご相談ください https://kansock.industries
Jetzt herunterladen