FSWiki/Tips/RSS
alternate を設定し、Firefox の Feed に対応させる
サイトテンプレートの<head>タグ内に下の記述を追加すると、Firefoxの RSS Feed に対応できます。
<link rel="alternate" type="application/rss+xml" title="RSS" href="?action=RSS" />
※WikiFarmにおいても対応できています。
RSSの詳細情報に多くの情報を出力する
下記修正は、ページソースを 255バイトで切ってしまうので、語尾が文字化けする可能性もあります。(メンドイので細かいところは気にしない・・・)
--- RSSMaker10.pm.org Tue Dec 07 15:47:10 2004 +++ RSSMaker10.pm Fri Apr 15 10:22:49 2005 @@ -21,10 +21,9 @@ sub get_headline { my ($page_body) = @_; - if ($page_body =~ m/\!{1,3}\s*(.+)/mo) { - return $1; - } - return undef; + $page_body =~ s/\n//g; + + return substr($page_body,0,255); } #==============================================================================
Sleipnir2 のRSS Reader 対応
以下の修正を適用し、index.rdf へのアクセスをRSS出力にする。
- index.rdf へのアクセスをRSS出力に適用させる
- 例えば、wiki.cgi/index.rdf へのアクセスを ?action=RSS に対応させます。
1 |
--- wiki.cgi.org Wed Aug 03 18:17:01 2005 +++ wiki.cgi Wed Aug 03 18:04:55 2005 @@ -12,6 +12,16 @@ } #============================================================================== +# Sleipnir2 - RSS Reader 対応 +#============================================================================== +if ( $ENV{'PATH_INFO'} =~ /\/index\.rdf$/ ) { + $ENV{'QUERY_STRING'}='action=RSS'; + $ENV{'PATH_INFO'} =~ s/\/index\.rdf//; +} + +#============================================================================== # モジュールのインクルード #============================================================================== use Cwd; |
- メニューの RSS を index.rdf へのリンクに変更する
1 |
--- Install.pm.org Wed Aug 03 18:27:12 2005 +++ Install.pm Wed Aug 03 18:27:22 2005 @@ -8,7 +8,7 @@ sub install { my $wiki = shift; - $wiki->add_menu("RSS",$wiki->config('script_name')."?action=RSS",-1); + $wiki->add_menu("RSS",$wiki->config('script_name')."/index.rdf",-1); if($wiki->config("rss_version") eq "1"){ $wiki->add_handler("RSS","plugin::rss::RSSMaker10"); |
FSWiki/Tips/Wiki書式挿入編集ボタンにコンボボックスを追加
ダウンロード
FSWikiPlugin:224 にて現時点で公開されている edit_button_rev05 に対する修正を行っています。
- edit_button_rev05+.zip(51) - 2006/07/24-00:00:00
このダウンロードファイル内の tmpl ファイルは FSWiki用のみサンプルを追加しています。
利用例
以下のページでサンプルが見れます。
コンボボックスの使用方法
editform_<フォーマット名>.tmpl の insert_button(...) が記述されている部分に追加して利用します。
例)標準もしくは独自に追加したプラグインを追加する場合
insert_select('プラグイン',[ <!--TMPL_IF NAME="PLUGIN_calendar"-->['Calendar','{{calendar カレンダー名[,テンプレート[,表示月指定]]}}','\\n',''],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_bugtrack"-->['BugTrack','{{bugtrack プロジェクト名,カテゴリ1,カテゴリ2...}}','\\n',''],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_image"-->['直リンク画像','{{image ファイル名,ページ名,alt:テキスト,size:横(%|px)x縦(%|px),float:(left|right),thumbnail:縮小画像]}}','\\n',''],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_@font"-->['フォント','{{@font text:',',color:,bgcolor:,size:,family:,bold,italic,underline,overline,line-through,blink,padding:,margin:}}','テキスト'],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_@cols"-->['段組設定','{{@cols pos:[left|right],width:(px|%),height:(px|%)\\n','}}\\n',''],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_@position"-->['表示位置設定','{{@position class:[className],width:(px|%),height:(px|%),pos:(left|center|right),left:(pt|px|em),right:(pt|px|em),float:(left|right)\\n','}}\\n',''],<!--/TMPL_IF --><!--TMPL_IF NAME="PLUGIN_@clear"-->['float属性の解除','{{@clear}}','\\n',''],<!--/TMPL_IF -->]); |
上記のように、insert_select([[...],[...],[...]]); という配列形式で複数登録していきます。また、HTML::Template のパラメータに PLUGIN_<プラグイン名> で有効なプラグインをチェックができるようにしています。
上記例はあくまでも例ですのでそのまま利用しても @ 付きのもの(LayoutAlias用)は表示されないでしょう。
FSWiki/Tips/preview under the other window
概要
編集中の画面を固定したまま、プレビュー表示のみを別ウィンドウを開いて表示します。
- 利点
- 別ウィンドウでプレビューする為、プレビュー表示が遅くても編集を続けることができる
- プレビュー後に編集中の画面位置が移動しないのでスクロールする必要もない
- 欠点
- 今はやりの Ajax ではない(笑)
- プレビュー画面を見るのにアクティブ・ウィンドウを切り替える必要がある(場合がある)。
- JavaScriptが有効でないと動作しない。
修正箇所
- plugin/core/EditPage.pm
1 |
|
- tmpl/editform.tmpl
- フォーム内の「プレビューボタン」の下あたりに以下のコードを挿入します。
1 |
<input id='preview_only' type="submit" name="preview_only" value="プレビューのみ(別窓)" style="display:none;" onClick="this.form.target='_PreviewWiki';this.form.action='<!--TMPL_VAR NAME="SCRIPT_NAME"-->';"> <script type="text/javascript" language="javascript"> <!-- document.getElementById('preview_only').style.display = ''; --> </script> |
追記:JavaScript が無効の場合はボタンが非表示になるように変更しました。
サンプル
ここで適当に実験してください。
FSWiki/Tips/wiki page update to remote-wiki
概要
編集用Wiki、公開用Wikiと分けて利用している方へ便利な利用方法の提案!
私の場合、当サーバのWikiとコンテンツがまったく同じものをローカルPCに構築しています。バックアップ目的でもあるのですが、普段は次のような使い方をしています。
- ローカルWikiにてページ作成/編集
- スペル・チェック
- 公開Wikiを別ウィンドウで開いてログイン
- 該当ページの作成/編集画面を表示
- ローカルWikiで作成/編集したページのソースを表示
- ソースのコピー(ローカルWiki)&ペースト(リモートWiki)
結構手順が多くて面倒です。この作業を軽減できる方法があります。軽減後の作業手順は以下の通り。
- ローカルWikiにてページ作成/編集
- スペル・チェック
- 再度、編集画面を表示
- 「公開サイトへ保存」ボタンをクリック
- 別ウィンドウが開いてリモートWikiページの作成/更新
- この時、ログインしないと編集できない環境では、参照権限がありません・・・と表示されるので、「ログイン」メニューよりログインする
- ログイン後、再度ローカルWikiより「公開サイトへ保存」ボタンをクリック
以上。注意点として、公開WikiとローカルWikiの差異がある場合は上書きされると言うこと。この為、公開Wikiの編集を複数人で行う場合には適用できない。管理者一人でメンテナンスする場合にのみ適用できるでしょう。
では、修正箇所を公開します。
修正箇所
基本的には、ローカルWikiの方だけ修正すればOKです。
- plugin/core/EditPage.pm
1 |
|
- tmpl/editform.tmpl
公開サイトのwiki.cgiへのURL 部分を書き換えて利用してください。
例) http://kgsoft.jf.land.to/fswiki/wiki.cgi
1 |
|
この修正後、編集画面には「公開サイトへ保存」というボタンが追加されます。
FSWiki/Tips/word-break
概要
Firefoxで表示する際、word-break:break-all;が利用できずレイアウトが崩れる事がよくある。当サイトも当初は左メニューから英単語がはみ出してしまっていた。
上記設定はIEでは有効で、ブロック要素の範囲からはみ出す部分を折り返すようになる。Forefoxでは、折り返さず、はみ出してしまう。
- Q.かっこ悪いはみ出しを抑制するにはどうすればいいか?
- A.<wbr>タグを使いましょう。
<wbr>タグとは任意の位置で改行してもいいですよという機能である。
じゃぁ、どこに入れる?
ここです↓。
修正箇所
- Wiki/HTMLParser.pm (FSWiki-3.5.10)
|
これで、"/" のところで改行されるようになります。というところで、左側のメニューなどではちゃんと改行されているでしょ?
サイト構成の利用状況等で"_"や","や"-"などでも改行されるようにすれば良いかもしれませんね。