やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Python学習サイトの課題ページのデータを2つの.pyに分割した

課題全体で共通のとページ固有のデータに。

成果物

GitHubPython.pylangstudy.Subjects.Template.HTML.201705221559

今回

  • 出力するためのデータを精査する
    • 課題ページ共通
    • 課題ページごとに個別

分別だけはできた。

課題

大量生産にそなえる。

  • 出力するためのデータ受け渡し方法について考える
    • どうやってデータを取得するか
    • どうやってデータを保存しておくか
    • どうやってデータをスクリプトに渡すか

課題ページ作成に必要なデータの分類

整理されていないがメモとして残す。

課題ページ全体で共通

課題ページ固有

  • breadcrumbs_data = {
    • ‘datas’: [{‘text’: ‘孫’, ‘href’: ‘http://2’},{‘text’: ‘子’, ‘href’: ‘http://1’},{‘text’: ‘親’, ‘href’: ‘http://0’}]
  • metanavi_data = {
  • title = ‘課題1のタイトル’
    • と<h1>のテキストノードに指定する値</li> </ul> </li> <li>c = CodeOnly() <ul> <li>code_data <ul> <li>{ ‘path’: ‘0.py’, ‘lines’: [3, 7] }</li> </ul> </li> </ul> </li> <li>c = CodeCompare() <ul> <li>code_data <ul> <li>‘left’: { ‘title’: ‘python2’, ‘path’: ‘left.py’, ‘lines’: [3, 7] },</li> <li>‘right’: { ‘title’: ‘python3’, ‘path’: ‘right.py’, ‘lines’: [3, 7] }})</li> </ul> </li> <li>nextprevnavi_data <ul> <li>‘prev’: {‘text’: ‘前のページ’, ‘href’: ‘<a href="http://prev’">http://prev’</a>},</li> <li>‘next’: {‘text’: ‘次のページ’, ‘href’: ‘<a href="http://next’">http://next’</a>}</li> </ul> </li> </ul> </li> <li>c = CodeList() <ul> <li>title = ‘課題1のタイトル’</li> <li>code_data <ul> <li>[{ ‘path’: ‘0.py’, ‘lines’: [3, 7] },{ ‘path’: ‘left.py’, ‘lines’: [3, 7] },{ ‘path’: ‘right.py’, ‘lines’: [3, 7] }]</li> </ul> </li> <li>nextprevnavi_data <ul> <li>‘prev’: {‘text’: ‘前のページ’, ‘href’: ‘<a href="http://prev’">http://prev’</a>},</li> <li>‘next’: {‘text’: ‘次のページ’, ‘href’: ‘<a href="http://next’">http://next’</a>}</li> </ul> </li> </ul> </li> <li>html = self.__base.CreateHtml( <ul> <li>meta={ <ul> <li>‘title’: title,</li> <li>‘description’: ‘課題1の説明文。’,</li> </ul> </li> </ul> </li> </ul> <h1>所感</h1> <p>共通と個別のデータに分割したが、テンプレートタイプによって引数の形が異なる。テンプレートタイプはページ個別で変わるものだが、実装コードは同一にしたい。</p> <p>そもそも、データを<a class="keyword" href="http://d.hatena.ne.jp/keyword/Python">Python</a>コードに書きたくない。SQLite3か、せめて<a class="keyword" href="http://d.hatena.ne.jp/keyword/json">json</a>ファイルに。そもそも、データを手書きしたくない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D1%A5%F3%A4%AF%A4%BA%A5%EA%A5%B9%A5%C8">パンくずリスト</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CC%DA%B9%BD%C2%A4">木構造</a>などを自動で取得したい。</p> <p>そもそも、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Python">Python</a>文書の見出しツリーを<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D1%A5%F3%A4%AF%A4%BA%A5%EA%A5%B9%A5%C8">パンくずリスト</a>に表示するのは間違っている気がしてきた。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B2%BE%C8%B8%B5">参照元</a>とそのツリーとして表示するならいいが、そのサイトのナビではないから。</p> <h1>前回まで</h1> <ul> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/07/000000">http://ytyaru.hatenablog.com/entry/2018/04/07/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/09/000000">http://ytyaru.hatenablog.com/entry/2018/04/09/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/10/000000">http://ytyaru.hatenablog.com/entry/2018/04/10/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/11/000000">http://ytyaru.hatenablog.com/entry/2018/04/11/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/12/000000">http://ytyaru.hatenablog.com/entry/2018/04/12/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/13/000000">http://ytyaru.hatenablog.com/entry/2018/04/13/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/14/000000">http://ytyaru.hatenablog.com/entry/2018/04/14/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/15/000000">http://ytyaru.hatenablog.com/entry/2018/04/15/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/16/000000">http://ytyaru.hatenablog.com/entry/2018/04/16/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/17/000000">http://ytyaru.hatenablog.com/entry/2018/04/17/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/18/000000">http://ytyaru.hatenablog.com/entry/2018/04/18/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/19/000000">http://ytyaru.hatenablog.com/entry/2018/04/19/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/20/000000">http://ytyaru.hatenablog.com/entry/2018/04/20/000000</a></li> <li><a href="http://ytyaru.hatenablog.com/entry/2018/04/21/000000">http://ytyaru.hatenablog.com/entry/2018/04/21/000000</a></li> </ul> </div> <footer class="entry-footer"> <p class="entry-footer-section"> <span class="author vcard"><span class="fn" data-load-nickname="1" data-user-name="ytyaru">ytyaru</span></span> <span class="entry-footer-time"><a href="http://ytyaru.hatenablog.com/entry/2018/04/22/000000"><time data-relative datetime="2018-04-21T15:00:00Z" title="2018-04-21T15:00:00Z" pubdate class="updated">2018-04-22 00:00</time></a></span> </p> <div class="hatena-star-container"> </div> <div class="hatena-star-metadata" style="display: none"> <a class="hatena-star-permalink" href="http://ytyaru.hatenablog.com/entry/2018/04/22/000000">Python学習サイトの課題ページのデータを2つの.pyに分割した</a> </div> <div class="social-buttons"> <div class="social-button-item"> <a href="http://b.hatena.ne.jp/entry/http://ytyaru.hatenablog.com/entry/2018/04/22/000000" class="hatena-bookmark-button" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="この記事をはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only.gif" alt="この記事をはてなブックマークに追加" width="20" height="20" style="border: none;" /></a> </div> <div class="social-button-item"> <div class="fb-share-button" data-layout="box_count" data-href="http://ytyaru.hatenablog.com/entry/2018/04/22/000000"></div> </div> <div class="social-button-item"> <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://ytyaru.hatenablog.com/entry/2018/04/22/000000" data-count="vertical" data-text="Python学習サイトの課題ページのデータを2つの.pyに分割した - やってみる" data-lang="ja">Tweet</a> </div> </div> <div class="google-afc-image test-google-rectangle-ads"> <div id="google_afc_user_container_0" class="google-afc-user-container google_afc_blocklink2_5 google_afc_boder" data-test-unit="/4374287/blog_user"></div> <a href="http://blog.hatena.ne.jp/guide/pro" class="open-pro-modal" data-guide-pro-modal-ad-url="https://hatenablog.com/guide/pro/modal/ad">広告を非表示にする</a> </div> <div class="customized-footer"> <div class="entry-footer-modules" id="entry-footer-secondary-modules"> <div class="hatena-module hatena-module-related-entries" > <!-- Hatena-Epic-has-related-entries-with-elasticsearch:true --> <div class="hatena-module-title"> 関連記事 </div> <div class="hatena-module-body"> <ul class="related-entries hatena-urllist urllist-with-thumbnails"> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="http://ytyaru.hatenablog.com/archive/2018/04/21" rel="nofollow"> <time pubdate datetime="2018-04-20T15:00:00Z" title="2018-04-20T15:00:00Z"> 2018-04-21 </time> </a> </div> <a href="http://ytyaru.hatenablog.com/entry/2018/04/21/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Python学習サイトの課題ページのテンプレートをHTMLファイル出力した</a> <div class="urllist-entry-body related-entries-entry-body">ついにHTML出力できた。</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="http://ytyaru.hatenablog.com/archive/2018/04/19" rel="nofollow"> <time pubdate datetime="2018-04-18T15:00:00Z" title="2018-04-18T15:00:00Z"> 2018-04-19 </time> </a> </div> <a href="http://ytyaru.hatenablog.com/entry/2018/04/19/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Python学習サイトのHTML文字列クラスを結合してナビとコード文字列を生成した。</a> <div class="urllist-entry-body related-entries-entry-body">だいぶ形がみえてきた。</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="http://ytyaru.hatenablog.com/archive/2018/04/16" rel="nofollow"> <time pubdate datetime="2018-04-15T15:00:00Z" title="2018-04-15T15:00:00Z"> 2018-04-16 </time> </a> </div> <a href="http://ytyaru.hatenablog.com/entry/2018/04/16/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">includeスクリプトを使ってcodeタグなどを付与するスクリプトを書いた</a> <div class="urllist-entry-body related-entries-entry-body">Pythonで。ちょっとHTMLタグ文字列をつけるだけの簡単なお仕事。</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="http://ytyaru.hatenablog.com/archive/2018/04/14" rel="nofollow"> <time pubdate datetime="2018-04-13T15:00:00Z" title="2018-04-13T15:00:00Z"> 2018-04-14 </time> </a> </div> <a href="http://ytyaru.hatenablog.com/entry/2018/04/14/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Python学習サイトのパンくずリスト、メタデータ、前後ナビをCSS付きで書いた</a> <div class="urllist-entry-body related-entries-entry-body">期待していた通りの形にみえる。</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <div class="urllist-date-link related-entries-date-link"> <a href="http://ytyaru.hatenablog.com/archive/2018/04/12" rel="nofollow"> <time pubdate datetime="2018-04-11T15:00:00Z" title="2018-04-11T15:00:00Z"> 2018-04-12 </time> </a> </div> <a href="http://ytyaru.hatenablog.com/entry/2018/04/12/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">パンくずリスト生成スクリプトを水平前次の左右配置パターンのみにした</a> <div class="urllist-entry-body related-entries-entry-body">結局こうなった。</div> </div> </li> </ul> </div> </div> </div> </div> <div class="comment-box"> <ul class="comment"> <li class="read-more-comments" style="display: none;"><a>もっと読む</a></li> </ul> <a class="leave-comment-title">コメントを書く</a> </div> </footer> </div> </article> <!-- rakuten_ad_target_end --> <!-- google_ad_section_end --> <div class="pager pager-permalink permalink"> <span class="pager-prev"> <a href="http://ytyaru.hatenablog.com/entry/2018/04/23/000000" rel="prev"> <span class="pager-arrow">« </span> Twitterキラー?Mastodonに登録してみた </a> </span> <span class="pager-next"> <a href="http://ytyaru.hatenablog.com/entry/2018/04/21/000000" rel="next"> Python学習サイトの課題ページのテンプレ… <span class="pager-arrow"> »</span> </a> </span> </div> </div> </div> <aside id="box1"> <div id="box1-inner"> </div> </aside> </div><!-- #wrapper --> <aside id="box2"> <div id="box2-inner"> <div class="hatena-module hatena-module-search-box"> <div class="hatena-module-title"> 検索 </div> <div class="hatena-module-body"> <form class="search-form" role="search" action="http://ytyaru.hatenablog.com/search" method="get"> <input type="text" name="q" class="search-module-input" value="" placeholder="記事を検索" required> <input type="submit" value="検索" class="search-module-button" /> </form> </div> </div> <div class="hatena-module hatena-module-links"> <div class="hatena-module-title"> リンク </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li> <a href="http://ytyaru.hatenablog.com/entry/about">このブログについて</a> </li> <li> <a href="http://ytyaru.hatenablog.com/archive">アーカイブ</a> </li> <li> <a href="http://ytyaru.hatenablog.com/entry/WorkProducts">できたもの一覧</a> </li> </ul> </div> </div> <div class="hatena-module hatena-module-category"> <div class="hatena-module-title"> カテゴリー </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li> <a href="http://ytyaru.hatenablog.com/archive/category/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0"> プログラミング (178) </a> </li> <li> <a href="http://ytyaru.hatenablog.com/archive/category/%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC"> ワークフロー (222) </a> </li> <li> <a href="http://ytyaru.hatenablog.com/archive/category/%E3%83%96%E3%83%AD%E3%82%B0"> ブログ (22) </a> </li> <li> <a href="http://ytyaru.hatenablog.com/archive/category/Linux"> Linux (4) </a> </li> <li> <a href="http://ytyaru.hatenablog.com/archive/category/RaspberryPi"> RaspberryPi (24) </a> </li> </ul> </div> </div> <div class="hatena-module hatena-module-recent-entries "> <div class="hatena-module-title"> <a href="http://ytyaru.hatenablog.com/archive"> 最新記事 </a> </div> <div class="hatena-module-body"> <ul class="recent-entries hatena-urllist "> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="http://ytyaru.hatenablog.com/entry/2018/11/16/000000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">PythonコードをGoogle翻訳で国際化する(pot,po,moファイル既存時は更新する)</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="http://ytyaru.hatenablog.com/entry/2018/11/15/000000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">PythonコードをGoogle翻訳で国際化した</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="http://ytyaru.hatenablog.com/entry/2018/11/14/000000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">PythonでGoogle翻訳API用クラスを作った</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="http://ytyaru.hatenablog.com/entry/2018/11/13/000000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">mitmproxyをインストールし使ってみるも使えず</a> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <a href="http://ytyaru.hatenablog.com/entry/2018/11/12/000000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">Google翻訳APIを使ってみる</a> </div> </li> </ul> </div> </div> <div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="http://ytyaru.hatenablog.com/archive"> <div class="hatena-module-title"> <a href="http://ytyaru.hatenablog.com/archive">月別アーカイブ</a> </div> <div class="hatena-module-body"> </div> </div> <div class="hatena-module hatena-module-html"> <div class="hatena-module-title">プロフィール</div> <div class="hatena-module-body"> <div class="hatena-module hatena-module-profile"> <div class="hatena-module-body"> <a href="http://ytyaru.hatenablog.com/about" class="profile-icon-link" title="ytyaru"> <img src="http://cdn1.www.st-hatena.com/users/yt/ytyaru/profile.gif?1472478950" alt="id:ytyaru" class="profile-icon"> </a> <a href="https://github.com/ytyaru" title="GitHub"><img src="http://www.google.com/s2/favicons?domain=github.com" /></a><a href="https://mstdn.jp/web/accounts/233143" title="Mastodon"><img src="http://www.google.com/s2/favicons?domain=mstdn.jp" /></a> <div class="profile-description"><p>アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。</p></div> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box"> <a href="#" class="hatena-follow-button js-hatena-follow-button unsubscribing"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once=""> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div style="display: block;" class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count">3</span> </div> </div> </div> </div> </div> </div> </div> </aside> </div> </div> </div> </div> <footer id="footer" data-brand="hatenablog"> <div id="footer-inner"> <div style="display:none !important" class="guest-footer js-guide-register test-blogs-register-guide" data-action="guide-register"> <div class="guest-footer-content"> <h3>はてなブログをはじめよう!</h3> <p>ytyaruさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?</p> <div class="guest-footer-btn-container"> <div class="guest-footer-btn"> <a class="btn btn-register" href="http://blog.hatena.ne.jp/register?via=200227" target="_blank">はてなブログをはじめる(無料)</a> </div> <div class="guest-footer-btn"> <a href="https://hatenablog.com/guide" target="_blank">はてなブログとは</a> </div> </div> </div> </div> <address class="footer-address"> <a href="http://ytyaru.hatenablog.com/"> <img src="https://cdn.image.st-hatena.com/image/square/4aac36de5ebe218f2ec4e52e1bce268776821a8d/backend=imagemagick;height=128;version=1;width=128/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fcustom_blog_icon%2F120967881%2F1514215479294562" width="16" height="16" alt="やってみる"/> <span class="footer-address-name">やってみる</span> </a> </address> <p class="services"> Powered by <a href="https://hatenablog.com/">Hatena Blog</a> | <a href="https://blog.hatena.ne.jp/-/abuse_report?target_url=http%3A%2F%2Fytyaru.hatenablog.com%2Fentry%2F2018%2F04%2F22%2F000000" class="report-abuse-link test-report-abuse-link" target="_blank">ブログを報告する</a> </p> </div> </footer> <script src="https://s.hatena.ne.jp/js/HatenaStar.js?20180530"></script> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=719729204785177&version=v2.7"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="quote-box"> <div class="tooltip-quote tooltip-quote-star"> <i class="blogicon-star" title="引用スターをつける"></i> </div> <div class="tooltip-quote tooltip-quote-stock"> <i class="blogicon-quote" title="引用をストック"></i> </div> <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once><i class="blogicon-twitter" title="引用してツイートする"></i></a> </div> </div> <div class="message-box" id="quote-star-message-box" style="display: none; position: absolute;"> スターをつけました </div> <div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> <p>引用をストックしました</p> <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ストック一覧を見る</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="message-box" id="quote-login-required-message" style="display: none"> <p>引用するにはまずログインしてください</p> <button class="btn btn-primary" id="quote-login-button">ログイン</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="quote-stock-failed-message" style="display: none"> <p>引用をストックできませんでした。再度お試しください</p> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> <p>限定公開記事のため引用できません。</p> </div> </div> <script type="x-underscore-template" id="js-requote-button-template"> <div class="requote-button js-requote-button"> <button class="requote-button-btn tipsy-top" title="引用する"><i class="blogicon-quote"></i></button> </div> </script> <div id="hidden-subscribe-button" style="display: none;"> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> </div> <script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script> <script src="https://apis.google.com/js/platform.js" async defer> { lang: 'ja', "parsetags": "explicit" } </script> <script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/react-with-addons.min.js?version=15.4.1"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/react-dom.min.js?version=15.4.1"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?version=1.12.3"></script> <script type="text/javascript" src="//cdn7.www.st-hatena.com/js/jquery/jquery-ui.1.10.0.custom.min.js"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.flot.js?version=0.8.3"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.flot.time.js?version=0.8.3"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=7da71eb4d7bb9d883ff4f354700bb43f9e80b8ff&env=production"></script> <script id="hatenablog-js" data-env="production" type="text/javascript" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=368a8bf44cad6ad9bda56f6a7e34e0ba1ff79212&env=production" crossorigin="anonymous"></script> <script type="text/javascript">Hatena.Diary.GlobalHeader.init()</script> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script id="valve-dmp" data-service="blog" src="https://cdn.pool.st-hatena.com/valve/dmp.js" data-test-id="dmpjs" async></script> </body> </html>