Background: #fff\nForeground: #000\nPrimaryPale: #8cf\nPrimaryLight: #18f\nPrimaryMid: #04b\nPrimaryDark: #014\nSecondaryPale: #ffc\nSecondaryLight: #fe8\nSecondaryMid: #db4\nSecondaryDark: #841\nTertiaryPale: #eee\nTertiaryLight: #ccc\nTertiaryMid: #999\nTertiaryDark: #666\nError: #f88\n
/*強制的にオプションを設定*/\nvar options =config.options;\noptions.chkAnimate = false;\noptions.chkAutoSave = true;\noptions.chkHttpReadOnly = true;\n\n/*日本語化*/\nvar macros =config.macros;\n\nmacros.search.label="GO";\nmacros.closeAll.label="全てを閉じる";\nmacros.permaview.label="リンクURL";\nmacros.newTiddler.label="新規作成";\nmacros.newJournal.label="新規作成(日付)";\nmacros.saveChanges.label="上書き保存";
chkSaveBackups=false;\n chkGenerateAnRssFeed=true;\n chkAutoSave=true;\ntxtMoreTab=Shadowed;\ntxtUserName=YourName;\nchkSliderOptionsPanel=false;\ntxtMainTab=Timeline
はじめに News
!!はじめに\n サイトのタイトルとURLアドレスをコピーしてTiddlyWikiのリンクを作る作業を簡単にしたいと思いませんか。Firefoxの拡張のひとつであるCopy URL+ はサイトのアドレスとURLをクリップボードにコピーします。今回、このCopy URL+ を簡単にカスタマイズしてTiddlyWikiのリンクをクリップボードにコピーするようにしてました。\n\n!!カスタマイズ内容\n Copy URL+のセットアップが完了しているものとして説明します。Copy URL+のカスタマイズはFirefoxのuser.jsファイルに記述することで可能です。\n\n{{{\nuser_pref('copyurlplus.menus.1.label','Create TiddlyWikiLink');\nuser_pref('copyurlplus.menus.1.copy','[[%TITLE%|%URL%]]');\n}}}\n\n[[Firefox Help: 設定ファイルの編集|http://www.mozilla-japan.org/support/firefox/edit#user]] - user.jsファイルの説明\n\n!!リンク\n Copy URL+の詳しいカスタマイズ方法は以下のサイトを参考にして下さい。\n\n*[[mozdev.org - copyurlplus: index|http://copyurlplus.mozdev.org/index.html]] - Copy URL+の配布サイト\n*[[plant4 - Firefox拡張copyurlplusのメモ|http://www.plant4.co.uk/?itemid=80]] - Copy URL+ のカスタマイズ方法\n*[[hxxk.jp - Copy URL+ をカスタマイズ|http://hxxk.jp/2004/10/03/0547]] - Copy URL+ のカスタマイズ方法\n\n\n
!!はじめに\n この記事はFirefox Portable 2.0を上書きインストールして日本語化する方法です。日本語版のFirefoxを上書きすることにより,より新しい日本語のFirfoxをUSBで利用できるようになるためお勧めの方法です。ただしプログラムが圧縮されていないためサイズがFirefox Portableよりも大きくなります。圧縮方法は別途記事にしますのでお待ち下さい。\n\n!!Firefox Portable の動作原理\n Firefoxは起動パラメータに -p プロファイルフォルダ名を与えると指定したプロファイルを読み込んで起動します。基本的にはFirefox Portable はこの起動パラメータを与えています。\n{{{\nfirefox.exe -p プロファイルフォルダ名\n}}}\n\n※詳しく知りたい方はビルド前のプログラムのソースFirefoxPortable.nsiがFirefox Portableの中に入っていますのでそちらを参照されるとよいかと思います。\n\n!!作業内容\n  Firefox Portable2.0を解凍した後に日本語版のFirefox 2.0をFirefox Portable2.0を解凍したフォルダ({{{FirefoxPortable\sApp\sfirefox\s}}})に上書きインストールする作業です。詳しい手順は以下の通りです。\n\n!!手順\n1.Firefox Portable と,Firefoxをダウンロードする。\n\n入手先:\n[[Firefox Portable2.0|http://portableapps.com/apps/internet/firefox_portable]]\n[[Mozilla Japan - 次世代ブラウザ Firefox とメールクライアント Thunderbird の公式サイト|http://www.mozilla-japan.org/]]\n\n\n[img[./fig/061122fig01.gif]]\n図1 ダウンロード後のFirefox Portable とFirefoxファイル\n\n2.Firefox Portableをクリックして実行し解凍する。"install"ボタンを押すと解凍がスタートします。\n[img[./fig/061122fig02.gif]]\n図2 "install"画面\n\n3."FirefoxPortable"のフォルダが作成されます。\n[img[./fig/061122fig03.gif]]\n図3 "FirefoxPortable"のフォルダ\n\n4.Firefoxのセットアップ画面が表示されますので,"次へ(N)”をクリックします。\n\n[img[./fig/061122fig04.jpg]]\n図4 Firefoxのセットアップ画面\n\n5.ソフトウェア使用許諾書が表示されるので,"使用許諾書に同意する(A)"をチェックし"次へ(N)”をクリックします。\n\n[img[./fig/061122fig05.jpg]]\n図5 ソフトウェア使用許諾書\n\n6.セットアップの種類を選択する画面が表示される。@@”カスタムインストール(C)"@@を選択し,"次へ(N)”をクリックします。\n\n[img[./fig/061122fig06.jpg]]\n図6セットアップの種類\n\n※この作業が重要です。この”カスタムインストール(C)”を選択しないと次の作業に進めなくハードディスクにインストールされます。必ず”カスタムインストール(C)"を選択して下さい。\n\n7.追加コンポーネントの選択が表示されますので"次へ(N)”をクリックします。\n\n[img[./fig/061122fig07.jpg]]\n図7 追加コンポーネント\n\n8.インストール先のフォルダを選択する画面が表示されます。"参照"をクリックしフォルダを{{{FirefoxPortable\sApp\sfirefox}}}を選択して下さい。なお{{{FirefoxPortable\sApp\sfirefox}}}フォルダはFirefoxPortableを解凍したドライブにあります。\n\n[img[./fig/061122fig08.jpg]]\n図8 フォルダ選択\n\n\n9.フォルダを選択するとインストールフォルダに{{{Z:\sFirefoxPortable\sApp\sfirefox\sMozilla Firefox}}}と表示されます。選択したフォルダの最後に{{{\sMozilla Firefox}}}が付加されます。\n[img[./fig/061122fig09.jpg]]\n図9 インストール先のフォルダ\n\n10.インスール先フォルダの{{{Z:\sFirefoxPortable\sApp\sfirefox\sMozilla Firefox}}}の{{{\sMozilla Firefox}}}を削除し,{{{Z:\sFirefoxPortable\sApp\sfirefox}}}にして次へ(N)”をクリックして下さい。\n[img[./fig/061122fig10.jpg]]\n図10 変更後のインストール先のフォルダ\n\n※私のインストールしたフォルダがZ:ドライブなのでZ:になっていますが,みなさんのインストールしたドライブに置き換えて下さい。\n\n11.ショートカットの作成画面が表示されますので,全てのチェックを外し次へ(N)”をクリックして下さい。\n\n[img[./fig/061122fig11.jpg]]\n図11 ショートカットの作成\n\n12.インストールが始まります。\n\n[img[./fig/061122fig12.jpg]]\n図12 インストール中画面\n\n13.今すぐMozilla Firefoxを起動(L)のチェックを外し,完了(F)をクリックします。\n\n[img[./fig/061122fig13.jpg]]\n図13 完了画面\n\n14.{{{FirefoxPortable}}}のフォルダ下のFirefoxPortableをクリックして実行します。\n\n[img[./fig/061122fig14.jpg]]\n図14 {{{FirefoxPortable}}}のフォルダの中身\n\n15.License Agreementが表示されますので,使用許諾書に同意できる場合は”I accept thr terme in the License Agreement”をチェックして"Continue"を押して下さい。(同意しないと起動できないです)\n\n[img[./fig/061122fig15.jpg]]\n図15 使用許諾書画面\n\n\n!!免責事項\n 私の知識不足などで間違った情報があるかもしれません。当ホームページのご利用による、生じた損害については当方では責任を負いかねますのでご了承ください。
!!はじめに\n Firefox Portable2.0をJapanese Language Packを用いて日本語化する方法です。Japanese Language Packは、対応バージョンを用意する必要があります。\n\n!!手順\n1.Firefox Portable 2.0を以下のサイトからダウンロードしてセットアップします。\n\n入手先:[[Firefox Portable2.0|http://portableapps.com/apps/internet/firefox_portable]]\n\n2. Locale-Switcher Extension のインストール\nLocale-Switcher Extension は言語を切り替える拡張です。以下のサイトからインストールします。\n\n入手先:[[Locale-Switcher Extension|http://benjamin.smedbergs.us/switch-locales/]]\n\n\n※ Locale-Switcher Extensionについては日本語化した後で削除可能です。\n[img[./fig/06111222fig01.gif]]\n\n3.Japanese Language Packをインストールします。以下の、場所にja.xpiがありますので、このファイルをインストールします。\n\n\n\n入手先:[[Index of /pub/mozilla.org/firefox/releases/2.0rc3/win32/xpi|http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0rc3/win32/xpi/]]\n\n[img[./fig/06111222fig02.gif]]\n\n4.Portable Firefox を終了し再起動します。\n\n5.言語切り替え\nPortable Firefox のメニューのTool→Languages→Japaneseを選択\n\n[img[./fig/06111222fig03.gif]]\n\n6.Portable Firefox を終了し再起動します。\n\n[img[./fig/06111222fig04.gif]]\n\n7.以上で日本語化が完了。\n!\n!情報源\n[[ぽっとの陽だまり研究室 : Firefox Portable 2.0 Release Candidate 3 日本語化|http://potto.exblog.jp/4533503/]]\nこの記事を再編集しました。\n\n!!リンク\n[[L10N FAQ - トラブルシューティング|http://www.mozilla-japan.org/jp/l10n/faq/help.html#how_to_change_language]]\n[[Firefox Portableの日本語化(上書版)]]\n当サイトの記事です。日本の版の Firefoxを上書きインストールする方法です。\n
/***\n|''Name:''|LegacyStrikeThroughPlugin|\n|''Description:''|Support for legacy (pre 2.1) strike through formatting|\n|''Version:''|1.0.1|\n|''Date:''|Jul 21, 2006|\n|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n\n***/\n\n//{{{\n\n// Ensure that the LegacyStrikeThrough Plugin is only installed once.\nif(!version.extensions.LegacyStrikeThroughPlugin)\n {\n version.extensions.LegacyStrikeThroughPlugin = true;\n\nconfig.formatters.push(\n{\n name: "legacyStrikeByChar",\n match: "==",\n termRegExp: /(==)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n});\n\n} // end of "install only once"\n//}}}\n
[[Home|はじめに]] | [[日本語化]] | [[TiddlyWiki|../index.html]]
<!--{{{-->\n<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>\n<meta name="keyword" content="Firefox Portable,日本語化,日本語,Firefox">\n<meta name="description" content="USBで利用可能なFirefox Portableの日本語化など">\n<!--}}}-->
2006年11月22日 \n*[[Firefox Portableの日本語化(上書版)]]を更新しました。Firefox Portable2.0に対応しています。\n*[[Firefox Copy URL+ のカスタマイズ]] を更新しました。TiddlyWiki用のリンクを生成するカスタマイズ方法です。\n*サイト立ち上げ。Firefox Portableの日本語化について最新の情報を提供するためにサイトを立ち上げました。
<!--{{{-->\n<div id="cb"><div id="cb2">\n\n<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n\n\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n\n<div id="content">\n\n\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n\n\n\n\n<em class="clear">&nbsp;</em>\n</div>\n<div id="footer">Copyright &copy; 2005-2006 ぽっと All rights reserved.</div>\n</div></div>\n\n<!--}}}-->
/***\n|Name|HoverMenuPlugin|\n|Created by|SaqImtiaz|\n|Location|http://lewcid.googlepages.com/lewcid.html#HoverMenuPlugin|\n|Version|1.11|\n|Requires|~TW2.x|\n!Description:\nProvides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.\n\n!Demo:\nObserve the hovering menu on the right edge of the screen.\n\n!Installation:\nCopy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.\nTo customize your HoverMenu, edit the HoverMenu shadow tiddler.\n\nTo customize whether the menu sticks to the right or left edge of the screen, and its start position, edit the HoverMenu configuration settings part of the code below. It's well documented, so don't be scared!\n\nThe menu has an id of hoverMenu, in case you want to style the buttons in it using css.\n\n!Notes:\nSince the default HoverMenu contains buttons for toggling the side bar and jumping to the top of the screen and to open tiddlers, the ToggleSideBarMacro, JumpMacro and the JumpToTopMacro are included in this tiddler, so you dont need to install them separately. Having them installed separately as well could lead to complications.\n\nIf you dont intend to use these three macros at all, feel free to remove those sections of code in this tiddler.\n\n!To Do:\n* rework code to allow multiple hovering menus in different positions, horizontal etc.\n* incorporate code for keyboard shortcuts that correspond to the buttons in the hovermenu\n\n!History:\n*03-08-06, ver 1.11: fixed error with button tooltips\n*27-07-06, ver 1.1 : added JumpMacro to hoverMenu\n*23-07-06\n\n!Code\n***/\n\n/***\nstart HoverMenu plugin code\n***/\n//{{{\nconfig.hoverMenu={};\n//}}}\n\n/***\nHoverMenu configuration settings\n***/\n//{{{\nconfig.hoverMenu.settings={\n align: 'right', //align menu to right or left side of screen, possible values are 'right' and 'left' \n x: 1, // horizontal distance of menu from side of screen, increase to your liking.\n y: 158 //vertical distance of menu from top of screen at start, increase or decrease to your liking\n };\n//}}}\n\n//{{{\n//continue HoverMenu plugin code\nconfig.hoverMenu.handler=function()\n{\n var theMenu = createTiddlyElement(document.getElementById("contentWrapper"), "div","hoverMenu");\n theMenu.setAttribute("refresh","content");\n theMenu.setAttribute("tiddler","HoverMenu");\n var menuContent = store.getTiddlerText("HoverMenu");\n wikify(menuContent,theMenu);\n\n var Xloc = this.settings.x;\n Yloc =this.settings.y;\n var ns = (navigator.appName.indexOf("Netscape") != -1);\n function SetMenu(id)\n {\n var GetElements=document.getElementById?document.getElementById(id):document.all?document.all[id]:document.layers[id];\n if(document.layers)GetElements.style=GetElements;\n GetElements.sP=function(x,y){this.style[config.hoverMenu.settings.align]=x +"px";this.style.top=y +"px";};\n GetElements.x = Xloc;\n GetElements.y = findScrollY();\n GetElements.y += Yloc;\n return GetElements;\n }\n window.LoCate_XY=function()\n {\n var pY = findScrollY();\n ftlObj.y += (pY + Yloc - ftlObj.y)/15;\n ftlObj.sP(ftlObj.x, ftlObj.y);\n setTimeout("LoCate_XY()", 10);\n }\n ftlObj = SetMenu("hoverMenu");\n LoCate_XY();\n};\n\nwindow.old_lewcid_hovermenu_restart = restart;\nrestart = function()\n{\n window.old_lewcid_hovermenu_restart();\n config.hoverMenu.handler();\n};\n\nsetStylesheet(\n"#hoverMenu .button, #hoverMenu .tiddlyLink {border:none; font-weight:bold; background:#18f; color:#FFF; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#fff; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\sn"+\n"#hoverMenu .button {width:100%; text-align:center}"+\n"#hoverMenu { position:absolute; width:7px;}\sn"+\n"\sn","hoverMenuStyles");\n\n\nconfig.macros.renameButton={};\nconfig.macros.renameButton.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n\n if (place.lastChild.tagName!="BR")\n {\n place.lastChild.firstChild.data = params[0];\n if (params[1]) {place.lastChild.title = params[1];}\n }\n};\n\nconfig.shadowTiddlers["HoverMenu"]="<<top>>\sn<<toggleSideBar>><<renameButton '>' >>\sn<<jump j '' top>>\sn<<saveChanges>><<renameButton s 'Save TiddlyWiki'>>\sn<<newTiddler>><<renameButton n>>\sn";\n//}}}\n//end HoverMenu plugin code\n\n//Start ToggleSideBarMacro code\n//{{{\nconfig.macros.toggleSideBar={};\n\nconfig.macros.toggleSideBar.settings={\n styleHide : "#sidebar { display: none;}\sn"+"#contentWrapper #displayArea { margin-right: 1em;}\sn"+"",\n styleShow : " ",\n arrow1: "«",\n arrow2: "»"\n};\n\nconfig.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)\n{\n var tooltip= params[1]||'toggle sidebar';\n var mode = (params[2] && params[2]=="hide")? "hide":"show";\n var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;\n var label= (params[0]&&params[0]!='.')?params[0]+" "+arrow:arrow;\n var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");\n if (mode == "hide")\n { \n (document.getElementById("sidebar")).setAttribute("toggle","hide");\n setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");\n }\n};\n\nconfig.macros.toggleSideBar.onToggleSideBar = function(){\n var sidebar = document.getElementById("sidebar");\n var settings = config.macros.toggleSideBar.settings;\n if (sidebar.getAttribute("toggle")=='hide')\n {\n setStylesheet(settings.styleShow,"ToggleSideBarStyles");\n sidebar.setAttribute("toggle","show");\n this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);\n }\n else\n { \n setStylesheet(settings.styleHide,"ToggleSideBarStyles");\n sidebar.setAttribute("toggle","hide");\n this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);\n }\n\n return false;\n}\n\nsetStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\sn","ToggleSideBarButtonStyles");\n//}}}\n//end ToggleSideBarMacro code\n\n//start JumpToTopMacro code\n//{{{\nconfig.macros.top={};\nconfig.macros.top.handler=function(place,macroName)\n{\n createTiddlyButton(place,"^","jump to top",this.onclick);\n}\nconfig.macros.top.onclick=function()\n{\n window.scrollTo(0,0);\n};\n\nconfig.commands.top =\n{\n text:" ^ ",\n tooltip:"jump to top"\n};\n\nconfig.commands.top.handler = function(event,src,title)\n{\n window.scrollTo(0,0);\n}\n//}}}\n//end JumpToStartMacro code\n\n//start JumpMacro code\n//{{{\nconfig.macros.jump= {};\nconfig.macros.jump.handler = function (place,macroName,params,wikifier,paramString,tiddler)\n{\n var label = (params[0] && params[0]!=".")? params[0]: 'jump';\n var tooltip = (params[1] && params[1]!=".")? params[1]: 'jump to an open tiddler';\n var top = (params[2] && params[2]=='top') ? true: false; \n\n var btn =createTiddlyButton(place,label,tooltip,this.onclick);\n if (top==true)\n btn.setAttribute("top","true")\n}\n\nconfig.macros.jump.onclick = function(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var top = theTarget.getAttribute("top");\n var popup = Popup.create(this);\n if(popup)\n {\n if(top=="true")\n {createTiddlyButton(createTiddlyElement(popup,"li"),'Top ↑','Top of TW',config.macros.jump.top);\n createTiddlyElement(popup,"hr");}\n \n story.forEachTiddler(function(title,element) {\n createTiddlyLink(createTiddlyElement(popup,"li"),title,true);\n });\n }\n Popup.show(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return false;\n}\n\nconfig.macros.jump.top = function()\n{\n window.scrollTo(0,0);\n}\n//}}}\n//end JumpMacro code\n\n//utility functions\n//{{{\nPopup.show = function(unused,slowly)\n{\n var curr = Popup.stack[Popup.stack.length-1];\n var rootLeft = findPosX(curr.root);\n var rootTop = findPosY(curr.root);\n var rootHeight = curr.root.offsetHeight;\n var popupLeft = rootLeft;\n var popupTop = rootTop + rootHeight;\n var popupWidth = curr.popup.offsetWidth;\n var winWidth = findWindowWidth();\n if (isChild(curr.root,'hoverMenu'))\n var x = config.hoverMenu.settings.x;\n else\n var x = 0;\n if(popupLeft + popupWidth+x > winWidth)\n popupLeft = winWidth - popupWidth -x;\n if (isChild(curr.root,'hoverMenu'))\n {curr.popup.style.right = x + "px";}\n else\n curr.popup.style.left = popupLeft + "px";\n curr.popup.style.top = popupTop + "px";\n curr.popup.style.display = "block";\n addClass(curr.root,"highlight");\n if(config.options.chkAnimate)\n anim.startAnimating(new Scroller(curr.popup,slowly));\n else\n window.scrollTo(0,ensureVisible(curr.popup));\n}\n\nwindow.isChild = function(e,parentId) {\n while (e != null) {\n var parent = document.getElementById(parentId);\n if (parent == e) return true;\n e = e.parentNode;\n }\n return false;\n};\n//}}}
/***\n\n PortableOptionsPlugin - ファイルごとに設定を記録するプラグイン\n\n!説明\n TiddlyWikiのオプション設定はCookieに保存されます。これはこれで\n 便利なのですが、以下のような問題もあります。\n ・同一PC上のローカルTiddlyWikiファイルはすべて同じ設定になってしまう\n ・TiddlyWikiファイルを持ち運んで別のPCで使用したとき設定が引き継がれない\n\n そこでローカルファイルの場合Cookieへの保存/読込関数をフックして、\n Cookieの代わりにTiddlerに設定を記録するプラグインを作成しました。\n\n このプラグインをインストールすると「Cookies」という名前の設定保存用Tiddler\n が作成され、次回の起動時からはそこから設定が読み込まれるようになります。\n オプションを変更するたびに設定保存用Tiddlerの内容が自動更新されます。\n\n 注.\n ・httpプロトコル経由で開いているファイルは通常通りCookieに設定が保存されます\n ・設定保存用Tiddlerが自動更新されても変更フラグは立ちません\n ・設定保存用Tiddlerが自動更新されても更新日は変更されません\n\n 開発元 TiddlyWiki Style Tips, - Macros and FAQ \n 開発元URL:http://www.geocities.jp/wikistyle/\n\n!Code\n***/\n/*{{{*/\nconfig.portableOptions = {\n setModifyFlag: false,\n updateModifyDate: false,\n title: "Cookies"\n};\n\njavascript:(\n function() {\n if (window.location.protocol == "file:") {\n loadOptionsCookie = loadOptionsPortableCookie;\n saveOptionCookie = saveOptionPortableCookie;\n loadOptionsCookie();\n }\n\n function loadOptionsPortableCookie()\n {\n if(safeMode)\n return;\n var cookies;\n if (!store.tiddlerExists(config.portableOptions.title)) {\n saveOptionPortableCookie();\n }\n cookies = store.getTiddlerText(config.portableOptions.title).split(";\sn");\n\n for(var c=0; c<cookies.length; c++)\n {\n var p = cookies[c].indexOf("=");\n if(p != -1)\n {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3))\n {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n }\n\n function saveOptionPortableCookie(name)\n {\n if(safeMode)\n return;\n\n var cookies;\n if (store.tiddlerExists(config.portableOptions.title))\n cookies = store.getTiddlerText(config.portableOptions.title).split(";\sn");\n else\n cookies = document.cookie.split(";");\n\n if (name) {\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n break;\n }\n for (var i=0; i<cookies.length; i++) {\n var p = cookies[i].indexOf("=");\n if(p != -1) {\n var key = cookies[i].substr(0,p).trim();\n if (key == name) {\n cookies.splice(i, 1);\n break;\n }\n }\n }\n cookies.push(c);\n }\n\n var text = cookies.join(";\sn");\n var modified = config.portableOptions.updateModifyDate ? new Date() : undefined;\n saveTiddlerWithoutNotify(config.portableOptions.title, config.portableOptions.title,\n text, config.options.txtUserName, modified);\n }\n\n function saveTiddlerWithoutNotify(title,newTitle,newBody,modifier,modified,tags)\n {\n var tiddler = store.fetchTiddler(title);\n var created;\n if(tiddler)\n {\n created = tiddler.created; // preserve created date\n store.deleteTiddler(title);\n }\n else\n {\n tiddler = new Tiddler();\n created = modified;\n }\n tiddler.set(newTitle,newBody,modifier,modified,tags,created);\n store.addTiddler(tiddler);\n if (config.portableOptions.setModifyFlag)\n store.setDirty(true);\n return tiddler;\n }\n\n }\n\n)();\n\n/*}}}*/
/***\n|Name|RSSMyTiddlersPatch|\n|Created by|potto|\n|Location| http://www.potto.client.jp/|\n|Version|0.2.0|\n|Requires||\n\n!!説明(Description)\n 自分の作成した記事のみをRSS出力するパッチです。メンテナンスの時は作成者名をadminなどにしておいて,記事を作成する場合は作成者名を基に戻して保存すると作成者名のみのRSSを出力します。\n\n!!使い方(Usage)\n 以下のコードを記事にコピーし,tagsに”systemConfig"と入力します。\n\n!!履歴(History)\n* 29 Nov 2006 version 0.1.0 test release\n* 1 Dec 2006 version 0.2.0 TiddlyWikiのプラグインとして変更  \n\n!!Code\n***/\n/*{{{*/\ngenerateRss = _generateRssPatch;\n\nfunction _generateRssPatch(){\n var s = [];\n var d = new Date();\n var u = store.getTiddlerText("SiteUrl");\n // Assemble the header\n s.push("<" + "?xml version=\s"1.0\s"?" + ">");\n s.push("<rss version=\s"2.0\s">");\n s.push("<channel>");\n s.push("<title" + ">" + wikifyPlain("SiteTitle").htmlEncode() + "</title" + ">");\n if(u)\n s.push("<link>" + u.htmlEncode() + "</link>");\n s.push("<description>" + wikifyPlain("SiteSubtitle").htmlEncode() + "</description>");\n s.push("<language>en-us</language>");\n s.push("<copyright>Copyright " + d.getFullYear() + " " + config.options.txtUserName.htmlEncode() + "</copyright>");\n s.push("<pubDate>" + d.toGMTString() + "</pubDate>");\n s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>");\n s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>");\n s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>");\n // The body\n var tiddlers = store.getTiddlers("modified","excludeLists");\n var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems;\n for (var t=tiddlers.length-1; t>=n; t--){\n if (tiddlers[t].modifier != config.options.txtUserName){continue;}\n s.push(tiddlers[t].saveToRss(u));\n }\n // And footer\n s.push("</channel>");\n s.push("</rss>");\n // Save it all\n return s.join("\sn");\n}\n/*}}}*/
/***\n\n ShowMyTiddlersPlugin - 自分の作成した記事のみ表示\n    2006.09.26 Version 1.0\n\n!説明\nプラグインを多く導入していると、更新順表示タブ等でそれらと自分の作成した記事が混ざって視認性が悪くなってしまいます。そのため、修正者名が「設定」の署名と同じ記事のみ一覧表示するプラグインを作成しました。これにより表示が変わる箇所は以下の通りです。\n\n * 更新順タブ\n * 全てタブ\n * タグタブ\n * その他-未定義タブ\n * その他-見参照タブ\n\n 開発元 TiddlyWiki Style Tips, - Macros and FAQ \n 開発元URL:http://www.geocities.jp/wikistyle/\n\n!Code\n***/\n/*{{{*/\nlookupMyTiddlers = function(list)\n{\n var newList = [];\n\n for (var i = 0; i < list.length; i++)\n if (list[i].modifier == config.options.txtUserName)\n newList.push(list[i]);\n return newList;\n\n}\n\n// 全て\nconfig.macros.list.all.handler = function(params)\n{\n var tiddlers = store.reverseLookup("tags","excludeLists",false,"title");\n tiddlers = lookupMyTiddlers(tiddlers);\n return tiddlers;\n}\n\n// その他 - 未定義\nTiddlyWiki.prototype.getMissingLinks = function(sortField)\n{\n var results = [];\n this.forEachTiddler(function (title,tiddler) {\n if (tiddler.modifier != config.options.txtUserName)\n return;\n if(tiddler.tags.find("systemConfig") == null && tiddler.tags.find("excludeMissing") == null)\n for(var n=0; n<tiddler.links.length;n++)\n {\n var link = tiddler.links[n];\n if(this.fetchTiddler(link) == null && !this.isShadowTiddler(link))\n results.pushUnique(link);\n }\n });\n results.sort();\n return results;\n}\n\n// その他 - 未参照\nTiddlyWiki.prototype.getOrphans = function()\n{\n var results = [];\n this.forEachTiddler(function (title,tiddler) {\n if (tiddler.modifier != config.options.txtUserName)\n return;\n if(this.getReferringTiddlers(title).length == 0 && !tiddler.isTagged("excludeLists"))\n results.push(title);\n });\n results.sort();\n return results;\n}\n\n// 更新順\nconfig.macros.timeline.handler = function(place,macroName,params)\n{\n var field = params[0] ? params[0] : "modified";\n var tiddlers = store.reverseLookup("tags","excludeLists",false,field);\n\n tiddlers = lookupMyTiddlers(tiddlers);\n\n var lastDay = "";\n var last = params[1] ? tiddlers.length-Math.min(tiddlers.length,parseInt(params[1])) : 0;\n for(var t=tiddlers.length-1; t>=last; t--)\n {\n var tiddler = tiddlers[t];\n var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);\n if(theDay != lastDay)\n {\n var theDateList = document.createElement("ul");\n place.appendChild(theDateList);\n createTiddlyElement(theDateList,"li",null,"listTitle",tiddler[field].formatString(this.dateFormat));\n lastDay = theDay;\n }\n var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink",null);\n theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true));\n }\n}\n\n// タグ\nconfig.macros.allTags.handler = function(place,macroName,params)\n{\n var tags = store.myGetTags();\n var theDateList = createTiddlyElement(place,"ul",null,null,null);\n if(tags.length == 0)\n createTiddlyElement(theDateList,"li",null,"listTitle",this.noTags);\n for(var t=0; t<tags.length; t++)\n {\n var theListItem =createTiddlyElement(theDateList,"li",null,null,null);\n var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),myOnClickTag);\n theTag.setAttribute("tag",tags[t][0]);\n }\n}\n\nTiddlyWiki.prototype.myGetTags = function()\n{\n var results = [];\n this.forEachTiddler(function(title,tiddler) {\n if (tiddler.modifier != config.options.txtUserName)\n return;\n for(var g=0; g<tiddler.tags.length; g++)\n {\n var tag = tiddler.tags[g];\n var f = false;\n for(var c=0; c<results.length; c++)\n if(results[c][0] == tag)\n {\n f = true;\n results[c][1]++;\n }\n if(!f)\n results.push([tag,1]);\n }\n });\n results.sort(function (a,b) {if(a[0].toLowerCase() == b[0].toLowerCase()) return(0); else return (a[0].toLowerCase() < b[0].toLowerCase()) ? -1 : +1; });\n return results;\n}\n\n// Event handler for clicking on a tiddler tag\nfunction myOnClickTag(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var popup = Popup.create(this);\n var tag = this.getAttribute("tag");\n var title = this.getAttribute("tiddler");\n if(popup && tag)\n {\n var tagged = store.getTaggedTiddlers(tag);\n tagged = lookupMyTiddlers(tagged);\n var titles = [];\n var li,r;\n for(r=0;r<tagged.length;r++)\n if(tagged[r].title != title)\n titles.push(tagged[r].title);\n var lingo = config.views.wikified.tag;\n if(titles.length > 0)\n {\n var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);\n openAll.setAttribute("tag",tag);\n createTiddlyElement(createTiddlyElement(popup,"li"),"hr");\n for(r=0; r<titles.length; r++)\n {\n createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);\n }\n }\n else\n createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));\n createTiddlyElement(createTiddlyElement(popup,"li"),"hr");\n var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);\n createTiddlyText(h,lingo.openTag.format([tag]));\n }\n Popup.show(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\n/*}}}*/
{{search{<<search>>}}}<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
<<tabs txtMainTab Timeline Timeline TabTimeline All 'All tiddlers' TabAll Tags 'All tags' TabTags More 'More lists' TabMore>>\n\n<html>\n<div class="center">\n<a href="http://www.potto.client.jp/firefox/index.xml"><img src="./img/rss20.gif" border="0" height="14" width="60"></a>\n</div>\n</html>\n
Firefox Portableを日本語で活用する。
Firefox Portableの活用
http://www.potto.client.jp/firefox/
/*{{{*/\n\n/*\n === update 27 November 2006 ===\n 1:Layout \n 2: color\n ==========================\n */\n\n/* 1: Layout */\nbody{\n margin:0;\n padding:10px 0;\n text-align:center;\n }\n\n#cb {\n width:744px;\n position:relative;\n left:5px;\n top:5px;\n\n text-align: left;\n margin:0 auto;\n}\n\n#cb2{\n position:relative;\n left:-5px;\n top:-5px;\n padding:10px;\n}\n\n\n.siteTitle{\n\n}\n.siteSubtitle {\n}\n\n\n#mainMenu {\n position: static;\n width: auto;\n left: auto;\n text-align:right;\n padding: 0em 1em 0em 1em;\n }\n\n#content {\n position:relative;\n width:100%;\n }\n\n\n#sidebar {\n /* position: absolute;*/\n position: static;\n width: 180px;\n font-size: 11px;\n margin-right:10px; \n padding:0;\n float:right;\n\n }\n\n\n#displayArea {\n position: static;\n max-width:100% !important;\n /*float:left*/;\n margin:0;\n padding:0;\n margin-right:200px; \n }\n\n*html #displayArea {\n width:500px; /* IE */\n}\n\n.viewer {\n word-break:break-all;\n padding:1em;\n font-size:1.3em;\n }\n\n\n#footer{\n width:100%;\n clear:left;\n /*clear:both;*/\n    width:100%;\n text-align: center;\n line-height:180%;\n}\n\n.clear {\n clear:both;\n display:block;\n height:1px;\n margin:0;\n padding:0;\n font-size:1px;\n line-height:1px;\n }\n\n.subtitle {\n font-size:11px;\n }\n\n.button{\n font-size:11px;\n}\n\n\n/* 2:color */\nbody{\n /*background:#FFeeFF;/**/\n background:#CCCCFF;\n }\n\n#cb {\n background:#E8ECF2;\n }\n\n#cb2{\n background:#ffffff;\n border:1px solid #ccc;\n }\n\n\n#mainMenu {\n background-color: #eee;\n color:#cccccc;\n font-size:10pt;\n }\n\n#mainMenu a {\n }\n\n#mainMenu a:hover{\n background-color:#0066FF;\n color:#ffffff;\n }\n\n\n/* 記事のタイトル */\n\n.title {\n color:#a68c53;\n font-size: 2em;\n padding-left:0.5em;\n\n margin-bottom:10px;\n margin-top:4px;\n\n\n /*\n border-top:2px solid #FF0099; \n border-bottom:2px solid #FF0099;\n */\n\n border-top:2px solid Blue; \n border-bottom:2px solid Blue;\n\n \n /*border-left:5px solid blue;*/\n}\n\n\n#footer{\n background-color: #ffffff;\n color:#000;\n padding:5px 0 5px 0;\n\n}\n\n/* 見出し */\nh1 a,h2 a,h3 a,h4 a,h5 a{\n sans-serif;font-style:italic;\n color:#a68c53;\n background-color:transparent;\n}\n\nh1,h2,h3,h4,h5{\n width:80%;\n color:#a68c53;\n border-left: 10px solid #8080ff;\n border-bottom:1px solid #cccccc; \n background-color:transparent;\n }\n\n.toolbar .button {\n color: #ccc;\n }\n\n/*センター揃え*/\n.center{\n text-align:center;\n}\n\n/*説明サンプル用*/\n.exClass{\n font-size:10pt;\n }\n\n/* 検索窓 */\n#sidebarOptions .search a{\n display:inline;\n font-size:11px;\n background-color:#0000CC;\n border-top:1px solid #ccccff;\n border-left:1px solid #ccccff;\n border-bottom:1px solid #000000;\n border-right:1px solid #000000;\n padding: 2px 5px 2x 5px;\n}\n\n#sidebarOptions .search a:hover{\n display:inline;\n font-size:11px;\n background-color:#0000CC;\n border-top:1px solid #000000;\n border-left:1px solid #000000;\n border-bottom:1px solid #ccccff;\n border-right:1px solid #ccccff;\n padding: 2px 5px 2x 5px;\n}\n\n.search .button{\n position:relative;\n left:140px;\n top:-6px;\n color:#ffffff;\n}\n.search input{\n position:relative;\n left:-30px;\n width:130px;\n}\n\n\n/*}}}*/\n
<!--{{{-->\n<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n\n<div class='title' macro='view title'></div>\n\n<div class='viewer' macro='view text wikified'></div>\n\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>\n\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n\n<div class='tagClear'></div>\n<!--}}}-->
/***\n|Name|updateMarkupBlockJaPach|\n|Created by|potto|\n|Location| http://www.potto.client.jp/|\n|Version|0.2.0|\n|Requires||\n\n!!説明(Description)\n MarkupPreHead部分にmetaタグを日本語で入力しても文字化けしないように修正するパッチです。Googleなどのロボット型検索エンジンに指示を与えるためにmeta タグを入力します。metaタグにキーワードやサイトの内容などを入力しておくことにより、検索にヒットしやすくなるなどのメリットがあります。また検索した場合に表示される内容を指示することもできます。\n\n!!使い方(Usage)\n 以下のコードを記事にコピーし,tagsに”systemConfig"と入力します。パッチが適用された状態で、MarkupPreHeadに以下の様にkeywordに検索用キーワードを、descriptionにサイトの説明を記述し保存して下さい。metaタグが挿入されます。\n\n{{{\n<meta name="keyword" content="TiddlyWiki,カスタマイズ">\n<meta name="description" content="ローカルで利用可能なTiddlyWikiのカスタマイズ方法など">\n}}}\n\n!!履歴(History)\n* 29 Nov 2006 version 0.1.0 test release\n* 1 Dec 2006 version 0.2.0 TiddlyWikiのプラグインとして変更  \n\n!!Code\n***/\n/*{{{*/\nupdateMarkupBlock = _updateMarkupBlockJaPach;\nfunction _updateMarkupBlockJaPach(s,blockName,tiddlerName)\n{\n return s.replaceChunk(\n "<!--%0-START-->".format([blockName]),\n "<!--%0-END-->".format([blockName]),\n "\sn" + convertUnicodeToUTF8(store.getRecursiveTiddlerText(tiddlerName,"")) + "\sn");\n}\n/*}}}*/\n
 このサイトはFirefox Portableを活用するためのメモです。主に日本語化などの内容を記述しています。できるだけ多くの方に利用できるように,判りやすいように勤めていますが,私のメモ程度の記事もありますのであらかじめご了承下さい。\n\n!!日本語化\n[[Firefox Portableの日本語化(上書版)]] - 2006年11月22日 更新\n[[Firefox Portable日本語化(Japanese Language Pack版)]]- 2006年11月22日 更新\n\n!!Tips\n[[Firefox Copy URL+ のカスタマイズ]] - 2006年11月22日 更新\nTiddlyWiki用のリンクを生成するカスタマイズ方法です。\n[[プログラムの圧縮方法(UPX)]]\n[[Firefox Portableの日本語化(上書版)]] で日本後化したFirefox Portableを圧縮します。\n
!!はじめに\n [[Firefox Portableの日本語化(上書版)]]で日本語化した場合はプログラムが圧縮されていません。そこでプログラムの圧縮について説明させて頂きます。なおFirefox PortableをJapanese Language Pack版で日本語化した場合はこの操作は不要です。(Firefox PortableはUPXで圧縮されているようです。)\n\n!!UPXって?\n UPXは実行ファイルを圧縮するプログラムです。実行ファイルが改変チェックなどを実装しているタイプやデータを最後の部分に追加してあるタイプでは利用できないことがあります。\n\n!!UPXの入手\nUPXは以下のサイトから入手できます。\nhttp://upx.sourceforge.net/\n\n!!手順\n1.upxを解凍する。\n\n2.Windows XPのコマンドラインモードに入ります(DOS窓) スタート→ファイル名を指定して実行(R)を選択後,名前(O)に cmd とタイプしてOKボタンを押す。\n\n3.dos窓が開く\n\n4.以下の様に解凍したドライブに移動し,upxを実行する。このときに*.exeファイルと*.dllファイルを圧縮するようにコマンドを入力する。私の場合は{{{Z:\sFirefoxPortable\sApp\sfirefox}}}がFirefox Portableのインストールフォルダになっています。皆様のドライブに置き換えて利用して下さい。\n\n!!!コマンド内容\n{{{\nC:\s>z:\nZ:\s>cd upx203w\nZ:\supx203w>upx Z:\sFirefoxPortable\sApp\sfirefox\s*.exe\nZ:\supx203w>upx Z:\sFirefoxPortable\sApp\sfirefox\s*.dll\n}}}\n\n備考:cd upx203w となっていますが,upx203wが解凍した時のフォルダです。フォルダ名が違う場合は置き換えて利用して下さい。\n\n!!最後に\n 圧縮しなくても利用できるので,うまくできない方は省いてもOKです。また他にもメニュー形式で圧縮できるものもあるかと思いますのでその場合はそちらを利用した方が簡単かもしれません。\n\n\n
!!はじめに\n簡単に日本語化する方法は2種類考えられ、拡張の"Japanese Language Pack"を入れる方法と日本語版を上書きする方法です。どちらの方法でも日本語化が可能です。\n\n!!日本語化\n[[Firefox Portableの日本語化(上書版)]] - 2006年11月22日 更新\n[[Firefox Portable日本語化(Japanese Language Pack版)]]- 2006年11月22日 更新