ページ

ラベル webdesign の投稿を表示しています。 すべての投稿を表示
ラベル webdesign の投稿を表示しています。 すべての投稿を表示

2012-11-04

BloggerでjQuery・CSSを効率良く管理したい

  • JavaScriptとCSSを一箇所にまとめて効率良く編集したい。
    • SyntaxHighlighter用コードと小さなスクリプトを同じ場所に。
  • ファイルは一つにまとめたい。
    • jQueryを使ったスクリプトを書きたい。
    • AutoPagerize対応用コードも。

効率良く編集

設定画面からBloggerテンプレートデザイナーや直接テンプレートのHTMLを編集するのはめんどくさい。一箇所に埋め込んでおいて、自分のエディタから入力したいのでDropboxを使う作戦でいってみる。

埋め込み場所

BloggerでJavaScript・CSSを埋め込む方法は、テンプレートのHTML編集かレイアウトのガジェット(HTML/JavaScriptモジュール)のどちらか。
始めにサイドバーのガジェットに入れてみたが、cssの適用が遅いので却下。
「テンプレートデザイナー - アドバンス - Add CSS」はJSの埋め込み場所とバラけるので使わない方針で。
結局テンプレート側にまとめて書くようにした。head閉じタグの手前に挿入。
<!-- SyntaxHighlighter start -->
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script language='javascript' type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<style type='text/css'>
/* SyntaxHighlighter: adjustment for chrome */
.syntaxhighlighter .gutter .line {
  word-wrap: normal;
}
.syntaxhighlighter .code {
  word-wrap: normal;
}
.syntaxhighlighter .toolbar {
  display: none;
}
</style>
<!-- SyntaxHighlighter end -->

<!-- MyScripts start -->
<link href='https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css' rel='stylesheet' type='text/css'/>
<script src="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.js"></script>
<!-- MyScripts end -->


結果

Dropboxで共有しているファイルを書き換えて数秒後に反映されるのでわりと快適になった。


付録

Dropboxに置いたファイル内容も一応貼り付けておく。CSSのfont-sizeをどうするべきか揺れている。
che.js:小さなスクリプトはここに書く。
var jqscript = document.createElement('script');
jqscript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js';
jqscript.charset = 'UTF-8';
document.getElementsByTagName('head')[0].appendChild(jqscript);
var t = setInterval(function() {
  if (window.jQuery) {
    clearInterval(t);
    //ここにjQueryロード後実行したいコードを書く
    myFunc();
  }
}, 100);

function myFunc() {
  jQuery(function($) {
    // AutoPagerizeされたときに実行したいものはここに。
    var InsertNode = function(evt) {
      // SyntaxHighlighter
      SyntaxHighlighter.highlight();
    };
    $(document).bind('AutoPagerize_DOMNodeInserted AutoPagerAfterInsert', InsertNode);
    if (window.addEventListener) { 
      window.addEventListener('AutoPatchWork.DOMNodeInserted', InsertNode, false);
    }

    // 投稿画面にあるwysiwygエディタのフォントサイズ指定「小(x-small)」が
    // 小さすぎるので、動的にsmallに変更。「最小(xx-small)」も含む。
    $('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
      $(this).css('font-size', 'small');
    });
  });
}
 

che.css:テンプレートを修正したい場合に使う。
body {
  font-size: 85%;
  /*font-size: 15px;*/
}
pre {
  background-color: #F8F8F8;
  border: 1px solid #CCCCCC;
  border-radius: 3px;
  padding: 6px 10px;
  overflow: auto;
}
code {
  background-color: #F8F8F8;
  border: 1px solid #EAEAEA;
  border-radius: 3px;
  margin: 0 2px;
  padding: 0 5px;
  overflow: auto;
}
pre, code, tt {
  font-family: Consolas,"Liberation Mono",Courier,monospace;
}
blockquote {
  border-left: 5px solid #dddddd;
  color: #777777;
  padding: 0 15px;
}
::selection {
  background-color: pink;
}
::-moz-selection {
  background-color: pink;
}
h2 {
  /*font-size: 25px;*/
  font-size: 140%;
  text-transform: none;
  margin: 0;
}
h3 {
  /*font-size: 20px;*/
  font-size: 130%;
}
h3 {
  font-size: 120%;
}
h3.post-title,
h3.entry-title {
  font-size: 160%;
}
.sidebar h2 {
  font-size: 13px;
  margin-bottom: 10px;
}
.date-header span {
  font-size: 15px;
  font-weight: normal;
}

bloggerのwysiwygエディタのフォントサイズ指定に不満

投稿画面のwysiwygエディタ
フォントサイズ指定の
「最小」は style="font-size: xx-small;"
「小」は style="font-size: x-small;"
「標準」は何も付かない。
「大」は style="font-size: large;"
「最大」は style="font-size: x-large;"

小のx-smallは小さすぎるのでsmallにしてほしい。large側は普通なのでバグな気がする。

どうすればこの問題を解消できるだろうか。
  • HTML編集モードにx-smallをsmallに置換するボタンを付ける。
  • フォントサイズ指定の「小」を封印する。
  • JavaScriptでサイズ操作

追記

jQueryで動的にx-smallとxx-smallをsmallに変更するようにしてみた。多分これが一番楽。
$('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
  $(this).css('font-size', 'small');
});

埋め込み方法はこちらに書いた。
BloggerでjQuery・CSSを効率良く管理したい - cherenkov's暗中模索blog


2012-11-03

bloggerのCSSを効率良くカスタマイズする方法

デバッグ時はdropboxにcssファイルを置いて編集する。

テンプレートのHTML編集でheadの閉じタグの前にdropboxからcssを読み込むためのコードを貼る。
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>
あとで書く。

bloggerのCSSを確認・変更するために便利なページ

このページを使って選択したテンプレートのデザイン/CSSを確認する。便利なのはたぶん自分だけ。


見出し:

見出し(h2)

小見出し(h3)

準見出し(h4)

標準

---------------------

フォントシリーズ:
最小(xx-small) ABCDEFG
小(x-small) ABCDEFG
標準 ABCDEFG
大(large) ABCDEFG
最大(x-large) ABCDEFG
太字(ボールド)ABCDEFG
斜体(イタリック)ABCDEFG
下線(アンダーバー)
取り消し線

---------------------

リンクの表示確認


altテキスト
旅の思い出
動画に関するプロパティ・キャプションは無いみたい
----------------------



番号付きリスト:
  1. アンパンマン
    1. あんぱん
      1. ジャムおじさんが作る。
    2. 空を飛べる。
    3. 水に弱い。
  2. リストの入れ子はTabキー。Shift+Tab で上に戻る。
  3. リスト中の改行は Shift+Enter

箇条書き:
  • ももクロ
    • かなこぉ↑
      • 茶畑
    • ももか
      • あだ名
        • ケバブ

引用(blockquote):
梨くったら夏おわり(日村勇紀)

pre:
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>


code:
ctrl + alt +del


長文でline-height、word-break、word-wrapなどを確認:

ブラウンによるオシロスコープをはじめとして、ビデオモニター、テレビ受像器、コンピューターなどのディスプレイなど、多く用いられてきた。
また、テレビの代名詞のように扱われることもあり、たとえばテレビの番組などを指して「ブラウン管の向こうに~」といったような使われ方をすることもある。YouTubeの "Tube"もこの真空管に由来する。「ブラウン管のスター」という言葉は映画スターを指す「銀幕のスター」と対置されよう。
ブラウンが発明したのは、冷陰極管で、クルックス管に、陰極線によって光る蛍光面を付けたものであった。今日一般的なブラウン管では、電子銃を利用している。
ブラウン管式のテレビでは、スイッチを入れたらすぐ表示できるようにするため、および加熱と冷却、通電と放電の繰返しによって寿命が短くなることを防ぐため、いくらかの回路を通電しっぱなしにするため待機電力を消費した。真空管時代にはこのことをうたった「ポンパ」という商品名もある。
スイッチを入れた時に聞こえる『ブーン』という音は残留磁場を消磁する音である。動作中には非常に高い周波数の『キーン』という音が、特に高域の聴覚が敏感な子供には聞こえるが、これは水平走査の音である。
ブラウン管 - Wikipedia





2012-10-22

このブログのデザインメモ

追記


気まぐれにブログのデザインを変えた。テンプレート:シンプル(グリーンのやつ)。
基本的な流れは、以前の記事と同じ。
SyntaxHighlighterのメモ。使用するテーマによってcssを足してやる必要があった。
(chromeで表示がおかしかった)。
管理画面 - テンプレート - HTMLの編集 - 続行 で</head>前に以下のコードを挿入。
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script language="javascript" type="text/javascript">
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<style type="text/css">
/* SyntaxHighlighter: adjustment for chrome */
.syntaxhighlighter .gutter .line {
  word-wrap: normal;
}
.syntaxhighlighter .code {
  word-wrap: normal;
}
.syntaxhighlighter .toolbar {
  display: none;
}
</style>

テンプレートデザイナー - アドバンス - Add CSS
h2 {
  font-size: 13px;
}
.date-header span {
  font-size: 15px;
  font-weight: normal;
}
注意
SyntaxHighlighterでhtmlなどのタグを貼り付ける場合は、「<」を&lt;にすることが必須。
ソースコードのインデントがタブだと、1タブ = 1半角スペース に置き換えられる。
タブも半角スペースに置換しておくこと。

2012-05-27

ChromeのCSS::selectionが一部反映されない件

WinVista, Chrome 19.0.1084.52 m, Firefox 12.0。
文字列を選択した際の背景色を指定するCSSの::selectionをこのブログに適用してみたが、Chromeは文字列以外の部分の色がデフォルトのままだった。どうしたもんかいのぅ。
::selection {
    background: pink !important;
}
::-moz-selection {
    background: pink !important;
}


2012-05-05

このブログのデザインメモ

あまりカスタマイズせず、気に入ったデザインを適用する方針。
なお、以下の設定はテンプレートを変更するとリセットされてしまうので注意。

  1. Bloggerテンプレートデザイナーでぽちぽち調整していく。 
    • "テンプレートデザイナー"への行き方は、設定 - テンプレート - "カスタマイズ"
    • テンプレート:エスィリアルの水色ベースを選択。
    • 背景:"お祝い"カテゴリから緑のクローバーを選択。
    • レイアウト:サイドバーの位置が右で一列のものを選択。
    • 幅を調整:レイアウトを変更してから、"幅を調整"に移動して"デフォルトにリセット"をクリックして、ブログ全体:960px。サイドバー:310px。
    • アドバンス:
      • Background:メインの背景を#ffffffに変更。
      • 投稿タイトル:"B"ボタンをクリックしてBoldを有効化。
    • カスタムCSS: 画像の影、角丸
      .post-body img {
        box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5) !important;
        padding: 10px !important;
        border-radius: 8px;
      }
  2. ソースコードをシンタックスハイライトさせる Syntax Highlighter を組み込む準備。
    • Syntax Highlighter Scripts Generator を使うと便利。ホスティングされているファイルを読み込むコードを生成してくれる。
    • テーマと言語を気軽に選ぶ。必要になったら後から足す。
    • Generateボタンを押すと以下の様なコードが表示されるのでコピー。
      <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
      <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
      <script language="javascript" type="text/javascript">
       SyntaxHighlighter.config.bloggerMode = true;
       SyntaxHighlighter.all();
      </script>
    • テンプレートを編集する。
      • 設定 - テンプレート  -  "HTMLの編集"  - "続行"  と進むとテンプレートのソースコードが表示される。
      • </head> の前にコードを貼り付けて保存。
    • 以上でシンタックスハイライト導入完了。使い方は、HTML編集モードで、
      <pre class="brush: css;">
      コード
      なお、シンタックスハイライト部分のHTMLタグなどの<は&lt;に書き換える必要がある。
      </pre>
      
    • 参考: @minorut blog: Blogger にシンタックスハイライト JavaScript ライブラリSyntaxHighlighter を導入するには
  3. AutoPagerizeされてもシンタックスハイライトが効くようにする。ついでにjQueryを使えるようにしておく。
    • Syntax Highlighterを導入した要領で以下のコードをテンプレートの </head> 前に追加する。
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
      <script type="text/javascript">
      //<![CDATA[
      jQuery.noConflict();
      var InsertNode = function(evt) {
         SyntaxHighlighter.highlight();
      };
      jQuery(document).ready(function($){
      (function() {
        $(document).bind('AutoPagerize_DOMNodeInserted AutoPagerAfterInsert', InsertNode);
        if (window.addEventListener) { 
          window.addEventListener('AutoPatchWork.DOMNodeInserted', InsertNode, false);
        }
      })();
      });
      //]]>
      </script>
      
    • テンプレートにJavaScriptを書く場合は正しく解釈させるために //<![CDATA[ が必須。(保存後シングルクォーテーションが文字実体参照に変換されたりした。)
    • jQuery読み込み後、すぐにjQuery.noConflict() してjQueryが持つ$関数を封印して、すでに定義されている$関数との衝突を避ける(合ってるよね?)。jQuery(document).ready(function($){ のようにすれば中で $が使える。それ以外はjQuery.find( のように$ではなくjQueryを使う。
    • 無名関数(function(){で括ったのは、機能ごとのブロックにしておいたほうが後から見やすいと思ったから。
    • 参考:
  4. ページタイトルをブログ名が後ろにくるようにテンプレートを修正。「ブログ名: エントリータイトル」→「エントリータイトル - ブログ名」
        <b:if cond='data:blog.pageType == "index"'>
        <title><data:blog.title/></title>
        <b:else/>
        <title><data:blog.pageName/> - <data:blog.title/></title>
        </b:if>
        <!--<title><data:blog.pageTitle/></title>-->