[{"data":1,"prerenderedAt":894},["ShallowReactive",2],{"\u002Fcategory\u002Fprogramming\u002Fpage\u002F2":3},[4,732],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":10,"category":11,"tag":13,"thumbnail":16,"createdAt":17,"updatedAt":18,"body":19,"_type":726,"_id":727,"_source":728,"_file":729,"_stem":730,"_extension":731},"\u002Farticles\u002Fblog-1","articles",false,"","Nuxt+Content+Cloudflareで無料でブログを作ってみた","エンジニアでもない素人でブログ初心者が1カ月で自前のブログ立ち上げに挑戦",[12],"programming",[14,15],"web-standards","vue","nuxt-blog.jpg","2022\u002F4\u002F25","2023\u002F2\u002F15",{"type":20,"children":21,"toc":705},"root",[22,30,34,41,46,51,57,62,67,72,78,83,88,91,97,102,107,112,115,121,148,153,158,171,176,181,184,189,194,199,204,215,220,228,231,237,246,251,259,264,267,272,277,282,287,290,296,309,314,317,323,328,331,337,342,347,360,365,370,383,386,392,397,410,415,420,425,428,434,439,444,449,454,459,483,488,505,508,514,537,542,549,554,559,562,567,572,577,580,689,692,696],{"type":23,"tag":24,"props":25,"children":26},"element","p",{},[27],{"type":28,"value":29},"text","　この記事では、ブログ初心者が1カ月で自前のブログを立ち上げるようすを紹介します。エンジニアでもない素人にそんなことができるのでしょうか？",{"type":23,"tag":31,"props":32,"children":33},"br",{},[],{"type":23,"tag":35,"props":36,"children":38},"h2",{"id":37},"そうだブログを始めよう",[39],{"type":28,"value":40},"そうだ、ブログを始めよう！",{"type":23,"tag":24,"props":42,"children":43},{},[44],{"type":28,"value":45},"　ハダノは中学校教頭として定年退職して1年間、勤めに出ずにインプット中心の生活をしてきました。",{"type":23,"tag":24,"props":47,"children":48},{},[49],{"type":28,"value":50},"　これからは、アウトプットに力を入れていきたい　→　そうだ、ブログを始めよう！　と考えました。しかし、そこには大きなハードルがあったのです。",{"type":23,"tag":52,"props":53,"children":55},"h3",{"id":54},"記事を管理するシステムが必要",[56],{"type":28,"value":54},{"type":23,"tag":24,"props":58,"children":59},{},[60],{"type":28,"value":61},"　シングルページとは違い、記事の数が増えてくるとリンク構造が複雑になります。記事を管理する何らかのシステムが必要です。手入力ではやっていられません。",{"type":23,"tag":52,"props":63,"children":65},{"id":64},"無料ブログシステムの闇",[66],{"type":28,"value":64},{"type":23,"tag":24,"props":68,"children":69},{},[70],{"type":28,"value":71},"　そこで、はてなブログなどの無料ブログシステムを使おうと考えます。運営会社の都合に合わせる生活が始まります。予告なく仕様が変更されたり、突然サービスが終了されたりします。無料だから仕方ないとはいえ、使い捨てにされる気分です。",{"type":23,"tag":52,"props":73,"children":75},{"id":74},"ブログなら-wordpress-一択",[76],{"type":28,"value":77},"ブログなら WordPress 一択",{"type":23,"tag":24,"props":79,"children":80},{},[81],{"type":28,"value":82},"　有名なブロガーは、口をそろえてそう言います。実際に全ウェブサイト中 43% のシェアがあり、2位の 4% を大きく引き離しています。日本国内CMSでは、 84% と独走状態です。",{"type":23,"tag":24,"props":84,"children":85},{},[86],{"type":28,"value":87},"　PHPの動くレンタルサーバーを借りればすむ話ですが、月千円程度必要です。ブログで稼ぐことを考えていない者にとっては、けっこうな負担です。教員には勧められません。",{"type":23,"tag":31,"props":89,"children":90},{},[],{"type":23,"tag":35,"props":92,"children":94},{"id":93},"jamstackで動的サイトと静的サイトのいいとこ取りを",[95],{"type":28,"value":96},"Jamstackで動的サイトと静的サイトのいいとこ取りを",{"type":23,"tag":24,"props":98,"children":99},{},[100],{"type":28,"value":101},"　Jamstackの冒頭3文字はJavaScriptの”J”、APIの”A”、Markupの”M”を並べたものです。Jamstackとはこれらの3つの技術を利用し、Webをより速く、より安全に、そしてより簡単に拡張できるように設計されたしくみです。",{"type":23,"tag":24,"props":103,"children":104},{},[105],{"type":28,"value":106},"　ブログの場合でいうと、WordPressはサーバーサイドでPHPによって動的にページを作ります。JamstackはJavaScriptによって事前に作っておいた静的なページを配信するのです。無料のホスティングサービスを使えばお金は一切かかりません。しかも、Web標準技術（HTML,CSS,JavaScript）の知識さえあれば、自分好みにカスタマイズできます。PHPプログラミングを覚える必要はありません。",{"type":23,"tag":24,"props":108,"children":109},{},[110],{"type":28,"value":111},"　Jamstackにはいろんなシステムがあります。Webアプリを作るのにVue.jsというJavaScriptフレームワークを使ったことのあるハダノは、Vue.jsを拡張するNuxt.jsに挑戦することにしました。",{"type":23,"tag":31,"props":113,"children":114},{},[],{"type":23,"tag":52,"props":116,"children":118},{"id":117},"nuxtcontntでブログシステムを構築",[119],{"type":28,"value":120},"nuxt\u002Fcontntでブログシステムを構築",{"type":23,"tag":122,"props":123,"children":124},"ul",{},[125,138],{"type":23,"tag":126,"props":127,"children":128},"li",{},[129],{"type":23,"tag":130,"props":131,"children":135},"a",{"href":132,"rel":133},"https:\u002F\u002F0115765.com\u002Farchives\u002F6348",[134],"nofollow",[136],{"type":28,"value":137},"Nuxt+Content+Cloudflareで無料でブログを作ろう！【初心者向け】",{"type":23,"tag":126,"props":139,"children":140},{},[141],{"type":23,"tag":130,"props":142,"children":145},{"href":143,"rel":144},"https:\u002F\u002Fjun-app.com\u002Fseries\u002Fnuxt-content-blog\u002F1",[134],[146],{"type":28,"value":147},"Nuxt Content × SSG で作る静的ブログ",{"type":23,"tag":24,"props":149,"children":150},{},[151],{"type":28,"value":152},"などのサイトを参考にブログを作っていきました。",{"type":23,"tag":24,"props":154,"children":155},{},[156],{"type":28,"value":157},"　最初につまづいたのは、ESlintです。JavaScriptのコードが正しいかをチェックするツールで、とても助かるのですが、いちいち細かいことまで指摘してきます。注意だけならともかく警告が出て止まってしまうこともありました。",{"type":23,"tag":159,"props":160,"children":165},"pre",{"code":161,"language":162,"meta":8,"className":163},"  \u002F\u002F add your custom rules here\n  rules: {\n    'vue\u002Fmulti-word-component-names': 'off'\n  }\n",".eslintrc.js",[164],"language-.eslintrc.js",[166],{"type":23,"tag":167,"props":168,"children":169},"code",{"__ignoreMap":8},[170],{"type":28,"value":161},{"type":23,"tag":24,"props":172,"children":173},{},[174],{"type":28,"value":175},"Vueのコンポーネント名として一つの単語を使っても止まらないようにするため、このルールを .eslintrc.js に追加しました。",{"type":23,"tag":24,"props":177,"children":178},{},[179],{"type":28,"value":180},"　次に困ったのはデバッグです。VScodeでのデバッグ方法がよくわからず、結局 Google Chrome で右クリック-検証 とやってデバッグしました。ほとんど単純ミスでした。layout は、うまく使えず、原因不明のままです。ヘッダーなどの共通部品をコンポーネント化したので、さほど困ってはいません。",{"type":23,"tag":31,"props":182,"children":183},{},[],{"type":23,"tag":24,"props":185,"children":186},{},[187],{"type":28,"value":188},"　いちばん困ったのが、date-fnsという日付処理用のプラグインをインストールしようとしたときです。何やらエラーメッセージが出て、そこで何かまずい操作をしたらしく、システムが停止しました。そのあと、Gitで復旧を試みましたが、何かのバージョン違いで復旧作業自体がストップしてしまいました。結局、nuxtのインストールからやり直すはめになりました。「おかしいと思ったら早めに引き返すこと」が教訓となりました。",{"type":23,"tag":24,"props":190,"children":191},{},[192],{"type":28,"value":193},"　作成日付と更新日付は、markdownファイルから自動取得していました。Cloudflare Pagesにデプロイすると、なぜかリセットされてしまいます。nuxt-content-gitというモジュールをインストールすれば解決するらしいと試みるもまたエラー　→　今度は深入りせず、自動取得をあきらめてcreatedAtとupdatedAtを手動で入力することにしました。",{"type":23,"tag":24,"props":195,"children":196},{},[197],{"type":28,"value":198},"　このあとも npm install ではエラーに悩まされました。firebase-tools のインストールで試しに yarn を使ってみたところ、あっさり成功しました。これは使えるかもしれません。",{"type":23,"tag":24,"props":200,"children":201},{},[202],{"type":28,"value":203},"　サイトの看板となるアイコン（favicon.ico）がうまく表示されない問題については、nuxt.config.jsを",{"type":23,"tag":159,"props":205,"children":210},{"code":206,"language":207,"meta":8,"className":208},"  pwa: {\n    manifest: {\n      lang: 'en'\n    },\n    icon: false \u002F\u002F ←PWAのバグに対応\n  },\n","nuxt.config.js",[209],"language-nuxt.config.js",[211],{"type":23,"tag":167,"props":212,"children":213},{"__ignoreMap":8},[214],{"type":28,"value":206},{"type":23,"tag":24,"props":216,"children":217},{},[218],{"type":28,"value":219},"としてみたところ、ちゃんと favicon が表示されるようになりました。",{"type":23,"tag":221,"props":222,"children":227},"img",{"src":223,"alt":224,"className":225},"\u002Fimg\u002Ffavicon.gif","favicon",[226],"imghr",[],{"type":23,"tag":31,"props":229,"children":230},{},[],{"type":23,"tag":52,"props":232,"children":234},{"id":233},"cloudflare-pages-にカスタムドメインを設定",[235],{"type":28,"value":236},"Cloudflare Pages にカスタムドメインを設定",{"type":23,"tag":24,"props":238,"children":239},{},[240],{"type":23,"tag":130,"props":241,"children":244},{"href":242,"rel":243},"https:\u002F\u002Fqiita.com\u002Fakitkat\u002Fitems\u002F8aeaee639ba5f2bda141",[134],[245],{"type":28,"value":242},{"type":23,"tag":24,"props":247,"children":248},{},[249],{"type":28,"value":250},"を参考に、kyodx.com に設定しました。「24時間かかる」との説明でしたが、数分でつながりました。",{"type":23,"tag":159,"props":252,"children":254},{"code":253},"https:\u002F\u002F●●●blog.pages.dev\u002F*\n  X-Robots-Tag: noindex\n",[255],{"type":23,"tag":167,"props":256,"children":257},{"__ignoreMap":8},[258],{"type":28,"value":253},{"type":23,"tag":24,"props":260,"children":261},{},[262],{"type":28,"value":263},"と書いた _headers ファイルをルートに置き、Cloudflare Pages の pages.dev ドメインを無効にして、独自ドメインだけを有効にするようにしました。",{"type":23,"tag":31,"props":265,"children":266},{},[],{"type":23,"tag":52,"props":268,"children":270},{"id":269},"とても簡単なブログ更新作業",[271],{"type":28,"value":269},{"type":23,"tag":24,"props":273,"children":274},{},[275],{"type":28,"value":276},"　content\u002Farticles フォルダに ●●●.md という記事ファイルを作ります。マークダウンの書き方に慣れていなくても、HTMLを貼り付ければ大丈夫です。",{"type":23,"tag":24,"props":278,"children":279},{},[280],{"type":28,"value":281},"　GitHub Desktop で 「commit to master」ボタンをクリックし、「Push origin」ボタンをクリックして、数分間待つだけで勝手に更新されます。",{"type":23,"tag":24,"props":283,"children":284},{},[285],{"type":28,"value":286},"　これまで Git はあまり使っていなかったのですが、変更履歴がきちんと残るので便利です。",{"type":23,"tag":31,"props":288,"children":289},{},[],{"type":23,"tag":52,"props":291,"children":293},{"id":292},"title-タグや-meta-タグを動的に設定",[294],{"type":28,"value":295},"title タグや meta タグを動的に設定",{"type":23,"tag":122,"props":297,"children":298},{},[299],{"type":23,"tag":126,"props":300,"children":301},{},[302],{"type":23,"tag":130,"props":303,"children":306},{"href":304,"rel":305},"https:\u002F\u002Fqiita.com\u002Famishiro\u002Fitems\u002Fb7260116b282d2cf2756",[134],[307],{"type":28,"value":308},"nuxt.js(v2)でSEOに必要なmeta(OGP)を入れたい",{"type":23,"tag":24,"props":310,"children":311},{},[312],{"type":28,"value":313},"を参考に、title タグや meta タグを設定しました。トップページ・記事一覧ページ以外のページでは、title,description,url,imageなどが動的に設定されるようにしました。",{"type":23,"tag":31,"props":315,"children":316},{},[],{"type":23,"tag":52,"props":318,"children":320},{"id":319},"トップページに教育dxの概要説明を",[321],{"type":28,"value":322},"トップページに「教育DX」の概要説明を",{"type":23,"tag":24,"props":324,"children":325},{},[326],{"type":28,"value":327},"　教育DXとは何かを簡単に説明しました。知っている部分は読まなくていいように、details タグ　summary タグ を使いました。それぞれの「カテゴリー」や「タグ」への道案内になればよいと思います。",{"type":23,"tag":31,"props":329,"children":330},{},[],{"type":23,"tag":52,"props":332,"children":334},{"id":333},"e-a-t-を意識した自己紹介を",[335],{"type":28,"value":336},"E-A-T を意識した自己紹介を",{"type":23,"tag":24,"props":338,"children":339},{},[340],{"type":28,"value":341},"　自作ソフト（ソックリッカー、ソックサーガ、ヌルパ）の紹介記事を書きました。",{"type":23,"tag":24,"props":343,"children":344},{},[345],{"type":28,"value":346},"　プロフィールのコンポーネントを作って、各記事の末尾に表示するようにしました。",{"type":23,"tag":122,"props":348,"children":349},{},[350],{"type":23,"tag":126,"props":351,"children":352},{},[353],{"type":23,"tag":130,"props":354,"children":357},{"href":355,"rel":356},"https:\u002F\u002Fwww.suzu6.net\u002Fposts\u002F266-nuxt-content-sitemap\u002F",[134],[358],{"type":28,"value":359},"nuxt\u002Fcontentでサイトマップを作る",{"type":23,"tag":24,"props":361,"children":362},{},[363],{"type":28,"value":364},"を参考に、ビルドしたらサイトマップが sitemap.xml に書き出されるようにしました。Google Search Console への登録に使います。",{"type":23,"tag":24,"props":366,"children":367},{},[368],{"type":28,"value":369},"　Cloudflare Pages でデプロイエラー → 環境変数の設定（NODE_VERSION,YARN_VERSION）で解決しました。Glitchもデフォルトのバージョンが低すぎて、似たようなことがありました。依存ライブラリのバージョン問題には悩まされます。",{"type":23,"tag":122,"props":371,"children":372},{},[373],{"type":23,"tag":126,"props":374,"children":375},{},[376],{"type":23,"tag":130,"props":377,"children":380},{"href":378,"rel":379},"https:\u002F\u002Fwww.saoyagi2.net\u002Fdiary\u002Fpost_175.html",[134],[381],{"type":28,"value":382},"DLLヘルが去ってパッケージヘルがやってきた",{"type":23,"tag":31,"props":384,"children":385},{},[],{"type":23,"tag":52,"props":387,"children":389},{"id":388},"google-search-console-へ登録",[390],{"type":28,"value":391},"Google Search Console へ登録",{"type":23,"tag":24,"props":393,"children":394},{},[395],{"type":28,"value":396},"　Google Search Console のドメインプロパティで、1日待っても「所有権が証明できない」エラーが消えません。本に書いているのとやり方が違って戸惑ったので、",{"type":23,"tag":122,"props":398,"children":399},{},[400],{"type":23,"tag":126,"props":401,"children":402},{},[403],{"type":23,"tag":130,"props":404,"children":407},{"href":405,"rel":406},"https:\u002F\u002Fkoichi-tsujino.com\u002Fsetting_google_search_console_to_gcp",[134],[408],{"type":28,"value":409},"GCP + CloudFlareな環境に移行してGoogle SearchConsoleの設定をした話",{"type":23,"tag":24,"props":411,"children":412},{},[413],{"type":28,"value":414},"を参考に、DNSレコードを「ドメイン登録サービス」ではなく、Cloudflare のDNS設定で追加すると、すぐに解決しました。",{"type":23,"tag":24,"props":416,"children":417},{},[418],{"type":28,"value":419},"　URL検査で「このページはモバイルフレンドリーです」 が出て、一安心です。",{"type":23,"tag":24,"props":421,"children":422},{},[423],{"type":28,"value":424},"　Cloudflare の Web Analytics も始めました。",{"type":23,"tag":31,"props":426,"children":427},{},[],{"type":23,"tag":52,"props":429,"children":431},{"id":430},"google-adsense-審査通過",[432],{"type":28,"value":433},"Google AdSense 審査通過",{"type":23,"tag":24,"props":435,"children":436},{},[437],{"type":28,"value":438},"　2022\u002F7\u002F22、記事数が20に達したので Google AdSense の利用にとりかかりました。",{"type":23,"tag":24,"props":440,"children":441},{},[442],{"type":28,"value":443},"　プライバシーポリシーにGoogle AdSenseについての記述を追加します。",{"type":23,"tag":24,"props":445,"children":446},{},[447],{"type":28,"value":448},"　@nuxtjs\u002Fgoogle-adsense をインストールし、nuxt.config.jsを編集、adsbygoogleコンポーネントをセットします。",{"type":23,"tag":24,"props":450,"children":451},{},[452],{"type":28,"value":453},"　「審査をリクエスト」をクリックして待ちます。審査完了まで平均1～2週間かかるようです。",{"type":23,"tag":24,"props":455,"children":456},{},[457],{"type":28,"value":458},"　審査は年々厳しくなっていく傾向にあり、信頼性の高いWebサイトに求められる",{"type":23,"tag":460,"props":461,"children":462},"ol",{},[463,468,473,478],{"type":23,"tag":126,"props":464,"children":465},{},[466],{"type":28,"value":467},"ユーザーが抱える悩みや疑問を解決できるか",{"type":23,"tag":126,"props":469,"children":470},{},[471],{"type":28,"value":472},"独自性のあるコンテンツか",{"type":23,"tag":126,"props":474,"children":475},{},[476],{"type":28,"value":477},"コンテンツの量や質が適切であるか",{"type":23,"tag":126,"props":479,"children":480},{},[481],{"type":28,"value":482},"お問い合わせ・プライバシーポリシーがあるか",{"type":23,"tag":24,"props":484,"children":485},{},[486],{"type":28,"value":487},"という4つの基準が重視されるようです。",{"type":23,"tag":24,"props":489,"children":490},{},[491,493,503],{"type":28,"value":492},"　ドキドキしながら待っていると、1日半で「AdSense アカウントの有効化おめでとうございます！」のメールが届いてホッとしました。「",{"type":23,"tag":494,"props":495,"children":496},"em",{},[497],{"type":23,"tag":498,"props":499,"children":500},"strong",{},[501],{"type":28,"value":502},"教育DXブログがGoogleに認められたんだ！",{"type":28,"value":504},"」とうれしくなりました。",{"type":23,"tag":31,"props":506,"children":507},{},[],{"type":23,"tag":52,"props":509,"children":511},{"id":510},"staticフォルダ内のページが表示されない",[512],{"type":28,"value":513},"staticフォルダ内のページが表示されない！",{"type":23,"tag":24,"props":515,"children":516},{},[517,519,526,528,535],{"type":28,"value":518},"　マークダウンは書きやすく便利ですが、たまに、マークダウン以外で書かれたページが必要になります。自作のWebアプリ（",{"type":23,"tag":130,"props":520,"children":523},{"href":521,"rel":522},"https:\u002F\u002Fkyodx.com\u002Ftag\u002Fsoclicker",[134],[524],{"type":28,"value":525},"🔗ソックリッカー",{"type":28,"value":527},"、",{"type":23,"tag":130,"props":529,"children":532},{"href":530,"rel":531},"https:\u002F\u002Fkyodx.com\u002Ftag\u002Fsocsaga",[134],[533],{"type":28,"value":534},"🔗ソックサーガ",{"type":28,"value":536},"）やPDF形式の文書などです。",{"type":23,"tag":24,"props":538,"children":539},{},[540],{"type":28,"value":541},"　そんなファイルは、static フォルダに入れておけばルートフォルダに置かれるので、\u002F（スラッシュ）から始まる相対URLでアクセスできます。",{"type":23,"tag":221,"props":543,"children":548},{"src":544,"alt":545,"width":546,"style":547},"\u002Fimg\u002Fpagenotfound.png","ページ表示エラー","50%","float:right",[],{"type":23,"tag":24,"props":550,"children":551},{},[552],{"type":28,"value":553},"　ところが実際は、すんなりと表示されないようです。リロードすれば表示されるので、アドレス指定は間違っていません。",{"type":23,"tag":24,"props":555,"children":556},{},[557],{"type":28,"value":558},"　いろいろ調べますが、今のところ原因がわかっていません。名前解決の問題かもと思いながら、とりあえず絶対URL指定に変えることにしました。",{"type":23,"tag":31,"props":560,"children":561},{},[],{"type":23,"tag":35,"props":563,"children":565},{"id":564},"これからも改良を",[566],{"type":28,"value":564},{"type":23,"tag":24,"props":568,"children":569},{},[570],{"type":28,"value":571},"　自前のブログシステムなので、使っていきながら改良していきます。中身が全部わかっているというのは、安心です。",{"type":23,"tag":24,"props":573,"children":574},{},[575],{"type":28,"value":576},"　これからも応援よろしくお願いします。",{"type":23,"tag":31,"props":578,"children":579},{},[],{"type":23,"tag":581,"props":582,"children":585},"div",{"className":583},[584],"kattene",[586,588,604,605],{"type":28,"value":587},"\n    ",{"type":23,"tag":581,"props":589,"children":592},{"className":590},[591],"kattene__imgpart",[593],{"type":23,"tag":130,"props":594,"children":599},{"target":595,"rel":596,"href":598},"_blank",[597],"noopener","https:\u002F\u002Fhb.afl.rakuten.co.jp\u002Fichiba\u002F273236f4.d5f5314b.273236f5.ec66cf8e\u002F_RTLink57027?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Frakutenkobo-ebooks%2F6641aa3ba3f53a0caa7fa51d5f20f36f%2F&link_type=hybrid_url&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJoeWJyaWRfdXJsIiwic2l6ZSI6IjI0MHgyNDAiLCJuYW0iOjEsIm5hbXAiOiJ1cCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MCwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjAsInByb2QiOjAsImFtcCI6ZmFsc2V9",[600],{"type":23,"tag":221,"props":601,"children":603},{"src":602},"https:\u002F\u002Fthumbnail.image.rakuten.co.jp\u002F@0_mall\u002Frakutenkobo-ebooks\u002Fcabinet\u002F5585\u002F2000007695585.jpg?_ex=240x240",[],{"type":28,"value":587},{"type":23,"tag":581,"props":606,"children":609},{"className":607},[608],"kattene__infopart",[610,612,623,624,639,640,688],{"type":28,"value":611},"\n      ",{"type":23,"tag":581,"props":613,"children":616},{"className":614},[615],"kattene__title",[617],{"type":23,"tag":130,"props":618,"children":620},{"target":595,"rel":619,"href":598},[597],[621],{"type":28,"value":622},"Vue.js&Nuxt.js超入門 [ 掌田津耶乃 ]",{"type":28,"value":611},{"type":23,"tag":581,"props":625,"children":628},{"className":626},[627],"kattene__description",[629,632,634,637],{"type":23,"tag":31,"props":630,"children":631},{},[],{"type":28,"value":633},"※ ネットの情報には、間違いも含まれています。",{"type":23,"tag":31,"props":635,"children":636},{},[],{"type":28,"value":638},"ハダノは掌田さんの本のおかげで、Vue.jsの全体像とNuxt.jsの基本を一通り理解することができました。",{"type":28,"value":611},{"type":23,"tag":581,"props":641,"children":645},{"className":642},[643,644],"kattene__btns","__three",[646,648,660,662,674,675,687],{"type":28,"value":647},"\n      \t",{"type":23,"tag":581,"props":649,"children":650},{},[651],{"type":23,"tag":130,"props":652,"children":657},{"className":653,"target":595,"rel":656,"href":598},[654,655],"kattene__btn","__red",[597],[658],{"type":28,"value":659},"楽天",{"type":28,"value":661},"\n        ",{"type":23,"tag":581,"props":663,"children":664},{},[665],{"type":23,"tag":130,"props":666,"children":671},{"className":667,"target":595,"rel":669,"href":670},[654,668],"__orange",[597],"https:\u002F\u002Faf.moshimo.com\u002Faf\u002Fc\u002Fclick?a_id=3539938&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB07X6F1C2P",[672],{"type":28,"value":673},"Amazon",{"type":28,"value":661},{"type":23,"tag":581,"props":676,"children":677},{},[678],{"type":23,"tag":130,"props":679,"children":684},{"className":680,"target":595,"rel":682,"href":683},[654,681],"__green",[597],"https:\u002F\u002Fck.jp.ap.valuecommerce.com\u002Fservlet\u002Freferral?sid=3651993&pid=887947441&vc_url=https%3A%2F%2Fstore.shopping.yahoo.co.jp%2Fvaboo%2Fva6596805479u30.html%3Fsc_i%3Dshp_pc_search_itemlist_shsrg_title",[685],{"type":28,"value":686},"Yahoo!",{"type":28,"value":611},{"type":28,"value":587},{"type":23,"tag":31,"props":690,"children":691},{},[],{"type":23,"tag":693,"props":694,"children":695},"hr",{},[],{"type":23,"tag":24,"props":697,"children":698},{},[699],{"type":23,"tag":130,"props":700,"children":702},{"href":701},"\u002Farticles\u002Fblog-2",[703],{"type":28,"value":704},"次へ→　持続可能なブログ作り",{"title":8,"searchDepth":706,"depth":706,"links":707},2,[708,714,725],{"id":37,"depth":706,"text":40,"children":709},[710,712,713],{"id":54,"depth":711,"text":54},3,{"id":64,"depth":711,"text":64},{"id":74,"depth":711,"text":77},{"id":93,"depth":706,"text":96,"children":715},[716,717,718,719,720,721,722,723,724],{"id":117,"depth":711,"text":120},{"id":233,"depth":711,"text":236},{"id":269,"depth":711,"text":269},{"id":292,"depth":711,"text":295},{"id":319,"depth":711,"text":322},{"id":333,"depth":711,"text":336},{"id":388,"depth":711,"text":391},{"id":430,"depth":711,"text":433},{"id":510,"depth":711,"text":513},{"id":564,"depth":706,"text":564},"markdown","content:articles:blog-1.md","content","articles\u002Fblog-1.md","articles\u002Fblog-1","md",{"_path":733,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":734,"description":735,"category":736,"tag":737,"thumbnail":739,"createdAt":740,"updatedAt":741,"body":742,"_type":726,"_id":891,"_source":728,"_file":892,"_stem":893,"_extension":731},"\u002Farticles\u002Fprivacy-policy","プライバシーポリシー","教育DXブログのプライバシーポリシー・免責事項等",[12],[738],"information-ed","keyhuman.png","2022\u002F4\u002F24","2022\u002F7\u002F20",{"type":20,"children":743,"toc":882},[744,748,753,758,763,768,773,778,783,797,800,805,810,815,820,823,828,833,838,843,846,851,856,879],{"type":23,"tag":35,"props":745,"children":746},{"id":734},[747],{"type":28,"value":734},{"type":23,"tag":52,"props":749,"children":751},{"id":750},"個人情報の利用目的",[752],{"type":28,"value":750},{"type":23,"tag":24,"props":754,"children":755},{},[756],{"type":28,"value":757},"　当ブログでは、お問い合わせや記事へのコメントの際、名前やメールアドレス等の個人情報を入力いただく場合があります。",{"type":23,"tag":24,"props":759,"children":760},{},[761],{"type":28,"value":762},"　取得した個人情報は、お問い合わせに対する回答や必要な情報を電子メールなどでご連絡する場合に利用させていただくものであり、これらの目的以外では利用いたしません。",{"type":23,"tag":24,"props":764,"children":765},{},[766],{"type":28,"value":767},"　ブログ内の記事での引用については、許可された範囲を超えて行うことはありません。",{"type":23,"tag":52,"props":769,"children":771},{"id":770},"広告について",[772],{"type":28,"value":770},{"type":23,"tag":24,"props":774,"children":775},{},[776],{"type":28,"value":777},"　当ブログでは、第三者配信の広告サービス（Googleアドセンス）を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー（Cookie）を使用しております。",{"type":23,"tag":24,"props":779,"children":780},{},[781],{"type":28,"value":782},"　クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。",{"type":23,"tag":24,"props":784,"children":785},{},[786,788,795],{"type":28,"value":787},"　Cookieを無効にする方法やGoogleアドセンスに関する詳細は ",{"type":23,"tag":130,"props":789,"children":792},{"href":790,"rel":791},"https:\u002F\u002Fpolicies.google.com\u002Ftechnologies\u002Fads?gl=jp",[134],[793],{"type":28,"value":794},"🔗「広告 – ポリシーと規約 – Google」",{"type":28,"value":796}," をご確認ください。",{"type":23,"tag":31,"props":798,"children":799},{},[],{"type":23,"tag":35,"props":801,"children":803},{"id":802},"免責事項",[804],{"type":28,"value":802},{"type":23,"tag":24,"props":806,"children":807},{},[808],{"type":28,"value":809},"　当ブログからのリンクやバナーなどで移動したサイトで提供される情報、サービス等について一切の責任を負いません。",{"type":23,"tag":24,"props":811,"children":812},{},[813],{"type":28,"value":814},"　また当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもあります。",{"type":23,"tag":24,"props":816,"children":817},{},[818],{"type":28,"value":819},"　当ブログに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。",{"type":23,"tag":31,"props":821,"children":822},{},[],{"type":23,"tag":35,"props":824,"children":826},{"id":825},"著作権について",[827],{"type":28,"value":825},{"type":23,"tag":24,"props":829,"children":830},{},[831],{"type":28,"value":832},"　当ブログで掲載している文章や画像などにつきましては、著作権の対象となっています。",{"type":23,"tag":24,"props":834,"children":835},{},[836],{"type":28,"value":837},"　「私的使用のための複製」や「引用」など著作権法上認められた場合を除き、無断で複製・転用することはできません。",{"type":23,"tag":24,"props":839,"children":840},{},[841],{"type":28,"value":842},"　当ブログは著作権や肖像権の侵害を目的としたものではありません。著作権や肖像権に関して問題がありましたら、お問い合わせフォームよりご連絡ください。迅速に対応いたします。",{"type":23,"tag":31,"props":844,"children":845},{},[],{"type":23,"tag":35,"props":847,"children":849},{"id":848},"リンクについて",[850],{"type":28,"value":848},{"type":23,"tag":24,"props":852,"children":853},{},[854],{"type":28,"value":855},"　当ブログへのリンクは、営利、非営利を問わず原則自由です。但し、以下のいずれかに該当する或いはそのおそれがあるリンクはご遠慮ください。",{"type":23,"tag":122,"props":857,"children":858},{},[859,864,869,874],{"type":23,"tag":126,"props":860,"children":861},{},[862],{"type":28,"value":863},"誹謗中傷、信用失墜、当ブログの運営を妨害する場合",{"type":23,"tag":126,"props":865,"children":866},{},[867],{"type":28,"value":868},"財産、プライバシー、肖像権その他の権利を侵害する場合",{"type":23,"tag":126,"props":870,"children":871},{},[872],{"type":28,"value":873},"法令又は公序良俗に反する場合",{"type":23,"tag":126,"props":875,"children":876},{},[877],{"type":28,"value":878},"情報発信元を誤認させるような形でリンクを張る場合",{"type":23,"tag":31,"props":880,"children":881},{},[],{"title":8,"searchDepth":706,"depth":706,"links":883},[884,888,889,890],{"id":734,"depth":706,"text":734,"children":885},[886,887],{"id":750,"depth":711,"text":750},{"id":770,"depth":711,"text":770},{"id":802,"depth":706,"text":802},{"id":825,"depth":706,"text":825},{"id":848,"depth":706,"text":848},"content:articles:privacy-policy.md","articles\u002Fprivacy-policy.md","articles\u002Fprivacy-policy",1793696570934]