xhtml では DOCTYPE宣言にシステム識別子の指定が必須です

2011年2月10日 16:49 xhtml では DOCTYPE宣言にシステム識別子の指定が必須です

先日(というかかなり前)、Movable Type で作ったサイトのテンプレートをクライアントさんが自分で修正したら、IEでレイアウトが崩れてしまった、という問合せがきたのでソースを見てみたら、僕が書いた xhtml のソースでは DOCTYPE宣言を、

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

としていたところが、何故か、

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">

になっていたのが原因だった、ということがありました。

xhtml の DOCTYPE宣言は、

<!DOCTYPE html PUBLIC "公開識別子" "システム識別子">

という形式になっていて、公開識別子とシステム識別子の両方の記述が必須になっています。

xhtml ではなく、HTML4 ではシステム識別子を省略して、公開識別子のみの記述で、

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

のような感じでもOKですが。

多分、クライアントさんが何らかの html編集ソフトを利用したら、ソフト側で勝手に DOCTYPE宣言を自動で修正してシステム識別子を省略しちゃったんじゃないかなぁ、と想像してるんですが、もしそうなら迷惑なソフトですね。

というわけで、 xhtml1.x でのDOCTYPE宣言は、大体以下のような感じになります。

xhtml1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

xhtml1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

xhtml1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

xhtml1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

え? 「HTML5は?」って? ggrks

<!DOCTYPE html>

だけでいいみたいよ。

関連するブログ記事
カテゴリー
xhtml/html
タグ
DOCTYPE | HTML5 | xhtml

コメント(9)

 

Movable Type に Twitter の「つぶやく」リンクを設置する方法

Movable Type で各ブログ記事にTwitterへの「つぶやく」リンクを設置する方法の解説です。

Twitter への「つぶやく」リンクのリンク先は、

http://twitter.com/home?status=ここにツイート本文

と指定すればOKなので、ここに記事タイトルとパーマリンクを入れれば良いわけです。

<a href="http://twitter.com/home?status=<$MTEntryTitle encode_url="1"$>%20<$MTEntryPermalink encode_url="1"$>" target="_blank">Twitterでつぶやく</a>

MTEntryTitle と MTEntryPermalink の各タグに「encode_url="1"」をセットしてるのがポイントと言えばポイントでしょうか。
これを指定しておけば、MT側でテキストを URLエンコードしてくれます。

リンクをテキストだけじゃなくて Twitter のアイコンも表示したい場合は、こちらに Twitter 公式のアイコン集があるので、このあたりを利用すると良いかもしれません。

関連するブログ記事
カテゴリー
Movable Type 4 | Twitter | xhtml/html
タグ
Movable Type | MTEntryPermalink | MTEntryTitle | Twitter | xhtml

コメント(14)

 

自作のフォームに TinyMCE を導入して WYSIWYG エディタにする方法

以前、MT4 のお勧め WYSIWYG エディタ TinyMCE-MTPluginというエントリでも紹介した TinyMCE ですが、元々は WYSIWYG(なんかボタンが沢山あってワープロ感覚でHTMLを編集できるやつ)エディタ用の汎用スクリプトなので、Movable Type 等の CMS だけでなく、当然自作のフォームにも導入することができます。

というわけで、今回は自作のフォームに TinyMCE を導入して、WYSIWYG エディタにする方法の解説です。

TinyMCE のソースをダウンロードする

TinyMCEのサイトで、本体のソースをダウンロードしましょう。

ダウンロードページから、最新の Main package をダウンロードすれば良いと思います。

圧縮ファイルを解答すると、「examples」「jscripts」というディレクトリが出てきます。
これをまとめて、WYSIWYG のフォームを設置したいところへアップロード。

フォームページを用意する

texrarea 要素のあるフォームhtml を用意します。
その html 内に、TinyMCE を呼び出す JavaScript を記述してください。

以下、サンプルソースです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-script-type" content="text/javascript;charset=UTF-8" />
<title>WYSIWYGエディタ</title>
<!-- 下記の行の src 属性は、TinyMCE をアップしたディレクトリを指定 -->
<script language="javascript" type="text/javascript" src="./jscripts/tiny_mce/tiny_mce.js"></script> 
<script language="javascript" type="text/javascript">
tinyMCE.init({
	mode : "textareas",
	theme : "advanced",
	plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",

	theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
	theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
	theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
	theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,

	// WYSIWYGエディタに適用する CSSファイルを指定する
	content_css : "styles.css",
});
</script>


</head>

<body>

<form method="post" action="wysiwyg.cgi">
  <!-- 以下のテキストエリアが WYSIWYG になる -->
  <textarea name="textbody" cols="100" rows="15"></textarea><br />
  <input type="submit" value="投稿" />
</form>

</body>
</html>

これで、以下のような WYSIWYG エディタが表示されるはずです。

01.JPG
関連するブログ記事
カテゴリー
JavaScript | xhtml/html
タグ
form要素 | JavaScript | textarea要素 | TinyMCE | WYSIWYG | xhtml

コメント(8)

 

新規に Webサイトを制作する際の xhtml テンプレート

テンプレートというほどのものでは全くないですが......。

新規にサイトを制作する際、いつも過去に作ったサイトのソースから、head要素の中身とかをコピペしてくるんですが、外出先とかだとすぐに過去に作ったサイトを出せなかったりして面倒なので、ここにメモっておきます。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-style-type" content="text/css;charset=utf-8" />
<meta http-equiv="content-script-type" content="text/javascript;charset=utf-8" />
<meta name="description" content="■■■ここに概要■■■" />
<meta name="keyword" content="■■■ここにキーワード■■■" />
<meta name="author" content="Tatsuya Abe" />
<link rel="stylesheet" href="styles.css" type="text/css" />
<link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="rsd.xml" />
<title>■■■ここにタイトル■■■</title>
</head>

<body>

<div id="container">



</div>
</body>
関連するブログ記事
カテゴリー
xhtml/html
タグ
head要素 | link要素 | meta要素 | xhtml

コメント(5)