SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Oktopartialを作ったよ
               id:akm
自己紹介

akimatter => {
    :occupation => "freelance programmer",
    :favorite_languages => %w(Ruby JavaScript),
    :blog => "http://d.hatena.ne.jp/akm",
    :repository => "http://github.com/akm",
    :member_of => "RBC",
}
Oktopartialとは?
 静的なHTMLに動的な要素を嵌め込むための仕組み
 を提供するRailsのプラグインです

           ログインフォーム
 ここにログイン
フォームを入れた    をください
    い                                                   サーバー
           <form action="." class="login_form">

             <p>

              <label for="login_id">Login ID:</label>

              <input type="text" id="login_id"/>

             </p>

             <p>

              <label for="password">Password:</label>

              <input type="text" id="password"/>

             </p>

静的なHTML      <p>

              <input type="submit" value="ログイン"/>

             </p>

           </form>
レイアウトの適用
単に嵌め込むだけではなく、ヘッダーとフッターな
どを一つにまとめた「レイアウト」をページに適用
できます。

  ヘッダー       レイアウト
ページ固有のコ      をください
  ンテンツ
                                                     サーバー
 フッター
           (ヘッダー)

レイアウトを入れ   (左ナビゲーション)

           <div class="oktopartial_content"></div>
   たい      (右サイドバー)

           (フッター)

静的なHTML
サーバー不要
  サーバーを動かさなくても、ローカルのファイ
  ルがあればOK!しかも記述を変更しないで試せ
  ます
          ログインフォー
           ムをください   ファイル
 ここにログイン                                                  システム
フォームを入れた    <form action="." class="login_form">


    い         <p>

               <label for="login_id">Login ID:</label>

               <input type="text" id="login_id"/>
                                                           ログイン
              </p>
                                                         フォームのファ
              <p>

               <label for="password">Password:</label>      イル
               <input type="text" id="password"/>

              </p>

              <p>

静的なHTML        <input type="submit" value="ログイン"/>

              </p>

            </form>
サーバー不要ということは?

    Y !    ローカルな静的なHTMLをどんどん

 D R       部品に切り分けて試してみることが
           できる!
                 ヘッダー       ヘッダーの
  ヘッダー
                 を入れる        HTML
ページ固有のコ
  ンテンツ         ページ固有コンテン
                 ツを入れる


レイアウトを入れ
                 フッター       フッターの
   たい
                 を入れる        HTML
静的なHTML
               レイアウトのHTML
DRY
      Don't Repeat Yourself
Ruby on Railsで有名になった言葉。
元々はアジャイル方面の言葉です。
http://c2.com/cgi/wiki?DontRepeatYourself

Railsプログラマのみんなはきっと気を
付けているはずだけど、HTMLを書く
人もそうした方がいいんじゃない?
デザインのHTMLも
    DRYであるべき
「トップページだけ3つくらいデザイン作ってみてく
れる?それ以外のページは重要なとこだけ作ってく
れればいいから」

「基本的なテーマは3番目のでいきましょう。トップ
ページ以外にもテーマを適用してくれる?」

「なんかこのページ違うな。やっ   適切な部品に分
ぱ1番でやってみてくれない?」    かれていれば
デザインのHTMLも
   DRYであるべき
「すいません、このHTMLとこのHTMLのここ
の部品が若干違うんですけど、どっちが正しいん
ですか?」

「ちょっと試してみたらメニューのリンクがう
まく動かないんだよね、トップページはちゃんと
してるけど、他のページは直してないの?」
                一カ所修正するだ
               けで全てのページに反映
                  してほしい!
サイト構築での作業

    ラフデザイン    HTML作成       アプリへの適用

     紙や画像       ページ数 テー    HTMLの共通部
                 マ数の分だけ    分を分解して、
oktopartialを使うと HTMLができる   再度組み立てる

                           アプリへ
    ラフデザイン     HTML作成
                            の適用
     紙や画像    ページ数 + テーマ 既に分解されている
             数 + 部品の分だ  ので、適用が簡単
             けHTMLができる
どれくらい簡単?
 /public/page1.html
<html>                インストールは
  <head>
                      終わってる前提で
  </head>
  <body>              話を進めます。
    (ページ固有の部分)
                      こんな感じの
    (部品にしたい部分)
    (ページ固有の部分)        HTMLを部品に
  </body>             分けてみます。
</html>
Step1 JavaScriptの追加

  /public/page1.html
<html>
  <head>



                                                                               拡大
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
    (ページ固有の部分)
    (部品にしたい部分)
    (ページ固有の部分)
  </body>
</html>




<head>
 <script type="text/javascript" src="javascripts/jquery.js"></script>
 <script type="text/javascript" src="javascripts/oktopartial.js"></script>
</head>
Step2 部品ファイルの作成

/public/page1.html
<html>
  <head>
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
    (ページ固有の部分)
    (部品にしたい部分)
    (ページ固有の部分)
  </body>
</html>


/public/parts/part1.html
(部品にしたい部分)
Step3 部品の呼び出し

/public/page1.html
<html>
  <head>
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
   (ページ固有の部分)
   <div class="oktopartial_replace">/parts/part1.html</div>
   (ページ固有の部分)
  </body>
</html>



                            これで部品化完了!
レイアウトも簡単?
/public/page2.html
<html>               こんな感じの
  <head>
                     HTMLのヘッ
  </head>
  <body>             ダーとフッター
    (ヘッダー)           からレイアウト
    (ページ固有の部分)
                     用のHTMLを
    (フッター)
  </body>            作ってみます。
</html>
Step1 JavaScriptの追加

/public/page2.html
<html>
  <head>



                                                                                 拡大
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
    (ページ固有の部分)
    (部品にしたい部分)
    (ページ固有の部分)
  </body>
</html>




<head>
 <script type="text/javascript" src="javascripts/jquery.js"></script>
 <script type="text/javascript" src="javascripts/oktopartial.js"></script>
</head>

                                                                               既に書いてある場
                                                                               合は要りません
Step2 レイアウトHTMLの作成
/public/page2.html
<html>
  <head>
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
    (ヘッダー)
    (ページ固有の部分)
    (フッター)
  </body>
</html>




/public/layouts/layout1.html # ディレクトリは/public/layoutsが推奨
(ヘッダー)
<div class="oktopartial_content"></div>
(フッター)
Step3 レイアウトの呼び出し

/public/page2.html
<html>
  <head>
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
   <div class="oktopartial_layout">
    <div class="oktopartial_url">/layouts/layout1.html</div>
    (ページ固有の部分)
   </div>
  </body>
</html>




                            レイアウトも簡単!
どれくらいまとまるの?
HTMLにどれくら
                                            original   oktopartialized


い重複があるのか           /page_header1.html
                   /page_header2.html
                                            5,732
                                            3,863
                                                              1,651
                                                              1,651
                                                                         /layouts/layout1.html
                                                                         /layouts/layout2.html
                                                                                                                  576
                                                                                                                  806
                   /page_header3.html       5,292             1,651      /layouts/layout3.html                    805

にもよります             /page_header4.html
                   /page_header5.html
                                            5,298
                                            3,423
                                                              1,651
                                                              1,651
                                                                         /layouts/layout4.html
                                                                         /layouts/layout5.html
                                                                                                                  950
                                                                                                                  949


が、multiflex3の
                   /page_header6.html       3,429             1,651      /layouts/menu.html                      1,513
                   /page_header7.html       4,122             1,651      /layouts/navigation.html                2,089
                   /page_layout1.html      22,913             2,588      /layouts/subcontents.html               2,827

サンプルの重複を           /page_layout2.html
                   /page_layout3.html
                                           27,319
                                           27,333
                                                              2,404
                                                              2,404
                                                                         /layouts/top_navigation.html
                                                                         /parts/column_types.html
                                                                                                                  938
                                                                                                                 4,605
                   /page_layout4.html      34,289             2,404      /parts/contact_form.html                3,837

まとめてみたとこ           /page_layout5.html
                   /layouts/footer.html
                                           34,222             2,404
                                                                 396
                                                                         /parts/links.html
                                                                         /parts/login_form.html
                                                                                                                  466
                                                                                                                 1,200


ろ、117KBが
                   /layouts/header1.html                         621     /parts/paragraph_text.html              1,422
                   /layouts/header2.html                         499     /parts/search_form.html                  240
                   /layouts/header3.html                         493     /parts/site_message.html                 307

55KBに減りまし          /layouts/header4.html
                   /layouts/header5.html
                                                                 499
                                                                 371
                                                                         /parts/tables.html
                                                                         /parts/text_and_images.html
                                                                                                                  682
                                                                                                                 1,745
                   /layouts/header6.html                         377     /parts/text_formats.html                1,803

た。                 /layouts/header7.html                         367     /parts/topic_path.html                   210
                                                                                                        177,235 55,354


http://github.com/akm/oktopartial_multiflex3 に全変更が記録されています。
Q. Railsのレイアウトは?
        A. 簡単に使えちゃいます。

        app/views/layouts/application.html.erbを使う場合
/public/page3.html
<html>
 <head>
   <script type="text/javascript" src="javascripts/jquery.js"></script>
   <script type="text/javascript" src="javascripts/oktopartial.js"></script>
  </head>
  <body>
  <div class="oktopartial_layout">
   <div class="oktopartial_url">/layouts/application.html</div>
   (ページ固有の部分)
                                静的ファイルと同じ書き方でOK
  </div>
 </body>                              * config/routes.rb に 以下の記述を追加してください。
</html>                                 map.connect "/layouts/:action", :controller => "oktopartial/layouts"
Railsのビューへの移行



静的なHTMLで作成した部品を、ビューへ移行す
るためには
1. 対応するコントローラを作成
2. .htmlを.html.erbに変えてapp/views/xxxに
  移動
後は必要に応じて<% %> とか <%= %>を入れて
ください。
controllerでrenderするときに:layout=>falseに
してください。
試してみてください

    インストールはたった3つのコマンド

ruby script/plugin install git://github.com/aaronchi/jrails.git

ruby script/plugin install git://github.com/akm/oktopartial.git

rake oktopartial:setup

Más contenido relacionado

La actualidad más candente

WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb APIYuko Toriyama
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回Hitsuji
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMiho Nakano
 
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!hokori matu
 
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在yoshikawa_t
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 arisu yano
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回Hitsuji
 
ゼロからつくるWord pressテーマ第7回
ゼロからつくるWord pressテーマ第7回ゼロからつくるWord pressテーマ第7回
ゼロからつくるWord pressテーマ第7回Hitsuji
 
Webapp startup example_to_dolist
Webapp startup example_to_dolistWebapp startup example_to_dolist
Webapp startup example_to_dolistShinichiro Kumeuchi
 
ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回Hitsuji
 
ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回Hitsuji
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tipsyoshikawa_t
 
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでWordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでTakashi Uemura
 
Word press34
Word press34Word press34
Word press34BREN
 
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & TipsjQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tipsyoshikawa_t
 
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報yoshikawa_t
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回Hitsuji
 

La actualidad más candente (20)

WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb API
 
ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回ゼロからつくるWord pressテーマ第6回
ゼロからつくるWord pressテーマ第6回
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
WordPress 3.2の新機能& 新デフォルトテーマ Twenty Eleven 大解剖!
 
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在
 
CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4 CSS Nite in Matsuyama vol.1 - session 4
CSS Nite in Matsuyama vol.1 - session 4
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回ゼロからつくるWordPressテーマ第4回
ゼロからつくるWordPressテーマ第4回
 
ゼロからつくるWord pressテーマ第7回
ゼロからつくるWord pressテーマ第7回ゼロからつくるWord pressテーマ第7回
ゼロからつくるWord pressテーマ第7回
 
Webapp startup example_to_dolist
Webapp startup example_to_dolistWebapp startup example_to_dolist
Webapp startup example_to_dolist
 
ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回ゼロからつくるWord pressテーマ第5回
ゼロからつくるWord pressテーマ第5回
 
ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回ゼロからつくるWord pressテーマ第8回
ゼロからつくるWord pressテーマ第8回
 
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & TipsjQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
 
WordBeach @kurudrive
WordBeach @kurudriveWordBeach @kurudrive
WordBeach @kurudrive
 
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでWordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまで
 
Word press34
Word press34Word press34
Word press34
 
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & TipsjQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 1.2 最新情報 & Tips
 
jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報jQuery Mobile 1.3 最新情報
jQuery Mobile 1.3 最新情報
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回ゼロからつくるWord pressテーマ第9回
ゼロからつくるWord pressテーマ第9回
 

Destacado

Destacado (12)

Tubettoni E Fagioli Con Le Cozze
Tubettoni E Fagioli Con Le CozzeTubettoni E Fagioli Con Le Cozze
Tubettoni E Fagioli Con Le Cozze
 
Ram Central Park
Ram Central ParkRam Central Park
Ram Central Park
 
cv new_2
cv new_2cv new_2
cv new_2
 
Fast Pitch Forum (WidgetBucks)
Fast Pitch Forum (WidgetBucks)Fast Pitch Forum (WidgetBucks)
Fast Pitch Forum (WidgetBucks)
 
Al Kahaf
Al KahafAl Kahaf
Al Kahaf
 
Peru Expeditions 2009 2010
Peru Expeditions 2009 2010Peru Expeditions 2009 2010
Peru Expeditions 2009 2010
 
Multicultural Marketing Research
Multicultural Marketing ResearchMulticultural Marketing Research
Multicultural Marketing Research
 
S Monica Jardins Cond Club E Mail
S Monica Jardins Cond Club   E MailS Monica Jardins Cond Club   E Mail
S Monica Jardins Cond Club E Mail
 
Coursera LHTL Certificate with Honors
Coursera LHTL Certificate with HonorsCoursera LHTL Certificate with Honors
Coursera LHTL Certificate with Honors
 
pmi 35 contact hrs
pmi 35 contact hrspmi 35 contact hrs
pmi 35 contact hrs
 
La Vista CalçAda Barra Bonita E Mail
La Vista   CalçAda Barra Bonita E MailLa Vista   CalçAda Barra Bonita E Mail
La Vista CalçAda Barra Bonita E Mail
 
Teamwork hare and turtle story revisited
Teamwork  hare and turtle story revisitedTeamwork  hare and turtle story revisited
Teamwork hare and turtle story revisited
 

Similar a Oktopartial Introduction

閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とはMuyuu Fujita
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails TutorialKen Iiboshi
 
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドTetsuji Hayashi
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」タカシ キタジマ
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applicationstotty jp
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionSatomi Tsujita
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittrkenjis
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップSwapSkills
 
2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizingTom Hayakawa
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマHideki MACHIDA
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Sea Mountain
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestWTomoko Sato
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルRyuji Egashira
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28Kite Koga
 

Similar a Oktopartial Introduction (20)

閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
 
Wp html5
Wp html5Wp html5
Wp html5
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
Ruby on Rails Tutorial
Ruby on Rails TutorialRuby on Rails Tutorial
Ruby on Rails Tutorial
 
WordPress と Bootstrap
WordPress と BootstrapWordPress と Bootstrap
WordPress と Bootstrap
 
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applications
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittr
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing2005 05 21_xoops_xev4_customizing
2005 05 21_xoops_xev4_customizing
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
 
Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7Ruby on Rails Tutorial Chapter5-7
Ruby on Rails Tutorial Chapter5-7
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
web server
web serverweb server
web server
 
GDG Women DevfestW
GDG Women DevfestWGDG Women DevfestW
GDG Women DevfestW
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
Sendai.html5#2
Sendai.html5#2Sendai.html5#2
Sendai.html5#2
 

Más de Takeshi AKIMA

LT at JavaOne2012 JVM language BoF #jt12_b101
LT at JavaOne2012  JVM language BoF #jt12_b101LT at JavaOne2012  JVM language BoF #jt12_b101
LT at JavaOne2012 JVM language BoF #jt12_b101Takeshi AKIMA
 
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
DSL by JRuby at JavaOne2012  JVM language BoF #jt12_b101DSL by JRuby at JavaOne2012  JVM language BoF #jt12_b101
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101Takeshi AKIMA
 
20120324 git training
20120324 git training20120324 git training
20120324 git trainingTakeshi AKIMA
 
20120121 rbc rails_routing
20120121 rbc rails_routing20120121 rbc rails_routing
20120121 rbc rails_routingTakeshi AKIMA
 
jrubykaigi2010-lt-rubeus
jrubykaigi2010-lt-rubeusjrubykaigi2010-lt-rubeus
jrubykaigi2010-lt-rubeusTakeshi AKIMA
 
仕事で使ってるプラグイン
仕事で使ってるプラグイン仕事で使ってるプラグイン
仕事で使ってるプラグインTakeshi AKIMA
 

Más de Takeshi AKIMA (8)

20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoid
 
LT at JavaOne2012 JVM language BoF #jt12_b101
LT at JavaOne2012  JVM language BoF #jt12_b101LT at JavaOne2012  JVM language BoF #jt12_b101
LT at JavaOne2012 JVM language BoF #jt12_b101
 
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
DSL by JRuby at JavaOne2012  JVM language BoF #jt12_b101DSL by JRuby at JavaOne2012  JVM language BoF #jt12_b101
DSL by JRuby at JavaOne2012 JVM language BoF #jt12_b101
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
20120121 rbc rails_routing
20120121 rbc rails_routing20120121 rbc rails_routing
20120121 rbc rails_routing
 
Llonsen object ruby
Llonsen object rubyLlonsen object ruby
Llonsen object ruby
 
jrubykaigi2010-lt-rubeus
jrubykaigi2010-lt-rubeusjrubykaigi2010-lt-rubeus
jrubykaigi2010-lt-rubeus
 
仕事で使ってるプラグイン
仕事で使ってるプラグイン仕事で使ってるプラグイン
仕事で使ってるプラグイン
 

Último

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (10)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Oktopartial Introduction

  • 2. 自己紹介 akimatter => { :occupation => "freelance programmer", :favorite_languages => %w(Ruby JavaScript), :blog => "http://d.hatena.ne.jp/akm", :repository => "http://github.com/akm", :member_of => "RBC", }
  • 3. Oktopartialとは? 静的なHTMLに動的な要素を嵌め込むための仕組み を提供するRailsのプラグインです ログインフォーム ここにログイン フォームを入れた をください い サーバー <form action="." class="login_form"> <p> <label for="login_id">Login ID:</label> <input type="text" id="login_id"/> </p> <p> <label for="password">Password:</label> <input type="text" id="password"/> </p> 静的なHTML <p> <input type="submit" value="ログイン"/> </p> </form>
  • 4. レイアウトの適用 単に嵌め込むだけではなく、ヘッダーとフッターな どを一つにまとめた「レイアウト」をページに適用 できます。 ヘッダー レイアウト ページ固有のコ をください ンテンツ サーバー フッター (ヘッダー) レイアウトを入れ (左ナビゲーション) <div class="oktopartial_content"></div> たい (右サイドバー) (フッター) 静的なHTML
  • 5. サーバー不要 サーバーを動かさなくても、ローカルのファイ ルがあればOK!しかも記述を変更しないで試せ ます ログインフォー ムをください ファイル ここにログイン システム フォームを入れた <form action="." class="login_form"> い <p> <label for="login_id">Login ID:</label> <input type="text" id="login_id"/> ログイン </p> フォームのファ <p> <label for="password">Password:</label> イル <input type="text" id="password"/> </p> <p> 静的なHTML <input type="submit" value="ログイン"/> </p> </form>
  • 6. サーバー不要ということは? Y ! ローカルな静的なHTMLをどんどん D R 部品に切り分けて試してみることが できる! ヘッダー ヘッダーの ヘッダー を入れる HTML ページ固有のコ ンテンツ ページ固有コンテン ツを入れる レイアウトを入れ フッター フッターの たい を入れる HTML 静的なHTML レイアウトのHTML
  • 7. DRY Don't Repeat Yourself Ruby on Railsで有名になった言葉。 元々はアジャイル方面の言葉です。 http://c2.com/cgi/wiki?DontRepeatYourself Railsプログラマのみんなはきっと気を 付けているはずだけど、HTMLを書く 人もそうした方がいいんじゃない?
  • 8. デザインのHTMLも DRYであるべき 「トップページだけ3つくらいデザイン作ってみてく れる?それ以外のページは重要なとこだけ作ってく れればいいから」 「基本的なテーマは3番目のでいきましょう。トップ ページ以外にもテーマを適用してくれる?」 「なんかこのページ違うな。やっ 適切な部品に分 ぱ1番でやってみてくれない?」 かれていれば
  • 9. デザインのHTMLも DRYであるべき 「すいません、このHTMLとこのHTMLのここ の部品が若干違うんですけど、どっちが正しいん ですか?」 「ちょっと試してみたらメニューのリンクがう まく動かないんだよね、トップページはちゃんと してるけど、他のページは直してないの?」 一カ所修正するだ けで全てのページに反映 してほしい!
  • 10. サイト構築での作業 ラフデザイン HTML作成 アプリへの適用 紙や画像 ページ数 テー HTMLの共通部 マ数の分だけ 分を分解して、 oktopartialを使うと HTMLができる 再度組み立てる アプリへ ラフデザイン HTML作成 の適用 紙や画像 ページ数 + テーマ 既に分解されている 数 + 部品の分だ ので、適用が簡単 けHTMLができる
  • 11. どれくらい簡単? /public/page1.html <html> インストールは <head> 終わってる前提で </head> <body> 話を進めます。 (ページ固有の部分) こんな感じの (部品にしたい部分) (ページ固有の部分) HTMLを部品に </body> 分けてみます。 </html>
  • 12. Step1 JavaScriptの追加 /public/page1.html <html> <head> 拡大 <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> (ページ固有の部分) (部品にしたい部分) (ページ固有の部分) </body> </html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head>
  • 13. Step2 部品ファイルの作成 /public/page1.html <html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> (ページ固有の部分) (部品にしたい部分) (ページ固有の部分) </body> </html> /public/parts/part1.html (部品にしたい部分)
  • 14. Step3 部品の呼び出し /public/page1.html <html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> (ページ固有の部分) <div class="oktopartial_replace">/parts/part1.html</div> (ページ固有の部分) </body> </html> これで部品化完了!
  • 15. レイアウトも簡単? /public/page2.html <html> こんな感じの <head> HTMLのヘッ </head> <body> ダーとフッター (ヘッダー) からレイアウト (ページ固有の部分) 用のHTMLを (フッター) </body> 作ってみます。 </html>
  • 16. Step1 JavaScriptの追加 /public/page2.html <html> <head> 拡大 <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> (ページ固有の部分) (部品にしたい部分) (ページ固有の部分) </body> </html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> 既に書いてある場 合は要りません
  • 17. Step2 レイアウトHTMLの作成 /public/page2.html <html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> (ヘッダー) (ページ固有の部分) (フッター) </body> </html> /public/layouts/layout1.html # ディレクトリは/public/layoutsが推奨 (ヘッダー) <div class="oktopartial_content"></div> (フッター)
  • 18. Step3 レイアウトの呼び出し /public/page2.html <html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> <div class="oktopartial_layout"> <div class="oktopartial_url">/layouts/layout1.html</div> (ページ固有の部分) </div> </body> </html> レイアウトも簡単!
  • 19. どれくらいまとまるの? HTMLにどれくら original oktopartialized い重複があるのか /page_header1.html /page_header2.html 5,732 3,863 1,651 1,651 /layouts/layout1.html /layouts/layout2.html 576 806 /page_header3.html 5,292 1,651 /layouts/layout3.html 805 にもよります /page_header4.html /page_header5.html 5,298 3,423 1,651 1,651 /layouts/layout4.html /layouts/layout5.html 950 949 が、multiflex3の /page_header6.html 3,429 1,651 /layouts/menu.html 1,513 /page_header7.html 4,122 1,651 /layouts/navigation.html 2,089 /page_layout1.html 22,913 2,588 /layouts/subcontents.html 2,827 サンプルの重複を /page_layout2.html /page_layout3.html 27,319 27,333 2,404 2,404 /layouts/top_navigation.html /parts/column_types.html 938 4,605 /page_layout4.html 34,289 2,404 /parts/contact_form.html 3,837 まとめてみたとこ /page_layout5.html /layouts/footer.html 34,222 2,404 396 /parts/links.html /parts/login_form.html 466 1,200 ろ、117KBが /layouts/header1.html 621 /parts/paragraph_text.html 1,422 /layouts/header2.html 499 /parts/search_form.html 240 /layouts/header3.html 493 /parts/site_message.html 307 55KBに減りまし /layouts/header4.html /layouts/header5.html 499 371 /parts/tables.html /parts/text_and_images.html 682 1,745 /layouts/header6.html 377 /parts/text_formats.html 1,803 た。 /layouts/header7.html 367 /parts/topic_path.html 210 177,235 55,354 http://github.com/akm/oktopartial_multiflex3 に全変更が記録されています。
  • 20. Q. Railsのレイアウトは? A. 簡単に使えちゃいます。 app/views/layouts/application.html.erbを使う場合 /public/page3.html <html> <head> <script type="text/javascript" src="javascripts/jquery.js"></script> <script type="text/javascript" src="javascripts/oktopartial.js"></script> </head> <body> <div class="oktopartial_layout"> <div class="oktopartial_url">/layouts/application.html</div> (ページ固有の部分) 静的ファイルと同じ書き方でOK </div> </body> * config/routes.rb に 以下の記述を追加してください。 </html> map.connect "/layouts/:action", :controller => "oktopartial/layouts"
  • 21. Railsのビューへの移行 静的なHTMLで作成した部品を、ビューへ移行す るためには 1. 対応するコントローラを作成 2. .htmlを.html.erbに変えてapp/views/xxxに 移動 後は必要に応じて<% %> とか <%= %>を入れて ください。 controllerでrenderするときに:layout=>falseに してください。
  • 22. 試してみてください インストールはたった3つのコマンド ruby script/plugin install git://github.com/aaronchi/jrails.git ruby script/plugin install git://github.com/akm/oktopartial.git rake oktopartial:setup