Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
{{imgfloatright{[img[http://farm4.static.flickr.com/3058/2297602862_77e816f90f_t.jpg]]}}}Hi! I am Shavinder. I :
* am fascinated with computer technology
* like to dabble a bit in programming
* would like more people to take to linux distros and kick off bad habits of microsoft.
* am a bit inclined towards poetry, arts and such things
* am in profession of teaching :-)
* hope to do good stuff with this tw.
//Macro: allTagsExcept
//Author: Clint Checketts
//Version: 1.0 Sept 8, 2005
version.extensions.allTagsExcept = {major: 0, minor: 1, revision: 0, date: new Date(2005,8,15)};
config.macros.allTagsExcept = {tooltip: "Show tiddlers tagged with '%0'",noTags: "There are no tags to display"};
//usage: < < allTagsExcept systemConfig systemTiddlers > > This will show all tags but those listed (e.g. systemConfig and systemTiddlers
config.macros.allTagsExcept.handler = function(place,macroName,params)
{
var tags = store.getTags();
var theTagList = createTiddlyElement(place,"ul",null,null,null);
if(tags.length == 0)
createTiddlyElement(theTagList,"li",null,"listTitle",this.noTags);
for (var t=0; t<tags.length; t++) {
var includeTag = true;
for (var p=0;p<params.length; p++) if (tags[t][0] == params[p]) includeTag = false;
if (includeTag){
var theListItem =createTiddlyElement(theTagList,"li",null,null,null);
var theTag = createTiddlyButton(theListItem,tags[t][0] + " (" + tags[t][1] + ")",this.tooltip.format([tags[t][0]]),onClickTag);
theTag.setAttribute("tag",tags[t][0]);
}
}
}
[[Evaluation and Examination]]
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Here is a list of the color codes in the ColorPalette, and the sections of this ~TiddlyWiki that they affect. Please note that authors of other ~TiddlyWikis may have configured theirs differently in the StyleSheet. But experimenting with these will give you practice so that you can more easily reconfigure the colors of any ~TiddlyWiki.
''Background:'' This controls the color of the background or 'paper', and the text in the title and subtitle.
''Foreground:'' This controls the color of the text.
''~PrimaryPale:'' This controls the color of the Interface Options box.
''~PrimaryLight:'' This controls the color of the top of the Header gradient.
''~PrimaryMid:'' This controls the color of the text in the ~MainMenu, the color of the text for links, the color of the text in the lists of tiddlers and tags, and the color of the bottom of the Header gradient.
''~PrimaryDark:'' This controls the color of the text of the items in the top of the right hand menu and the text of the buttons on the tiddlers.
''~SecondaryPale:'' This controls the color of the background of the boxes in those tiddlers that show snippets of the ~TiddlyWiki code.
''~SecondaryLight:'' This controls the color that appears when the tiddler buttons or items in the right hand menu are highlighted.
''~SecondaryMid:'' This controls the color of the title cells in tables, that is, cells which begin with an exclamation mark (!). It also controls the color of the box that appears when changes have been saved, and the color of the tiddler buttons when they are selected.
''~SecondaryDark:'' This controls the color of the titles of the tiddlers.
''~TertiaryPale:'' This controls the color of the right hand menu that shows lists of tags and tiddlers, as well as the color of the tag button on the tiddlers.
''~TertiaryLight:'' This controls the color of the borders around the right hand menus.
''~TertiaryMid:'' This controls the color of the unselected tabs behind the list of tags and tiddlers in the bottom right hand menu.
''~TertiaryDark:'' This controls the color of the subtitle of each tiddler, that is, the author of the tiddler, the most recent date it was modified and date it was created.
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
* Go to System>Administration>Languages Support and select Punjabi from the list. Also select "enable support for complex characters". This will install the operating system level Punjabi support.
* Next check if SCIM(Smart Common Input Method) is installed. You would find that in System>Preferences>'SCIM Input Method Setup'. It would start the SCIM wizard. You dint have to do much in it. Just make sure punjabi option is selected in IMEngine>Global Setup.
* Now open your fave text editor(gedit,mousepad,leafpad or any other) and right click>Input Method>SCIM. This will switch the input method to SCIM. A small toolbar would appear lower right. From there you could make a choice out of punjabi and many other indic languages. You would also have to make a choice out of Inscript, Jhelum and Phonetic keyboard layout. Choice is yours but beginner would do well to go with the last one.
* Enjoy :-)
~TiddlyWiki is created by Jeremy Ruston | This is Shavinz Tiddlywiki | shavinderpalsingh@gmail.com
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers :
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
/***
|Name|HaloscanMacro|
|Created by|JimSpeth|
|Location|http://end.com/~speth/HaloscanMacro.html|
|Version|1.1.0|
|Requires|~TW2.x|
!Description
Comment and trackback support for TiddlyWiki (via Haloscan).
!History
* 16-Feb-06, version 1.1.0, drastic changes, now uses settings from haloscan account config
* 31-Jan-06, version 1.0.1, fixed display of counts for default tiddlers
* 30-Jan-06, version 1.0, initial release
!Examples
|!Source|!Output|h
|{{{<<haloscan comments>>}}}|<<haloscan comments>>|
|{{{<<haloscan trackbacks>>}}}|<<haloscan trackbacks>>|
!Installation
Register for a [[Haloscan|http://www.haloscan.com]] account. It's free and painless.
Install the HaloscanMacro in a new tiddler with a tag of systemConfig (save and reload to activate).
In the macro configuration code (below), change //YourName// to your Haloscan account name.
Use the macro somewhere in a tiddler (see ViewTemplate for an example).
!Settings
You can adjust various options for your account in the member configuration area of Haloscan's web site. The macro will use these settings when formatting the links.
!Code
***/
//{{{
/* change "YourName" to your Haloscan account name */
config.macros.haloscan = {account: "shavin", baseURL: "http://www.haloscan.com/load/"};
var haloscanLoaded = 0;
config.macros.haloscan.load = function ()
{
if (haloscanLoaded == 1)
return;
account = config.macros.haloscan.account;
if (!account || (account == "YourName"))
account = store.getTiddlerText("SiteTitle");
var el = document.createElement('script');
el.language = 'JavaScript';
el.type = 'text/javascript';
el.src = config.macros.haloscan.baseURL + account;
document.documentElement.childNodes[0].appendChild(el);
haloscanLoaded = 1;
}
config.macros.haloscan.load();
/* this totally clobbers document.write, i hope that's ok */
var safeWrite = function(s)
{
document.written = s;
return s;
};
document.write = safeWrite;
config.macros.haloscan.refreshDefaultTiddlers = function ()
{
var start = store.getTiddlerText("DefaultTiddlers");
if (start)
{
var titles = start.readBracketedList();
for (var t=titles.length-1; t>=0; t--)
story.refreshTiddler(titles[t], DEFAULT_VIEW_TEMPLATE, 1);
}
}
var haloscanRefreshed = 0;
config.macros.haloscan.handler = function (place, macroName, params, wikifier, paramString, tiddler)
{
if (typeof HaloScan == 'undefined')
{
if (haloscanRefreshed == 0)
{
setTimeout("config.macros.haloscan.refreshDefaultTiddlers()", 1);
haloscanRefreshed = 1;
}
return;
}
var id = story.findContainingTiddler(place).id.substr(7);
var hs_search = new RegExp('\\W','gi');
id = id.replace(hs_search,"_");
account = config.macros.haloscan.account;
if (!account || (account == "YourName"))
account = store.getTiddlerText("SiteTitle");
var haloscanError = function (msg)
{
createTiddlyError(place, config.messages.macroError.format(["HaloscanMacro"]), config.messages.macroErrorDetails.format(["HaloscanMacro", msg]));
}
if (params.length == 1)
{
if (params[0] == "comments")
{
postCount(id);
commentsLabel = document.written;
commentsPrompt = "Comments on this tiddler";
var commentsHandler = function(e) { HaloScan(id); return false; };
var commentsButton = createTiddlyButton(place, commentsLabel, commentsPrompt, commentsHandler);
}
else if (params[0] == "trackbacks")
{
postCountTB(id);
trackbacksLabel = document.written;
trackbacksPrompt = "Trackbacks for this tiddler";
var trackbacksHandler = function(e) { HaloScanTB(id); return false; };
var trackbackButton = createTiddlyButton(place, trackbacksLabel, trackbacksPrompt, trackbacksHandler);
}
else
haloscanError("unknown parameter: " + params[0]);
}
else if (params.length == 0)
haloscanError("missing parameter");
else
haloscanError("bad parameter count");
}
//}}}
{{poemtext{
I carry your heart with me,I carry it in my heart
I am never without it, anywhere I go you go,my dear;
and whatever is done by only me is your doing,my darling
i fear no fate, for you are my fate,my sweet
i want no world for beautiful you are my world,my true
and it's you are whatever a moon has always meant
and whatever a sun will always sing is you
here is the deepest secret nobody knows
here is the root of the root and the bud of the bud
and the sky of the sky of a tree called life;
which grows higher than the soul can hope or mind can hide
and this is the wonder that's keeping the stars apart
I carry your heart I carry it in my heart
}}}
{{textright{
ee cummings
}}}
Please click the link below:
<<haloscan comments >>
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
major: 1, minor: 1, revision: 0,
date: new Date("mar 17, 2007"),
source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};
if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};
bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){
url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
}
return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
[[Welcome]]
[[About Me]]
[[Reading]]
<<slider chkNotes [[Class Notes]] 'Class Notes'>>
[[Leave a comment]]
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<!--}}}-->
A New term and an interesting one at that. Next after e-learning. E-learning has not taken up much here in india. At least not in respect to traditional school curriculum. The classrooms are still using:
# __Traditional settings__: A room for 30-40 students, tables and benches, a blackboard, occassional map or chart and ubiquitous textbook and notebook.
# __Traditional methods__: Teacher follows the prescribed textbook, reads from it or gets it read by a student, the text/concept is explained, blackboard is used for textual illustration, sometimes for visual illustration like a rough diagram in science and to write out the questions for homework. The teacher also asks questions. These are mostly for recalling what has already been told. Consolidation of knowledge. Students may ''shy or vie'' depending upon the teacher/topic/question/previous conditioning/difficulty etc.
#__Traditional Objectives__: Give the student standardised knowledge content, enable him to answer questions, make sure he remembers these and be able to write these out in his notebook, prepare him for the written exams, promote him to the next class :-)
#__Traditional Paradigm__: Knowledge is very important, skills are picked up on the job, Knowledge is pre-created, it is delivered to the students through traditional media of printed letter. It is evaluated through the written word.
This type of teaching and learning is time tested, successful to a very large extent. It is cheap. It is easy to deploy and maintain. It is easy to benchmark and evaluate. It is the only way we know :-)
I am not very sure about whether what is used in schools on computers is E-Learning or just multimedia or something else. Majorly computer has been used in the classroom, rather in a special room like computer lab, for showing power point presentations. Microsoft has almost unchallengable grounding here:-(. Mostly the OS as well as the App Suite is pirated. Slides are shown and the teacher speaks out her lecture/explanation. All very good .
I understand that some modern schools provide a one-to-one computers to their students wherein also comes the Internet.
Well the internet has/does not contribute much to our curriculum as far as I know. Students are known to prepare assignments. If I am correct these are mostly prepared on computer and then printed out and submitted to the teacher. These have formatted text and images. The point to note about these//'assignments// is that they follow the ''textbook paradigm''.
''What is lacking in our brand of E-Learning?''
Usage of computer:
#for ''creating''.''contructing'',''exploring'' and ''processing'' knowledge
#for developing skills
#for ''sharing'' over a network
#for breaking tha ''paradigm'' of traditional teaching-learning
#for supporting, inspiring and enhancing creativity of all sorts.
#for bridging the time space gap between school and home. And at school between the special class and the ordinary classess.
''Why?''
#__Expensive Computers__:I think mainly because computers uptil now have been quite expensive and a new learning like this cannot succeed until all the students have computer at homes as well as schools.
#__Expensive Bandwidth__:Internet is still not cheap, though its much cheaper than before. But a 58 kbps connection is easily had no doubt.
#__Lack of network__: For a decent shift in the curriculum towards computers the schools and homes need to be connected over a network. The resources at the school server need to be available at all times on this network. The teachers also need the network at homes. Such a network would allow the teaching process to take roots //outside// the four walls of the classroom. The network has to be thought of a place where teaching occurs just as it does within the four walls of the classroom.
#__lack of Software Platform__: There has not evolved any platform for such a distributed learning. I think rather than a Server-Client architecture it would be better to use self contained, synchronisable tools like tiddlywiki. Read up:http://lewcid.org/2007/11/13/tiddlywiki-and-distance-learning/
#__Lack of innovativeness__: I attribute this to the strength of the traditional model.
----
to be completed
*[[PicSet 1]]
*[[PicSet 2]]
{{imgfloatright{[img[http://farm3.static.flickr.com/2376/2328716587_51520f55fb_t.jpg]]}}}
{{poemtitle{Rubai}}}
{{poemtext{
Think, in this batter'd caravanserai
Whose doorways are alternate night and day
How Sultan after Sultan with his Pomp
Abode his hour or two and went his way.
}}}
{{poemtitle{Rubai}}}
{{poemtext{
I sometimes think that never blows so red
The rose as where some buried Caesar bled
That every Hyacinth the Garden wears
Dropt in its lap from some once lovely head.
}}}
{{poemtitle{Rubai}}}
{{poemtext{
Oh, come with old Khayyam and leave the wise
To talk; one thing is certain, that life flies;
One thing is certain, and the rest is lies;
The flower that once has blown for ever dies.
}}}
{{poemtitle{Rubai}}}
{{poemtext{
Myself when young did eagerly frequent
Doctor and Saint, and heard great Argument
About it and about: but evermore
Came out by the same Door as in I went.
}}}
{{poemtitle{Rubai}}}
{{poemtext{
With them the seed of wisdom did I sow,
And with my own hand labour'd it to grow:
And this was all the harvest that I reap'd
I came like water, and like wind I go.
}}}
<<tiddler TspotOptions>>These InterfaceOptions for customising TiddlyWiki are saved in your browser
Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)
<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations
----
Also see AdvancedOptions
<div id='theHeader' >
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='theSearchBar' refresh='content' tiddler='theSearchBar'></div>
</div>
<div id="leftColumn">
<div id='theMainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='theSideBarTabs' refresh='content' tiddler='customTabs'></div>
<div id="theAdminID" refresh='content' tiddler='theAdminWrapper'></div>
</div>
<div id="rightColumn">
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<div id="theFooter"><span id="theFooterText" refresh='content' tiddler='Footer'></span></div>
<!--{{{-->
<!--
***********the original style sheet commented out************************
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
-->
<!--}}}-->
Underway these days:
* ''The Witch of Portobello'' by ''Paulo Coelho''- The style of the book is like a series of monologues in which characters narrate their experiences about the heroin Athena. Each chapter is 'told' by a different person(from Athena's life ) and builds upon the character of Athena as well as moves the narration forward. Nice reading. A bit spiritual here and there.
* ''The Unfolding of Language'' by ''Guy Deutscher''- Whatabook! Sort of revelatory for a begninner. Completely adds a new perspective about language change/evolution. All of us have read that language changes with time. But we have little idea as to the 'how' of it. Highly recommendable.
Completed recently:
*''Kukeyaan Di Vitheya'' by ''Ganda Singh''- A well researched and authoritative source for the oft misunderstood phase of Sikh history. Ganda Singh as a historian is excellent. But the book is so heavily laden with facts and dates that one misses the charm one might be looking for in a period book.
<<haloscan comments>>
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<tiddler TspotSidebar>><<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>>
http://shavin.tiddlyspot.com
[img[http://upload.wikimedia.org/wikipedia/en/thumb/a/a2/Shakespeare.jpg/468px-Shakespeare.jpg]]
{{poemtitle{
Sonnet}}}
{{poemtext{
Shall I compare thee to a summer's day?
Thou art more lovely and more temperate.
Rough winds do shake the darling buds of May,
And summer's lease hath all too short a date.
Sometime too hot the eye of heaven shines,
And often is his gold complexion dimm'd;
And every fair from fair sometime declines,
By chance or nature's changing course untrimm'd;
But thy eternal summer shall not fade
Nor lose possession of that fair thou ow'st;
Nor shall Death brag thou wander'st in his shade,
When in eternal lines to time thou grow'st:
So long as men can breathe or eyes can see,
So long lives this, and this gives life to thee.
}}}
body {
font-family: Arial, Helvetica, sans-serif;
/* font-size: medium;*/
background: #505050 none repeat scroll 0%;
}
#contentWrapper {
margin: 0 auto;
width: 758px;
border: none;
background: url(http://farm3.static.flickr.com/2323/2283290087_b45d0a90b7_o.png) repeat-y 0px 0px;;
}
#theHeader{
position: relative;
height: 130px;
padding: 0px ;
width:758px;
border: NONE;
margin: 0px;
background: url(http://farm3.static.flickr.com/2193/2283285689_a81e03c4a1_o.png);
border-bottom: NONE;
}
.siteTitle{
visibility: hidden;
}
#theSearchBar{
display: block;
position: absolute;
bottom: 23px;
right: 25px;
}
#theSearchBar .button{
border: NONE;
color: #67E067;
}
#theSearchBar .button:hover{
background: transparent;
color: #71FC71;
}
#leftColumn {
float: left;
color: #112211;
border-left: none;
background: none; /*#A2E492; #DAFFAD; */
margin: 0px 2px 0px 14px;
padding: 4px;
width: 200px;
display: inline;
}
#theSidebarOptions .button{
display: block;
border: none;
}
#theMainMenu a{
color: #00cc22;
display: block;
}
#theMainMenu a:hover{
color: #007722;
background: none;
}
.tabContents{
background: #E2FFE2; /*#A8FF92; #CCFEBF;*/
border: 1px solid #88FF88; /*#AFFFAF;*/
}
.tabSelected{
background: #E2FFE2; /*#A8FF92;*/
border-top: 1px solid #88FF88;
border-left: 1px solid #88FF88;
border-bottom: 0px;
border-right: 1px solid #88FF88;
color: #547700;
}
.tabUnselected{
background: none;
border-top: 1px solid #88FF88;
border-left: 1px solid #88FF88;
border-bottom: 0px;
border-right: 1px solid #88FF88;
color: #C47C00;
}
#theAdminID{
margin-top: 2px;
}
#theAdminID .button{
color: white;
}
#rightColumn {
float: right;
color: #333;
border: none;
background-color: transparent;
margin: 0px 0px 0px 0px;
width: 524px;
padding: 4px;
display: inline;
}
#theFooter {
width: 758px;
height: 58px;
clear: both;
border: None;
background:url(http://farm4.static.flickr.com/3221/2283290089_03273141dc_o.png) no-repeat top left;
margin: 0px 0px 0px 0px;
padding: 0px;
text-align: center;
}
#theFooter .button{
border:NONE;
color: white;
}
#theFooterText{
color: #00FF00;
text-align: center;
vertical-align:middle;
width:758px;
height:50px;
}
#tiddlerDisplay .title{
border-top: 1px solid #24B200;
border-left: 1px solid #24B200;
border-right: 1px solid #24B200;
margin-top: 10px;
background: #CCFEBF; /*#E4EBB7;*/
color: #24B200;
padding: 2px 2px 2px 2px;
}
#tiddlerDisplay .subtitle{
border-left: 1px solid #24B200;
border-right: 1px solid #24B200;
background: #FFFFDA; /*#F0F0C8;*/
padding: 2px 2px 2px 2px;
color: #24B200;
font-size: smaller;
}
#tiddlerDisplay .viewer{
border-left: 1px solid #24B200;
border-right: 1px solid #24B200;
border-bottom: 1px solid #24B200;
padding: 2px 2px 2px 4px;
background: #FFFFDA;
color: #195C80; /*#804E19;*/
font-weight: normal;
}
#tiddlerDisplay .viewer:a{
color: red;
}
.tagging, .tagged {
background-color: TRANSPARENT;
border:1px solid #8FFEAD;
color: #8FFEAD;
}
.imgfloatright{
float:right;
text-align: right;
margin:0px; /*1px 1px 1px 1px;*/
padding:0px;
border:0px solid black;
}
.poemtitle{
color: rgb(100,100,0);
margin-left:50px;
text-decoration: underline;
}
.poemtext{
color:rgb(50,20,200);
margin-left: 50px;
margin-top: 25px;
font-style: italic;
}
.textleft {text-align:left;}
.textright {text-align:right;}
.textcenter {text-align:center;}
.textjustify {text-align:justify;}
.textindent25 {text-indent:25px;}
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
/***** LAYOUT STYLES - DO NOT EDIT! *****/
ul.suckerfish, ul.suckerfish ul {
margin: 0;
padding: 0;
list-style: none;
line-height:1.4em;
}
ul.suckerfish li {
display: inline-block;
display: block;
float: left;
}
ul.suckerfish li ul {
position: absolute;
left: -999em;
}
ul.suckerfish li:hover ul, ul.suckerfish li.sfhover ul {
left: auto;
}
ul.suckerfish ul li {
float: none;
border-right: 0;
border-left:0;
}
ul.suckerfish a, ul.suckerfish a:hover {
display: block;
}
ul.suckerfish li a.tiddlyLink, ul.suckerfish li a, #mainMenu ul.suckerfish li a {font-weight:bold;}
/**** END LAYOUT STYLES *****/
/**** COLORS AND APPEARANCE - DEFAULT *****/
ul.suckerfish li a {
padding: 0.5em 1.5em;
color: #FFF;
background: #0066aa;
border-bottom: 0;
font-weight:bold;
}
ul.suckerfish li:hover a, ul.suckerfish li.sfhover a{
background: #00558F;
}
ul.suckerfish li:hover ul a, ul.suckerfish li.sfhover ul a{
color: #000;
background: #eff3fa;
border-top:1px solid #FFF;
}
ul.suckerfish ul li a:hover {
background: #e0e8f5;
}
ul.suckerfish li a{
width:9em;
}
ul.suckerfish ul li a, ul.suckerfish ul li a:hover{
display:inline-block;
width:9em;
}
ul.suckerfish li {
border-left: 1px solid #00558F;
}
/***** END COLORS AND APPEARANCE - DEFAULT *****/
/***** LAYOUT AND APPEARANCE: VERTICAL *****/
ul.suckerfish.vertical li{
width:10em;
border-left: 0px solid #00558f;
}
ul.suckerfish.vertical ul li, ul.suckerfish.vertical li a, ul.suckerfish.vertical li:hover a, ul.suckerfish.vertical li.sfhover a {
border-left: 0.8em solid #00558f;
}
ul.suckerfish.vertical li a, ul.suckerfish.vertical li:hover a, ul.suckerfish.vertical li.sfhover a, ul.suckerfish.vertical li.sfhover a:hover{
width:8em;
}
ul.suckerfish.vertical {
width:10em; text-align:left;
float:left;
}
ul.suckerfish.vertical li a {
padding: 0.5em 1em 0.5em 1em;
border-top:1px solid #fff;
}
ul.suckerfish.vertical, ul.suckerfish.vertical ul {
line-height:1.4em;
}
ul.suckerfish.vertical li:hover ul, ul.suckerfish.vertical li.sfhover ul {
margin: -2.4em 0 0 10.9em;
}
ul.suckerfish.vertical li:hover ul li a, ul.suckerfish.vertical li.sfhover ul li a {
border: 0px solid #FFF;
}
ul.suckerfish.vertical li:hover a, ul.suckerfish.vertical li.sfhover a{
padding-right:1.1em;
}
ul.suckerfish.vertical li:hover ul li, ul.suckerfish.vertical li.sfhover ul li {
border-bottom:1px solid #fff;
}
/***** END LAYOUT AND APPEARANCE: VERTICAL *****/
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<<allTagsExcept excludeLists excludeSearch lewcidExtension systemConfig plugins>>
How much we need the 'other'! The more sensitive one becomes the more important the 'other' becomes. Open oneself up, let one's guard down and voila the other comes in. Maybe one has always and will always need the 'other'? Maybe this need of the other is that which binds one to life? If the other were to be discounted from life there remains hardly any conflict, any love, any desire, any possession, maybe nothing. In a way the other defines our separateness,
Why is it that there is so strong a feeling for the other? Why is the other wanted to fulfill oneself? to legitimize oneself? Why is other's admiration so desired? Is it as the sage yajnavalkya says,'due to the self?' Does the self want to be loved by the self itself?
Since the beginning of history people have lived, fought and possessed. They shouted out in joy at victory and cried when lost. They all died one day, soon to be forgotten. Emperors of the world conquered the unconquerables of the time, possessed the most beautiful faces of the land. How must have they felt in these moments? One can imagine what grand moments these must have been. In these moments they must have believed that they were experiencing that which has never been experienced before. They must have believed that all history, all existence uptil then had been progressing towards one and one point only and that was the current moment. That the current moment was the culmination of all things uptil then.
Sadly those moments could never linger for long. They passed away as a silent breeze. Now here and now gone. All things come to pass, don't they?
And yet even this knowledge does little to change the attitude of the mind. The mind still desires the other. Though it is known that the magic would not stay for long and that life is not going to be one long blissful dream, there is not going to be any glorifying filmy background music that would somehow make the dullness and debasement of human condition worthy and acceptable,
Even then one desires the other...
/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{
// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'shavin';
// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
// disable autosave in d3
if (window.location.protocol != "file:")
config.options.chkGTDLazyAutoSave = false;
// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}
// create some shadow tiddler content
merge(config.shadowTiddlers,{
'WelcomeToTiddlyspot':[
"This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
"<<tiddler TspotControls>>",
"See also GettingStarted.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),
'TspotControls':[
"| tiddlyspot password:|<<option pasUploadPassword>>|",
"| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
"| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),
'TspotSidebar':[
"<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),
'TspotOptions':[
"tiddlyspot password:",
"<<option pasUploadPassword>>",
""
].join("\n")
});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 08/03/2008 00:00:15 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 08/03/2008 21:25:31 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 08/03/2008 22:53:25 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 11/03/2008 00:25:10 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 12/03/2008 00:26:58 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 12/03/2008 23:27:47 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 15/03/2008 00:02:19 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 22/03/2008 18:59:55 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 23/03/2008 23:41:19 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
| 25/03/2008 23:29:02 | Shavin | [[/|http://shavin.tiddlyspot.com/]] | [[store.cgi|http://shavin.tiddlyspot.com/store.cgi]] | . | [[index.html | http://shavin.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
major: 1, minor: 0, revision: 2,
date: new Date("Apr 19, 2007"),
source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
coreVersion: '2.2.0 (Beta 5)'
};
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");
merge(config.macros.option.types, {
'pas': {
elementType: "input",
valueField: "value",
eventName: "onkeyup",
className: "pasOptionInput",
typeValue: config.macros.option.passwordInputType,
create: function(place,type,opt,className,desc) {
// password field
config.macros.option.genericCreate(place,'pas',opt,className,desc);
// checkbox linked with this password "save this password on this computer"
config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);
// text savePasswordCheckboxLabel
place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
},
onChange: config.macros.option.genericOnChange
}
});
merge(config.optionHandlers['chk'], {
get: function(name) {
// is there an option linked with this chk ?
var opt = name.substr(3);
if (config.options[opt])
saveOptionCookie(opt);
return config.options[name] ? "true" : "false";
}
});
merge(config.optionHandlers, {
'pas': {
get: function(name) {
if (config.options["chk"+name]) {
return encodeCookie(config.options[name].toString());
} else {
return "";
}
},
set: function(name,value) {config.options[name] = decodeCookie(value);}
}
});
// need to reload options to load passwordOptions
loadOptionsCookie();
/*
if (!config.options['pasPassword'])
config.options['pasPassword'] = '';
merge(config.optionsDesc,{
pasPassword: "Test password"
});
*/
//}}}
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
major: 4, minor: 1, revision: 0,
date: new Date("May 5, 2007"),
source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
coreVersion: '2.2.0 (#3125)'
};
//
// Environment
//
if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false; // true to activate both in Plugin and UploadService
//
// Upload Macro
//
config.macros.upload = {
// default values
defaultBackupDir: '', //no backup
defaultStoreScript: "store.php",
defaultToFilename: "index.html",
defaultUploadDir: ".",
authenticateUser: true // UploadService Authenticate User
};
config.macros.upload.label = {
promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
config.macros.upload.handler = function(place,macroName,params) {
if (readOnly)
return;
var label;
if (document.location.toString().substr(0,4) == "http")
label = this.label.saveLabel;
else
label = this.label.uploadLabel;
var prompt;
if (params[0]) {
prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0],
(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
} else {
prompt = this.label.promptOption;
}
createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};
config.macros.upload.action = function(params)
{
// for missing macro parameter set value from options
var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
var username = params[4] ? params[4] : config.options.txtUploadUserName;
var password = config.options.pasUploadPassword; // for security reason no password as macro parameter
// for still missing parameter set default value
if ((!storeUrl) && (document.location.toString().substr(0,4) == "http"))
storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
if (storeUrl.substr(0,4) != "http")
storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
if (!toFilename)
toFilename = bidix.basename(window.location.toString());
if (!toFilename)
toFilename = config.macros.upload.defaultToFilename;
if (!uploadDir)
uploadDir = config.macros.upload.defaultUploadDir;
if (!backupDir)
backupDir = config.macros.upload.defaultBackupDir;
// report error if still missing
if (!storeUrl) {
alert(config.macros.upload.messages.noStoreUrl);
clearMessage();
return false;
}
if (config.macros.upload.authenticateUser && (!username || !password)) {
alert(config.macros.upload.messages.usernameOrPasswordMissing);
clearMessage();
return false;
}
bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password);
return false;
};
config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir)
{
if (!storeUrl)
return null;
var dest = bidix.dirname(storeUrl);
if (uploadDir && uploadDir != '.')
dest = dest + '/' + uploadDir;
dest = dest + '/' + toFilename;
return dest;
};
//
// uploadOptions Macro
//
config.macros.uploadOptions = {
handler: function(place,macroName,params) {
var wizard = new Wizard();
wizard.createWizard(place,this.wizardTitle);
wizard.addStep(this.step1Title,this.step1Html);
var markList = wizard.getElement("markList");
var listWrapper = document.createElement("div");
markList.parentNode.insertBefore(listWrapper,markList);
wizard.setValue("listWrapper",listWrapper);
this.refreshOptions(listWrapper,false);
var uploadCaption;
if (document.location.toString().substr(0,4) == "http")
uploadCaption = config.macros.upload.label.saveLabel;
else
uploadCaption = config.macros.upload.label.uploadLabel;
wizard.setButtons([
{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption,
onClick: config.macros.upload.action},
{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
]);
},
refreshOptions: function(listWrapper) {
var uploadOpts = [
"txtUploadUserName",
"pasUploadPassword",
"txtUploadStoreUrl",
"txtUploadDir",
"txtUploadFilename",
"txtUploadBackupDir",
"chkUploadLog",
"txtUploadLogMaxLine",
]
var opts = [];
for(i=0; i<uploadOpts.length; i++) {
var opt = {};
opts.push()
opt.option = "";
n = uploadOpts[i];
opt.name = n;
opt.lowlight = !config.optionsDesc[n];
opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
opts.push(opt);
}
var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
for(n=0; n<opts.length; n++) {
var type = opts[n].name.substr(0,3);
var h = config.macros.option.types[type];
if (h && h.create) {
h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
}
}
},
onCancel: function(e)
{
backstage.switchTab(null);
return false;
},
wizardTitle: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
cancelButtonPrompt: "Cancel prompt",
listViewTemplate: {
columns: [
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
}
//
// upload functions
//
if (!bidix.upload) bidix.upload = {};
if (!bidix.upload.messages) bidix.upload.messages = {
//from saving
invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
var callback = function(status,uploadParams,original,url,xhr) {
if (!status) {
displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
return;
}
if (bidix.debugMode)
alert(original.substr(0,500)+"\n...");
// Locate the storeArea div's
var posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
bidix.upload.uploadRss(uploadParams,original,posDiv);
};
if(onlyIfDirty && !store.isDirty())
return;
clearMessage();
// save on localdisk ?
if (document.location.toString().substr(0,4) == "file") {
var path = document.location.toString();
var localPath = getLocalPath(path);
saveChanges();
}
// get original
var uploadParams = Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
var originalPath = document.location.toString();
// If url is a directory : add index.html
if (originalPath.charAt(originalPath.length-1) == "/")
originalPath = originalPath + "index.html";
var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
var log = new bidix.UploadLog();
log.startUpload(storeUrl, dest, uploadDir, backupDir);
displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
if (bidix.debugMode)
alert("about to execute Http - GET on "+originalPath);
var r = doHttp("GET",originalPath,null,null,null,null,callback,uploadParams,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
bidix.upload.uploadRss = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
if(status) {
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
bidix.upload.uploadMain(params[0],params[1],params[2]);
} else {
displayMessage(bidix.upload.messages.rssFailed);
}
};
// do uploadRss
if(config.options.chkGenerateAnRssFeed) {
var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
var rssUploadParams = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),callback,Array(uploadParams,original,posDiv));
} else {
bidix.upload.uploadMain(uploadParams,original,posDiv);
}
};
bidix.upload.uploadMain = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
var log = new bidix.UploadLog();
if(status) {
// if backupDir specified
if ((params[3]) && (responseText.indexOf("backupfile:") > -1)) {
var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
}
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
store.setDirty(false);
log.endUpload("ok");
} else {
alert(bidix.upload.messages.mainFailed);
displayMessage(bidix.upload.messages.mainFailed);
log.endUpload("failed");
}
};
// do uploadMain
var revised = bidix.upload.updateOriginal(original,posDiv);
bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};
bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
var localCallback = function(status,params,responseText,url,xhr) {
url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
if (xhr.status == httpStatus.NotFound)
alert(bidix.upload.messages.storePhpNotFound.format([url]));
if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
alert(responseText);
if (responseText.indexOf("Debug mode") >= 0 )
responseText = responseText.substring(responseText.indexOf("\n\n")+2);
} else if (responseText.charAt(0) != '0')
alert(responseText);
if (responseText.charAt(0) != '0')
status = null;
callback(status,params,responseText,url,xhr);
};
// do httpUpload
var boundary = "---------------------------"+"AaB03x";
var uploadFormName = "UploadPlugin";
// compose headers data
var sheader = "";
sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
sheader += uploadFormName +"\"\r\n\r\n";
sheader += "backupDir="+uploadParams[3] +
";user=" + uploadParams[4] +
";password=" + uploadParams[5] +
";uploaddir=" + uploadParams[2];
if (bidix.debugMode)
sheader += ";debug=1";
sheader += ";;\r\n";
sheader += "\r\n" + "--" + boundary + "\r\n";
sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
sheader += "Content-Length: " + data.length + "\r\n\r\n";
// compose trailer data
var strailer = new String();
strailer = "\r\n--" + boundary + "--\r\n";
data = sheader + data + strailer;
if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
if (!posDiv)
posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
store.allTiddlersAsHtml() + "\n" +
original.substr(posDiv[1]);
var newSiteTitle = getPageTitle().htmlEncode();
revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
return revised;
};
//
// UploadLog
//
// config.options.chkUploadLog :
// false : no logging
// true : logging
// config.options.txtUploadLogMaxLine :
// -1 : no limit
// 0 : no Log lines but UploadLog is still in place
// n : the last n lines are only kept
// NaN : no limit (-1)
bidix.UploadLog = function() {
if (!config.options.chkUploadLog)
return; // this.tiddler = null
this.tiddler = store.getTiddler("UploadLog");
if (!this.tiddler) {
this.tiddler = new Tiddler();
this.tiddler.title = "UploadLog";
this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
this.tiddler.created = new Date();
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
}
return this;
};
bidix.UploadLog.prototype.addText = function(text) {
if (!this.tiddler)
return;
// retrieve maxLine when we need it
var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
if (isNaN(maxLine))
maxLine = -1;
// add text
if (maxLine != 0)
this.tiddler.text = this.tiddler.text + text;
// Trunck to maxLine
if (maxLine >= 0) {
var textArray = this.tiddler.text.split('\n');
if (textArray.length > maxLine + 1)
textArray.splice(1,textArray.length-1-maxLine);
this.tiddler.text = textArray.join('\n');
}
// update tiddler fields
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
// refresh and notifiy for immediate update
story.refreshTiddler(this.tiddler.title);
store.notify(this.tiddler.title, true);
};
bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {
if (!this.tiddler)
return;
var now = new Date();
var text = "\n| ";
var filename = bidix.basename(document.location.toString());
if (!filename) filename = '/';
text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
text += config.options.txtUserName + " | ";
text += "[["+filename+"|"+location + "]] |";
text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
text += uploadDir + " | ";
text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
text += backupDir + " |";
this.addText(text);
};
bidix.UploadLog.prototype.endUpload = function(status) {
if (!this.tiddler)
return;
this.addText(" "+status+" |");
};
//
// Utilities
//
bidix.checkPlugin = function(plugin, major, minor, revision) {
var ext = version.extensions[plugin];
if (!
(ext &&
((ext.major > major) ||
((ext.major == major) && (ext.minor > minor)) ||
((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
// write error in PluginManager
if (pluginInfo)
pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
}
};
bidix.dirname = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(0, lastpos);
} else {
return filePath.substring(0, filePath.lastIndexOf("\\"));
}
};
bidix.basename = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("#")) != -1)
filePath = filePath.substring(0, lastpos);
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(lastpos + 1);
} else
return filePath.substring(filePath.lastIndexOf("\\")+1);
};
bidix.initOption = function(name,value) {
if (!config.options[name])
config.options[name] = value;
};
//
// Initializations
//
// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);
// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");
//optionsDesc
merge(config.optionsDesc,{
txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
txtUploadUserName: "Upload Username",
pasUploadPassword: "Upload Password",
chkUploadLog: "do Logging in UploadLog (default: true)",
txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});
// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');
/* don't want this for tiddlyspot sites
// Backstage
merge(config.tasks,{
uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
*/
//}}}
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
Welcome to my TW. A place for some of my thoughts and musings. Please feel free to hang out, Click here to know more [[About Me]]. On the light green tab on the left you can find tiddlers sorted according to date, alphabet and tags. You are welcome to comment too.
This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.
@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://shavin.tiddlyspot.com/controlpanel]] (your control panel username is //shavin//).
<<tiddler TspotControls>>
See also GettingStarted.
@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the "save to web" button in the column on the right.
@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click "upload" and your ~TiddlyWiki will be saved back to tiddlyspot.com.
@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].
@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags >>
<<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<tiddler TspotSidebar>>
<<slider chkSliderOptionsPanel OptionsPanel "options ยป" "Change TiddlyWiki advanced options">>
<<tabs txtMyTab "More" "More lists" TabMore>>
<<tag excludeLists>>
<<tag excludeSearch>>
<<tag lewcidExtension>>
<<tag systemConfig>>
<<slider chkAdminPanel theAdmin '.' >>
{{poemtitle{เจเจฌเจฟเจค}}}
{{poemtext {
เจ
เจเจจเจฟ เจเจฐเจค, เจเจฒ เจฌเฉเจกเจค, เจธเจฐเจช เจเฉเจฐเจธเจนเจฟ,
เจธเจถเจคเฉเจฐ เจ
เจจเฉเจ เจฐเฉเจฎ เจฐเฉเจฎ เจเจฐเจฟ เจเจพเจค เจนเฉ เฅคเฅค
เจฌเจฟเจฐเจฅเจพ เจ
เจจเฉเจ เจ
เจชเจฆเจพ เจ
เจงเฉเจจ เจฆเฉเจจ เจเจคเจฟ,
เจเฉเจฐเฉเจเจฎ เจ
เฉ เจธเฉเจค เจฌเจฐเจ เจฎเจพเจนเจฟ เจจเจฟเจธ เจชเฉเจฐเจพเจค เจนเฉเฅคเฅค
เจเฉ, เจฆเจตเจฟเจ, เจฌเจงเฉ, เจฌเจฟเจธเจตเจพเจธ, เจฌเฉฐเจธ, เจเฉเจเจฟ เจนเจคเจฏเฉเจพ,
เจคเจฟเฉเจธเจจเจพ เจ
เจจเฉเจ เจฆเฉเจ เจฆเฉเจ เจฌเจธ เจเจพเจค เจนเฉเฅคเฅค
เจ
เจจเจฟเจ เจชเฉเจฐเจเจพเจฐ เจเฉเจฐ เจธเจเจฒ เจธเฉฐเจธเจพเจฐ เจธเฉเจง,
เจชเฉเจฏ เจเฉ เจฌเจฟเจเฉเจน เจชเจ เจเจ เจจ เจชเฉเจเจพเจค เจนเฉเฅคเฅค
}}}
เจ
เจฐเจฅ:- เจ
เจเจจเฉ เจเจฒเจพเจตเฉ, เจเจฒ เจกเฉเจฌเฉ, เจธเจช เจกเฉฐเจเฉ, เจ
เจจเฉเจเจพเจ เจถเจธเจคเฉเจฐ เจเจพเจค เจเจฐเจจ(เจเจจเฉเจนเจพเจ เจคเฉเจ เจเฉ) เจฐเฉเจฎ เจฐเฉเจฎ เจตเจฟเจ (เจชเฉ)
{{poemtext {
เจกเฉเจฒเฉ เจเฉเฉเจนเจฆเจฟเจ
เจพเจ เจฎเจพเจฐเฉเจ
เจพเจ เจนเฉเจฐ เจเฉเจเจพเจ, เจฎเฉเจจเฉเฉฐ เจฒเฉ เจเฉฑเจฒเฉ เจฌเจพเจฌเจฒเจพ เจฒเฉ เจเฉฑเจฒเฉ เจตเฉ
เจฎเฉเจจเฉเฉฐ เจฐเฉฑเจ เจฒเฉ เจฌเจพเจฌเจฒเจพ เจนเฉเจฐ เจ
เจพเจเฉ, เจกเฉเจฒเฉ เจเฉฑเจค เจเจนเจพเจฐ เจจเฉ เจฒเฉ เจเฉฑเจฒเฉ เจตเฉ
เจฎเฉเจฐเจพ เจ
เจพเจเจฟเจ
เจพ เจเจฆเฉ เจจเจพ เจฎเฉเฉเจฆเจพ เจธเฉเจ, เฉณเฉเจน เจธเจฎเฉเจ เจฌเจพเจฌเจฒเจพ เจเจฟเฉฑเจฅเฉ เจเฉฒเฉ เจเฉฑเจฒเฉ เจตเฉ
เจคเฉเจฐเฉ เจเจคเจฐ เจเจพเจตเฉเจ เจฌเจพเจฌเจฒเจพ เจฐเฉเฉฑเจ เจตเจพเจเจเฉเฉฐ, เจเฉเฉ เจตเจพเจเจ เจฎเฉเจธเจพเจซเจฐเจพเจ เจฌเจนเจฟ เจเฉฑเจฒเฉ เจตเฉ
เจฆเจฟเจจ เจเจพเจฐ เจจเจพ เจฐเฉฑเจ เจ
เจพเจฐเจพเจฎ เจชเจพเฉฒเจฟเจ
เจพ, เจฆเฉเฉฑเจ เจฆเจฐเจฆ เจฎเฉเจธเฉเจฌเจคเจพเจ เจธเจนเจฟ เจเฉฑเจฒเฉ เจตเฉ
เจธเจพเจจเฉเฉฐ เจฌเฉเจฒเจฟเจ
เจพ เจเจพเจฒเจฟเจ
เจพ เจฎเจพเจซ เจเจฐเจจเจพ, เจชเฉฐเจ เจฐเฉเฉ เจคเฉเจฐเฉ เจเจฐ เจฐเจนเจฟ เจเฉฑเจฒเฉ เจตเฉ
เจฒเฉ เจตเฉ เจฐเจพเจเจเจฟเจ
เจพ เจฐเฉฑเจฌ เจจเฉเฉฐ เจธเฉเจเจชเจฟเจ
เจพ เจคเฉเฉฐ, เจ
เจธเฉเจ เฉเจพเจฒเจฎเจพเจ เจฆเฉ เจตเฉฑเจธ เจชเฉ เจเฉฑเจฒเฉ เจตเฉ
เจเจฟเจนเฉเฉ เจจเจพเจฒ เจเจฟเจ
เจพเจฒ เฉณเฉเจธเจพเจฐเจฆเฉ เจธเจพเจ, เจเจพเจจเฉ เจธเจญ เฉณเฉเจฎเฉเจฆ เจฆเฉ เจขเจนเจฟ เจเฉฑเจฒเฉ เจตเฉ
เจ
เจธเฉเจ เจตเฉฑเจค เจจเจพ เจ
เจพเฉฒเจฟเจเฉ เจเฉเจกเจฃเจพ เฉฒเฉ, เจฌเจพเฉเฉ เฉฒเจฟเจถเจ เจตเจพเจฒเฉ เจเจฐ เจคเฉเจน เจเฉฑเจฒเฉ เจตเฉ
เจถเฉเจฆเฉ เจเฉเฉเฉ เจฆเฉ เจ
เฉฑเจ เจฎเจเจพเจฃ เจนเฉเฉฒเฉ, เจฐเฉเจฃ เจชเจฟเจเจฃ เจเจฐเจฆเฉ เจนเจพเฉฒเฉ เจนเจพเฉฒเฉ เจเฉฑเจฒเฉ เจตเฉ
เจเจพเจฐเฉ เจเฉฐเจจเฉเจ
เจพเจ เจฎเฉเจฐเฉเจ
เจพเจ เจตเฉเจ เจเจพเจฒเฉ, เจ
เจธเฉเจ เจจเจพเจฒ เจจเจนเฉเจเจ เจเฉเจ เจฒเฉ เจเฉฑเจฒเฉ เจตเฉ
เจเฉเฉเฉ เจฆเฉเจจเฉเจ
เจพเจ เจถเจพเจจ เจเฉเจฎเจพเจจ เจเฉเฉเจพ, เจตเจพเจฐเจธ เจถเจพเจน เจนเฉเจฐเฉเจ เจธเฉฑเจ เจเจนเฉ เจเฉฑเจฒเฉ เจตเฉ }}}
{{poemtitle{เจเจผเจเจผเจฒ}}}
{{poemtext {
เจฌเจนเฉเจค เจเฉเจฒ เจเจฟเจฒเฉ เจจเฉ เจจเจฟเจเจพเจนเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจเจฟเจงเจฐ เจเจพเจฃ เจฎเจนเจฟเจเจพเจ เจนเจตเจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจถเจฐเฉเจเจพเจ เจฆเฉ เจถเจนเจฟ เจคเฉ เจญเจฐเจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจฎเฉเจ เจธเฉเจฐเจ เจเฉ เจกเฉเจฌเจฟเจ
เจพ เจฆเจฟเจถเจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจฟเจเจธเฉ เจนเฉเจฐ เจงเจฐเจคเฉ เจคเฉ เจตเจฐเฉเจนเจฆเจพ เจฐเจฟเจนเจพ เจฎเฉเจ
เจคเฉเจฐเฉ เจงเฉเจเจฆเฉ เจเจพเจฌเจพเจ เจคเฉ เจเจพเจตเจพเจ เจคเฉ เจเฉเจฐเฉ
เฉณเฉเจจเฉเจนเจพเจ เจฆเฉ เจตเฉ เจนเฉ เจชเฉเฉ เจฎเฉเจฐเฉ เฉเฉเจฒ เจตเจฟเจ
เจเจฆเจฎ เจเจฟเจนเฉเฉ เจคเฉเจฐเจฟเจ
เจพ เจฎเฉ เจฐเจพเจนเจตเจพเจ เจคเฉ เจเฉเจฐเฉ
เจเจฒเฉเจเจพ เจคเจพเจ เจซเจเจฃเจพเจ เจนเฉ เจธเฉ เฉณเฉเจธเจฆเจพ เฉฒเจฟเจ เจฆเจฟเจจ
เจเฉ เจนเฉณเฉเจเจพ เจตเฉ เจญเจฐเจฆเจพ เจธเฉ เจธเจพเจนเจตเจพเจ เจคเฉเจ เจเฉเจเจฐเฉ
เฉณเฉเจน เจเจพเจตเจพเจ เจจเฉเฉฐ เจฟเจฎเจฒเจฆเจพ เจธเฉ เจงเฉเฉฑเจชเจพเจ เจคเฉเจ เจเฉเจชเจเฉ
เจคเฉ เจฐเจพเจคเจพเจ เจ เจกเฉเจฌเจฆเจพ เจธเฉ เจเจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจเจฐเฉเจ เจฎเฉเจซเจฒเจฟเจธเจพเจ เจฆเฉ เจฆเจฐเฉเจ เจฌเจพเฉเฉเจ
เจพเจ เจฆเฉ
เจเจเฉ เจฆเฉเจตเจฟเจ เจฌเจพเจฆเจถเจพเจนเจพเจ เจคเฉ เจเฉเจฐเฉ
เจฎเฉเจฐเฉ เจฏเฉเจ เจฆเฉ เจ
เฉ เจธเฉเจฐเจเฉ เจชเฉเจฐ เจฆเฉฑเจฌเจเฉ
เจเจฟเจงเจฐ เจเจพ เจฐเจนเฉ เจนเฉเจ เจถเฉเจ
เจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ
เจฆเฉเจพ เจเจฐ เจฐเจฟเจนเจพ เฉฒเฉเจ เฉเฉเจฒ เจจเจพเจณ เจชเจพเจคเจฐ
เฉฒเจฟเจน เจเฉ เจฒเจฟเจ เจฐเจฟเจนเฉเจ เจญเจพเจตเจจเจพเจตเจพเจ เจคเฉเจ เจเฉเจฐเฉ}}}