diff --git a/.vscode/settings.json b/.vscode/settings.json index 69563811a..c16daa5cf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,5 +7,8 @@ "other": "on" }, "editor.snippetSuggestions": "top" + }, + "files.associations": { + "*.mdx": "markdown" } } diff --git a/content/blog/post/2013/02/cxtokyo1st/index.md b/content/blog/post/2013/02/cxtokyo1st/index.md index 7c5dd2ffd..606c1dd3b 100644 --- a/content/blog/post/2013/02/cxtokyo1st/index.md +++ b/content/blog/post/2013/02/cxtokyo1st/index.md @@ -65,7 +65,7 @@ MTBの特性を活かして砂浜を乗車して一気に差をつける! そしてこれですよ… - + ![image](https://www.cyclowired.jp/sites/default/files/images/2013/02/09/CXTOKYO201301CW16.jpg) diff --git a/content/blog/post/2015/10/zwiftstart/index.md b/content/blog/post/2015/10/zwiftstart/index.md index 6d7dac84f..edc39247f 100644 --- a/content/blog/post/2015/10/zwiftstart/index.md +++ b/content/blog/post/2015/10/zwiftstart/index.md @@ -33,7 +33,7 @@ tags: ["TIPS", "Zwift", "REVIEW", "ROAD"] ただし、エリートのリアルトレーナー類やTacxのスマートトレーナーがあれば、自転車自体のセンサーは不要。PC連携が標準で可能なトレーナーの一部は、コースに応じて自動的に負荷も変えてくれるらしい。 -対応リスト: +[Zwift対応トレーナーリスト](https://support.zwift.com/) USBドングルは結構厄介。 diff --git a/content/blog/post/2016/02/zwift-6wks-ftp-builder-week-2-day-3-5/index.mdx b/content/blog/post/2016/02/zwift-6wks-ftp-builder-week-2-day-3-5/index.mdx index f09a414e8..9a52fa2b4 100644 --- a/content/blog/post/2016/02/zwift-6wks-ftp-builder-week-2-day-3-5/index.mdx +++ b/content/blog/post/2016/02/zwift-6wks-ftp-builder-week-2-day-3-5/index.mdx @@ -59,6 +59,6 @@ tags: ["TIPS", "Zwift", "Workout"] プロモコードは以下のフォーラムで有志が共有しています。 - + diff --git a/content/blog/post/2018/09/bikestorage2/index.mdx b/content/blog/post/2018/09/bikestorage2/index.mdx index 0a61214bb..7618bd378 100644 --- a/content/blog/post/2018/09/bikestorage2/index.mdx +++ b/content/blog/post/2018/09/bikestorage2/index.mdx @@ -12,23 +12,13 @@ cover: "DSC_1534.jpg" [以前作った](/post/2015/12/bikestorage/)2x4 材のコンパクトな自転車収納を一歩進めてみた。追加購入したものは全てホームセンターで調達。 -**Before** - - -**After** - -{" "} +### Before + + + +### After + + ディアウォールを使って制作したものをそのまま流用したが、本当は[LABRICO のアジャスターボルト](https://amzn.to/2Cz3yWz)を使ったほうが調整幅が大きくて良い。 diff --git a/content/blog/post/2019/03/slr1hubbearing/index.md b/content/blog/post/2019/03/slr1hubbearing/index.md index 52bf10291..b75c359af 100644 --- a/content/blog/post/2019/03/slr1hubbearing/index.md +++ b/content/blog/post/2019/03/slr1hubbearing/index.md @@ -19,8 +19,9 @@ TCRに付属していたSLR1 DISCホイールは汎用ベアリングを使っ ## まずは情報収集 -ベアリング調達のために規格をチェックする必要がある。ググったら良いものが出てきたので一発でわかった。 - +ベアリング調達のために規格をチェックする必要がある。ググったら良いものが出てきたので一発でわかった。 + + SLR1 discの12mm…ハブの型番は`1520-CL1608-701`、ハブベアリングは…`SB-6903 HUB BEARING`と記載されているので6903ベアリングを買えば良さそう。安心の[NTN 製ベアリング](https://amzn.to/2TMuABg)を注文しておく。 この手のシールドベアリングは接触型と非接触型のものがあり、後者のほうが抵抗が少ない。しかし、ロードバイクはメンテナンス頻度も少ないため接触型の防水性が高いもの…6903LLUをチョイス。 diff --git a/content/blog/post/2020/08/dd_aggressor/index.md b/content/blog/post/2020/08/dd_aggressor/index.md index 80b38f474..5bbadcc02 100644 --- a/content/blog/post/2020/08/dd_aggressor/index.md +++ b/content/blog/post/2020/08/dd_aggressor/index.md @@ -24,12 +24,12 @@ DDという種類はサイドウォール加工の差となります。 詳しくはMaxxis USAの[Bike technology](https://www.maxxis.com/technology/bike-technology)を参照するのが早いです。 ![EXO](./exo-protection.jpg) -image from +image from [Maxxis.com](https://www.maxxis.com/) EXOはサイドにインナーの対パンク層が仕込まれており、軽量性を保ったままサイド経由のパンクを防いでいます。ただし、ロックセクションではサイドカットに対する耐性が不十分であり、サイドウォールの切り傷や摩耗が起きると書かれています。 ![DD](./doubledown-protection.jpg) -image from +image from [Maxxis.com](https://www.maxxis.com/) DD(正式名称DoubleDown)はブチルゴム層をインナーのビード寄りに追加しています。エンデューロレース向けのサイド加工で、ダウンヒルタイヤ並みのタイヤサポートと保護を提供しているが、比較的軽量であることを謳っています。 @@ -43,15 +43,18 @@ DD(正式名称DoubleDown)はブチルゴム層をインナーのビード寄り Aggressorにおいて、DDとEXOのカタログスペックを見てみます。 -[[scrollableTable]] + + | Part Number | Size | ETRTO | TPI | Bead | Weight(g) | Compound | MaxPSI | Tech | Color | Application | | ---------- | --------- | ------ | ----- | -------- | ----- | --------- | -------- | ------ | ----- | -------- | | TB91009100 | 27.5X2.30 | 58-584 | 60 | FOLDABLE | 885 | DUAL | 60 | EXO/TR | Black | MOUNTAIN | | TB91009200 | 27.5X2.30 | 58-584 | 120 | FOLDABLE | 1,050 | DUAL | 60 | TR/DD | Black | MOUNTAIN | + + まず重量が165g近く変わってきます。DDモデルは1㎏ の大台に乗っており、トレイルをゴリゴリ登るならちょっと使いたくないレベル。 -見た目は…使い古しのタイヤとの比較なので公平ではありませんが、DDの方がサイドがテカって見えます。ふじてんで酷使しているEXOモデルは注意書きの通り、サイドに傷がかなり入っています。 +見た目は…使い古しのタイヤとの比較なので公平ではありませんが、DDの方はサイドがテカって見えます。ふじてんで酷使しているEXOモデルは注意書きの通り、サイドに傷がかなり入っています。 ![DD_new](./dd_new.jpg) diff --git a/content/blog/post/2020/08/garmin530_550/index.md b/content/blog/post/2020/08/garmin530_550/index.md index df62a6733..16de755e9 100644 --- a/content/blog/post/2020/08/garmin530_550/index.md +++ b/content/blog/post/2020/08/garmin530_550/index.md @@ -18,7 +18,7 @@ cover: "./5353.png" "Edge530 ASIA" は欧米版と違うソフトウェアっぽいのでバージョン番号も別に管理されています。なぜかASIA版のほうがバージョンが上。 - + > 1. 屋内ライドの改善 > ・GPS が利用できない場合 WiFi または Bluetooth を使用して時刻を補正するように改善 @@ -34,7 +34,7 @@ cover: "./5353.png" > ・ClimbPro ページでのカテゴリーカラーが間違っていた問題の修正 > ・短いクライムだと検知されなかった問題の修正 > 3. マウンテンバイク機能設定をすべてのアクティビティプロフィール設定に追加 -> 4. 栄養/水分補給表示の最低走行時間設定の追加(設定>アクティビティプロフィール>栄養補給/水分補給>最低走行時間) +> 4. 栄養・水分補給表示の最低走行時間設定の追加(設定>アクティビティプロフィール>栄養補給/水分補給>最低走行時間) > 5. マップ上アクティビティ軌跡のカラーカスタマイズ機能の追加(設定>アクティビティプロフィール>ナビゲーション>地図>履歴ラインカラー) > 6. GPS 補足が頻繁に失敗してしまう問題の修正 > 7. デバイス Bluetooth フレンドリーネームに“BLE”と“BT”追加し、区別できるように改善 diff --git a/content/blog/post/2022/02/mp_lean_cookie/index.mdx b/content/blog/post/2022/02/mp_lean_cookie/index.mdx index d1c031023..43296eac5 100644 --- a/content/blog/post/2022/02/mp_lean_cookie/index.mdx +++ b/content/blog/post/2022/02/mp_lean_cookie/index.mdx @@ -35,7 +35,8 @@ cover: "./cover.jpg" -[[scrollableTable]] + + | 1 本あたり | リーンクッキー | 一本満足プロテインバー | | ---------- | -------------- | ---------------------- | | カロリー量 | 190kcal | 183kcal | @@ -43,6 +44,8 @@ cover: "./cover.jpg" | タンパク質 | 25g | 15g | | 脂質 | 3.6g | 8.5g | + + 両者ほぼ同じカロリー量でありながら、**リーンクッキーは、脂肪の少なさとタンパク質の多さが特徴であることがわかる。** 今回は一本満足プロテインバーと比較したが、**国産でドラッグストアで入手しやすいプロテインバーは、脂質で 4 割から 5 割のカロリーを構成**しているものがほとんどで、残りをタンパク質と炭水化物で分け合う形。 diff --git a/content/blog/post/2022/05/myprotein_protein_pancake/index.md b/content/blog/post/2022/05/myprotein_protein_pancake/index.md index b5044f756..cafe1b9fd 100644 --- a/content/blog/post/2022/05/myprotein_protein_pancake/index.md +++ b/content/blog/post/2022/05/myprotein_protein_pancake/index.md @@ -38,7 +38,8 @@ cover: "./cover.jpg" ### 栄養成分 -[[scrollableTable]] + + | --- | 100g あたり | 1 食あたり | | ---------- | -------------- | ------------- | | エネルギー | 1318kJ/313kcal | 659kJ/157Kcal | @@ -47,6 +48,8 @@ cover: "./cover.jpg" | タンパク質 | 20g | 10 g | | 食塩相当量 | 1.2g | 0.62 g | + + **1 食辺りのタンパク質量は 10g**と、マイプロテイン食品にしては控えめ。 だが、実際は1枚分50gのパンケーキミックスに対して、**70ml ほどの牛乳や無脂肪乳を合わせるので、実質的な 1 食辺りタンパク質はさらに多く**なる。 diff --git a/content/blog/post/2022/05/myprotein_protein_spread/index.md b/content/blog/post/2022/05/myprotein_protein_spread/index.md index 6f0128e7b..7e6662515 100644 --- a/content/blog/post/2022/05/myprotein_protein_spread/index.md +++ b/content/blog/post/2022/05/myprotein_protein_spread/index.md @@ -45,7 +45,8 @@ cover: "./cover.jpg" ### 栄養成分 -[[scrollableTable]] + + | --- | 100g あたり | 1 食あたり | | ---------- | ---------------- | -------------- | | エネルギー | 2239 kJ/540 kcal | 336 kJ/81 kcal | @@ -53,6 +54,8 @@ cover: "./cover.jpg" | 炭水化物 | 33 g | 5.0 g | | タンパク質 | 22 g | 3.2 g | + + **重量当たり 22%がタンパク質**だ。やや脂質が多いが、1食辺り15g中6gが脂肪であれば、総量は少ないので脂質に目くじらを立てることもないだろう。 ### 味 diff --git a/content/blog/post/2022/05/protein_granola/index.md b/content/blog/post/2022/05/protein_granola/index.md index 6480acd88..c42e3bbe1 100644 --- a/content/blog/post/2022/05/protein_granola/index.md +++ b/content/blog/post/2022/05/protein_granola/index.md @@ -37,7 +37,8 @@ cover: "./cover.jpg" ### 栄養成分 -[[scrollableTable]] + + | --- | 100g あたり | 30g+スキムミルク | | --- | --- | --- | | エネルギー | 1696 kJ/403 kcal | 716 kJ/170 kcal | @@ -47,6 +48,8 @@ cover: "./cover.jpg" | タンパク質 | 37 g | 15 g | | 食塩相当量 | 0.90 g | 0.47 g | + + **重量当たり 37%がタンパク質**だ。 カルビーのグラノーラが実は脂質ドカ盛りであるのとは対照的に、プロテイングラノーラは**同重量の鶏ささみの 1.5 倍のタンパク質を含有する**超優秀な食品だ。 diff --git a/content/blog/post/2022/05/recovery_gel_myprotein/index.md b/content/blog/post/2022/05/recovery_gel_myprotein/index.md index 4b61bc992..d72ad68c1 100644 --- a/content/blog/post/2022/05/recovery_gel_myprotein/index.md +++ b/content/blog/post/2022/05/recovery_gel_myprotein/index.md @@ -45,7 +45,8 @@ cover: "./cover.jpg" ### 栄養成分 -[[scrollableTable]] + + | --- | 100g あたり | 70g あたり | |-------|------------------|-------------------| | エネルギー | 854 kJ/ 204 kcal | 598 kJ/ 143 kcal | @@ -53,6 +54,8 @@ cover: "./cover.jpg" | 炭水化物 | 28 g | 20 g | | タンパク質 | 21 g | 15 g | + + **1 個あたり 15g のタンパク質、20g の炭水化物**を含有しており、ワークアウトで失ったエネルギーと、筋肉の回復に必要なタンパク質をジェルで素早く補給できる ### 味 diff --git a/content/blog/post/2022/08/camelbak_podium_washing/index.md b/content/blog/post/2022/08/camelbak_podium_washing/index.md index 2a3457a71..8eab09a41 100644 --- a/content/blog/post/2022/08/camelbak_podium_washing/index.md +++ b/content/blog/post/2022/08/camelbak_podium_washing/index.md @@ -52,8 +52,6 @@ cover: "./cover.jpg" - - ## 宣伝 8/13に行われるコミックマーケット100の1日目で、同人誌「サイクリング・デジタルトランスフォーメーション」を頒布予定。 @@ -72,5 +70,3 @@ cover: "./cover.jpg" - - diff --git a/content/blog/post/2022/08/champ_sys_cargo/index.md b/content/blog/post/2022/08/champ_sys_cargo/index.md index 15d82e7a8..c8b0a61dc 100644 --- a/content/blog/post/2022/08/champ_sys_cargo/index.md +++ b/content/blog/post/2022/08/champ_sys_cargo/index.md @@ -62,8 +62,6 @@ Performanceラインのチャンピオンシステムビブショーツはいつ **オンラインショップでも受注制作なので、オプションは自由だ。** - - ## まとめ @@ -96,5 +94,3 @@ Performanceラインのチャンピオンシステムビブショーツはいつ - - diff --git a/gatsby-config.ts b/gatsby-config.ts index 62f73ce8d..00cf0f6fd 100644 --- a/gatsby-config.ts +++ b/gatsby-config.ts @@ -76,17 +76,7 @@ const config: GatsbyConfig = { noInlineHighlight: false } }, - `gatsby-remark-copy-linked-files`, - { - resolve: "gatsby-remark-custom-blocks", - options: { - blocks: { - scrollableTable: { - classes: "scrollable_table" - } - } - } - } + `gatsby-remark-copy-linked-files` ] } }, diff --git a/package-lock.json b/package-lock.json index aa188a4b6..27f3113b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,6 @@ "gatsby-plugin-sitemap": "^5.21.0", "gatsby-plugin-typescript": "^4.21.0", "gatsby-remark-copy-linked-files": "^5.21.0", - "gatsby-remark-custom-blocks": "^4.21.0", "gatsby-remark-images": "^6.21.0", "gatsby-remark-prismjs": "^6.21.0", "gatsby-remark-responsive-iframe": "^5.21.0", @@ -14077,21 +14076,6 @@ "gatsby": "^4.0.0-next" } }, - "node_modules/gatsby-remark-custom-blocks": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-custom-blocks/-/gatsby-remark-custom-blocks-4.21.0.tgz", - "integrity": "sha512-Y3hlIF5DYaEcPWLT5yZ7PUC2Azwlxq+8RtAo8Zgp6QTKBQ3ak1XUAdKWX8lWIEMIf2vwfUZFsCS5V6vvDPzMfw==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "remark-custom-blocks": "^2.5.1" - }, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "gatsby": "^4.0.0-next" - } - }, "node_modules/gatsby-remark-images": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.21.0.tgz", @@ -22690,14 +22674,6 @@ "invariant": "^2.2.4" } }, - "node_modules/remark-custom-blocks": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/remark-custom-blocks/-/remark-custom-blocks-2.6.0.tgz", - "integrity": "sha512-8Lt1WKxOzAGmYH4VrZ9Cq0ZhFCMW2wBKwCxCv0XmmF8jTfWChXer9QYUe0fi9vW/eMbjXh8RLMed3Rst3SQ+KA==", - "dependencies": { - "space-separated-tokens": "^1.1.5" - } - }, "node_modules/remark-frontmatter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", @@ -23961,6 +23937,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -38030,15 +38007,6 @@ "unist-util-visit": "^2.0.3" } }, - "gatsby-remark-custom-blocks": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/gatsby-remark-custom-blocks/-/gatsby-remark-custom-blocks-4.21.0.tgz", - "integrity": "sha512-Y3hlIF5DYaEcPWLT5yZ7PUC2Azwlxq+8RtAo8Zgp6QTKBQ3ak1XUAdKWX8lWIEMIf2vwfUZFsCS5V6vvDPzMfw==", - "requires": { - "@babel/runtime": "^7.15.4", - "remark-custom-blocks": "^2.5.1" - } - }, "gatsby-remark-images": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-6.21.0.tgz", @@ -44191,14 +44159,6 @@ "invariant": "^2.2.4" } }, - "remark-custom-blocks": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/remark-custom-blocks/-/remark-custom-blocks-2.6.0.tgz", - "integrity": "sha512-8Lt1WKxOzAGmYH4VrZ9Cq0ZhFCMW2wBKwCxCv0XmmF8jTfWChXer9QYUe0fi9vW/eMbjXh8RLMed3Rst3SQ+KA==", - "requires": { - "space-separated-tokens": "^1.1.5" - } - }, "remark-frontmatter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz", @@ -45152,7 +45112,8 @@ "space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "dev": true }, "spdx-correct": { "version": "3.1.1", diff --git a/package.json b/package.json index a3f040390..e8b08991e 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "gatsby-plugin-sitemap": "^5.21.0", "gatsby-plugin-typescript": "^4.21.0", "gatsby-remark-copy-linked-files": "^5.21.0", - "gatsby-remark-custom-blocks": "^4.21.0", "gatsby-remark-images": "^6.21.0", "gatsby-remark-prismjs": "^6.21.0", "gatsby-remark-responsive-iframe": "^5.21.0", diff --git a/src/mdx/inArticleTable.tsx b/src/mdx/inArticleTable.tsx new file mode 100644 index 000000000..eb672561a --- /dev/null +++ b/src/mdx/inArticleTable.tsx @@ -0,0 +1,34 @@ +import React from "react" +import { Box } from "@chakra-ui/react" +import { css } from "@emotion/react" + +const style = css` + /* mobile横スクロール許可テーブル */ + .scrollable_table div { + overflow-x: auto; + } + .scrollable_table table { + width: auto; + border: 1px solid #555555; + border-collapse: collapse; + border-spacing: 0; + } + .scrollable_table th { + color: #fff; + padding: 5px; + border-bottom: 1px solid #555555; + border-left: 1px solid #555555; + background: gray; + line-height: 120%; + text-align: center; + } + .scrollable_table td { + padding: 5px; + border-bottom: 1px solid #555555; + border-left: 1px solid #555555; + } +` + +export const InArticleTable: React.FC = ({ children }) => { + return {children} +} diff --git a/src/styles/blog-post.style.tsx b/src/styles/blog-post.style.tsx deleted file mode 100644 index c83c1cc2c..000000000 --- a/src/styles/blog-post.style.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { css } from '@emotion/react' - -const BlogPostStyle = css` - - /* mobile横スクロール許可テーブル */ - .scrollable_table div { - overflow-x:auto; - } - .scrollable_table table { - width: auto; - border: 1px solid #555555; - border-collapse: collapse; - border-spacing: 0; - } - .scrollable_table th { - color: #fff; - padding: 5px; - border-bottom: 1px solid #555555; - border-left: 1px solid #555555; - background: gray; - line-height: 120%; - text-align: center; - } - .scrollable_table td { - padding: 5px; - border-bottom: 1px solid #555555; - border-left: 1px solid #555555; - } - ` - -export default BlogPostStyle \ No newline at end of file diff --git a/src/templates/blog-post.tsx b/src/templates/blog-post.tsx index 7ea183f20..cf0f99fd0 100644 --- a/src/templates/blog-post.tsx +++ b/src/templates/blog-post.tsx @@ -13,16 +13,17 @@ import PostTag from "../components/molecules/postTag" import PrevAndNextPost from "../components/molecules/prevAndNextpost" import TagList from "../components/molecules/tagList" import RelatedPosts from "../components/organisms/relatedPosts" -import BlogPostStyle from "../styles/blog-post.style" import LinkBox from "../mdx/linkBox" import { convertMdxDateToIsoJstDate } from "../utils/convertMdxDateToIsoJstDate" import { PositiveBox } from "../mdx/positive" import { NegativeBox } from "../mdx/negative" +import { InArticleTable } from "../mdx/inArticleTable" const shortcodes = { LinkBox, PositiveBox, - NegativeBox + NegativeBox, + InArticleTable } const BlogPostTemplate: React.FunctionComponent< @@ -70,11 +71,7 @@ const BlogPostTemplate: React.FunctionComponent< - + {Children}