トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/103

ページの作成や編集にはユーザ登録が必要です。

Wikiページを印刷モード風に表示するプラグイン

  • 投稿者: gyo
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 提案
  • 日時: 2004年03月09日 23時47分32秒

 内容

  Wikiページを印刷モード風に表示するprintmodeプラグイン

サイドメニューが常に表示されていると、Wikiページを印刷すればする程、なんだかヤなカンジに思えてきませんか?俺はキました。会社でマニュアルとかを作ったので素敵に印刷したいのに、Menu を非表示にする手段がファイルのリネームしかないので、何とか取っ払えないかと考えて作ってみました。

FreeStyleWiki が勝手(失礼)につけるヘッダメニューとフッタは強制的に排除されることになっていて、これの表示 ON/OFF は今のところできません。超遅いんですが、動作例としてうちのサイトの一番上のメニューから、「印刷モード」をクリックしてみてください。まー、だいたいそんなカンジになっとります。ページタイトルが元の画面に戻るためのリンクになっています。

で、コメントのリンク先にあるように、印刷のとき常にメニュー等の出力がなくてもいいなら、CSS 設定さえしてしまえばこのプラグインは全く不要です。あくまでも付加機能という位置づけですしね。

  • 3.5.2 〜 3.5.5 以降で動作確認を取っています。今のところ 3.5.2 以降で動かないバージョンはありませんでした。それ以前のものについては動くかわかりません。
  • これ使うとヘッドラインにアンカーが出力されないというバグや、FSWikiのバージョンによっては正常動作しないかもしれないAPIの使用があったので、対処しました。(2004-06-02)
  • 印刷モードではパート編集を無視して、設定に関係なく「編集」リンクが表示されないようにしました。(2004-06-04)
  • パート編集と似たような処理で、設定に関わらず WikiName を無効にして表示させるようにしました。(2004-06-08)
  • 印刷時に改ページさせるためのタグを出力する ff というパラグラフプラグインを追加しました。(2004-06-18)
  • 印刷モード という印刷モード表示へのリンクを出力する printmode インラインプラグインを追加しました。(2004-06-18)
  • よく見たら 2004-05-12 以降の修正が適切でなかったので、全面的に見直してみました。(2004-06-18)
  • 別ページの印刷モード表示用リンクを生成する pmlink インラインプラグインを追加しました。それと、キャッシュを使用していると正しく動作しなそうな予感がしたので、キャッシュ機能は考慮しないように修正しました。(2004-08-25)
  • PrintmodeLink.pm のタイプミスとコメントの修正をしました。差し替えて使ってください。(2004-11-30)
  • あきさんのご指摘により、PrintmodeLink.pm でFarm のチェック漏れを修正をしました。たびたびすいませんが、差し替えて使ってください。(2004-12-03)
  • 印刷モードではパートリンクを無視して、設定に関係なく「TOP ↑ ↓」リンクが表示されないようにしました。(2006-05-26)

えー、色々添付されてますが、printmode_20060526.zip(764) をダウンロードしてくださいね。

 カスタマイズ

PrintmodeHandler.pm の 20〜24 行目をいぢることで、Header や Footer を作成している場合にこれらを印刷モードの表示に含めるかどうか、パート編集や WikiName を強制的に無効にするかどうかとった若干のカスタマイズが可能です。デフォルトは Header と Footer は出力し、パート編集とパートリンクと WikiName は無効となるように設定しています。

## このプラグインのみの動作設定
$self->{headerflg} = 1;	## [Header]を出力しないなら「0」にする
$self->{footerflg} = 1;	## [Footer]を出力しないなら「0」にする
$self->{parteditflg} = 0;	## パート編集機能を有効化するら「1」にする
$self->{partlinkflg} = 0;	## パートリンク機能を有効化するなら「1」にする
$self->{wikinameflg} = 0;	## WikiName機能を有効化するら「1」にする

メニューの非表示

printmode を作ったので、ページ中の好きなところに印刷モードリンクを入れることができるようになりました。このおかげで今までは一番上の右側にあるメニューを表示させていましたが、メニューを無効にしてしまってもよくなりました。デフォルトでは有効になっています。

Install.pm の 12, 13 行目をコメントアウト(先頭に「#」を書く)するとメニューへの表示を無効化できまする。

(使用前)
	$wiki->add_menu("印刷モード", "", 100);
	$wiki->add_hook("show",         "plugin::printmode::PrintmodeHandler");
(使用後)
#	$wiki->add_menu("印刷モード", "", 100);
#	$wiki->add_hook("show",         "plugin::printmode::PrintmodeHandler");

  使い方

上部の「印刷モード」メニュー以外のプラグインの動作例です。動作例はうちのサイトのこのプラグインの解説ページを参照してみてください。

printmode

{{printmode [リンク文字列]}}

そのまま使うと上部メニューと同じようなリンクになります。パラメータを渡すと、その文字がそのまんまリンクの文字列になります。インラインプラグインなので、文章に混ぜて使えます。

pmlink

指定した別の Wiki ページを印刷モードで表示させるリンクをを出力します。メニューなどを表示したくないページへのリンクが生成できるので、ウマいこと使えば、メニューバーのあるなしを考慮した画面遷移をそれなりにコントロールできるんじゃないでしょーか?

{{pmlink ページ名}}
{{pmlink 別名|ページ名}}

ページ名は省略できません。FSWiki の文法で別名でもリンクを作成できます。Farm にも対応していると思います。存在しないページ名を指定した場合の動作とかは FSWiki と同様です。

ff

{{ff}}

FormFeed で ff。オプションは取りません。印刷の時に改ページさせるための、IE4 以上と最近の Mozilla 系で有効だと思われるスタイル文を埋め込みます。でも表示上の影響を与えないし、見えないので存在感が全くないんですけどね (^_^;)印刷プレビューでみると、ちゃんと改ページが効いてるのが確認できると思われます。

印刷することにまで考慮したページを作成するときに使うと、ちょっと素敵です。

sunoko さんのコメントをもとに、sunoko さんのページを参考にして作りました。ご助言頂きありがとうございます。

 コメント

  • HTMLをそのまま印刷する場合であればスタイルシートで制御するという方法もありますね。 - たけぞう (2004年03月10日 10時25分59秒)
  • 知りませんでした。ガクッ。。。  ま、FSWikiの構成とかプラグイン作成のいい勉強にはなりましたが - gyo (2004年03月10日 15時30分17秒)
  • 3.5.2 でも動く修正版は printmode-20030312.zip(613) です。よろしくどーぞ - gyo (2004年03月12日 00時47分07秒)
  • 今年は2004年なのに。。。 今間違いに気付いた ^^; - gyo (2004年03月16日 11時02分38秒)
  • FSWiki3.5.4 でのトップページ名自由化に対応させました。printmode-20040512.zip(633) です。3.5.4 でトップーページ名を変更するつもりがある方はアップデートしてください。これから試してみようという方は FSWiki3.5.2 以降であれば最新のものをダウンロードしてくださいね。 - gyo (2004年05月12日 20時50分18秒)
  • 重宝させて頂いてます。さて、見出しに neme 属性がつかないようですが、仕様ですか? 印刷用プラグインなので必要ないとは思うのですが、Farmを使用せずにメニュー等を非表示にする場合にも、このprintmodeは便利と感じます。(直接urlリンクさせる) ので、出来ればname属性をつけていただけるとありがたいのですが。outline で目次を表示させてもちょっと悲しいもので(^^;) - sunoko (2004年06月02日 10時18分01秒)
  • wiki.cgi からパクるときに処理が漏れたんだと思います。他にも端折った大事な処理があるかもしれないので調べてみますね - gyo (2004年06月02日 13時07分32秒)
  • 直せたのでアップデートしました。修正版は printmode_20040602.zip(588) です。添付ファイル沢山あるけど、新しい日付のを利用してくださいね。 - gyo (2004年06月02日 20時25分39秒)
  • パート編集が有効でもリンクを表示しないようにしました。printmode_20040604.zip(627)です。 - gyo (2004年06月04日 17時23分23秒)
  • 確認しました。とても便利です。ありがとうございました。 - sunoko (2004年06月08日 08時50分00秒)
  • WikiName の設定が有効でも、無効化して表示させるようにしました。printmode_20040608.zip(603) です。 - gyo (2004年06月08日 22時32分51秒)
  • 印刷には邪魔だという判断でパート編集機能と WikiName 機能を無効化してみました。これで CSS 設定 にはない特色が出たかな - gyo (2004年06月08日 22時44分58秒)
  • 改ページとリンク出力のプラグインを追加しました。機能的にはこんなとこでしょう。printmode_20040618.zip(621) です。 - gyo (2004年06月19日 01時17分57秒)
  • 別ページの印刷モード表示用リンクを生成する pmlink インラインプラグインを追加しました。それと、キャッシュを正しく扱えないので、キャッシュ機能は考慮しないように修正しました。printmode_20040825.zip(633) です。 - gyo (2004年08月25日 02時48分18秒)
  • PrintmodeLink.pm にバグがありました。すいませんが euc 対応エディタで 73 行目を書き換えてください。違いわかると思いますが、「=」の直前に「.」が抜けてるんです。 - gyo (2004年11月27日 03時55分58秒)
旧:		$html = "<a href=\"" . $wiki->config("script_name");
新:		$html .= "<a href=\"" . $wiki->config("script_name");
  • 修正できない人がいるかもと思ったので、直した PrintmodeLink.pm(682) をアップしときます。差し替えて使ってください。 - gyo (2004年11月30日 17時33分42秒)
  • ソースで、ちょっと気になる箇所が有ります。PrintmodeLink.pmの66行目のif文ですが、リンク先がWikiFarmのページだった場合に備え、Farm名を付加して存在チェックをしてやるべきではないでしょうか? - あき (2004年12月03日 21時33分22秒)
  • そうですね。深く考えたんじゃなくて、どこかからパクッただけなんで (^_^;) Farm かチェックする直前の52行目あたりで $pagename を別変数に保存しといて、66行目だったとこで $wiki->page_exists() にこの変数を渡せばよさそうですね。ソース更新しとくので、現時点でダウンロードされてる9名の方、申し訳ないんですがさらに差し替えてください。そのうちまた見直してリリースします。 - gyo (2004年12月03日 23時00分39秒)
  • すみません。最新ファイルはどれでしょうか? - nyama (2004年12月06日 08時27分56秒)
  • 同じ名前でアップしました。PrintmodeLink.pm(682) が最新です。printmode_20040825.zip(633) に入っているやつを上書きしてください。判りにくくてすいません。 - gyo (2004年12月06日 13時02分06秒)
  • さっそくのご対応ありがとうございます。 - nyama (2004年12月06日 15時38分27秒)
  • 1つにまとめるの忘れて長いこと放置してました。使ってる人がいたらすいませんでした。パートリンクを出さないようにしたのでアップデートしておきます。printmode_20060526.zip(764) です。 - gyo (2006年05月26日 16時28分46秒)
  • 純粋に印刷用画面を用意したいだけなら、このプラグインじゃなく、こちらのサイトスタイルプラグインスタイルシートで対応することをお勧めします。 - gyo (2006年05月26日 16時43分23秒)
お名前: コメント: