- adapted User_p to general web-interface style (and removed status-only page on changes)

- beautified WikiHelp.html + typos
- IP hasn't been set correctly in Blog.xml

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3418 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
karlchenofhell 18 years ago
parent 92b6bc0ad2
commit 1fe505f0b0

@ -60,6 +60,7 @@ import de.anomic.http.httpHeader;
import de.anomic.plasma.plasmaSwitchboard; import de.anomic.plasma.plasmaSwitchboard;
import de.anomic.server.serverObjects; import de.anomic.server.serverObjects;
import de.anomic.server.serverSwitch; import de.anomic.server.serverSwitch;
import de.anomic.server.logging.serverLog;
import de.anomic.yacy.yacyCore; import de.anomic.yacy.yacyCore;
import de.anomic.yacy.yacyNewsRecord; import de.anomic.yacy.yacyNewsRecord;
@ -75,8 +76,8 @@ public class Blog {
} }
public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) { public static serverObjects respond(httpHeader header, serverObjects post, serverSwitch env) {
plasmaSwitchboard switchboard = (plasmaSwitchboard) env; final plasmaSwitchboard switchboard = (plasmaSwitchboard) env;
serverObjects prop = new serverObjects(); final serverObjects prop = new serverObjects();
blogBoard.entry page = null; blogBoard.entry page = null;
boolean hasRights = switchboard.verifyAuthentication(header, true); boolean hasRights = switchboard.verifyAuthentication(header, true);
@ -99,7 +100,7 @@ public class Blog {
final int num = post.getInt("num",20); //indicates how many entries should be shown final int num = post.getInt("num",20); //indicates how many entries should be shown
if(!hasRights){ if(!hasRights){
userDB.Entry userentry = switchboard.userDB.proxyAuth((String)header.get("Authorization", "xxxxxx")); final userDB.Entry userentry = switchboard.userDB.proxyAuth((String)header.get("Authorization", "xxxxxx"));
if(userentry != null && userentry.hasBlogRight()){ if(userentry != null && userentry.hasBlogRight()){
hasRights=true; hasRights=true;
} else if(post.containsKey("login")) { } else if(post.containsKey("login")) {
@ -109,7 +110,7 @@ public class Blog {
} }
String pagename = post.get("page", DEFAULT_PAGE); String pagename = post.get("page", DEFAULT_PAGE);
final String ip = post.get("CLIENTIP", "127.0.0.1"); final String ip = (String)header.get(httpHeader.CONNECTION_PROP_CLIENTIP, "127.0.0.1");
String StrAuthor = post.get("author", ""); String StrAuthor = post.get("author", "");
@ -134,7 +135,7 @@ public class Blog {
if(hasRights && post.containsKey("delete") && post.get("delete").equals("sure")) { if(hasRights && post.containsKey("delete") && post.get("delete").equals("sure")) {
page = switchboard.blogDB.read(pagename); page = switchboard.blogDB.read(pagename);
Iterator i = page.comments().iterator(); final Iterator i = page.comments().iterator();
while(i.hasNext()) { while(i.hasNext()) {
switchboard.blogCommentDB.delete((String) i.next()); switchboard.blogCommentDB.delete((String) i.next());
} }
@ -165,8 +166,8 @@ public class Blog {
comments = page.comments(); comments = page.comments();
date = page.date(); date = page.date();
} }
String commentMode = post.get("commentMode", "1"); final String commentMode = post.get("commentMode", "1");
String StrSubject = post.get("subject", ""); final String StrSubject = post.get("subject", "");
byte[] subject; byte[] subject;
try { try {
subject = StrSubject.getBytes("UTF-8"); subject = StrSubject.getBytes("UTF-8");
@ -177,7 +178,7 @@ public class Blog {
switchboard.blogDB.write(switchboard.blogDB.newEntry(pagename, subject, author, ip, date, content, comments, commentMode)); switchboard.blogDB.write(switchboard.blogDB.newEntry(pagename, subject, author, ip, date, content, comments, commentMode));
// create a news message // create a news message
HashMap map = new HashMap(); final HashMap map = new HashMap();
map.put("page", pagename); map.put("page", pagename);
map.put("subject", StrSubject.replace(',', ' ')); map.put("subject", StrSubject.replace(',', ' '));
map.put("author", StrAuthor.replace(',', ' ')); map.put("author", StrAuthor.replace(',', ' '));
@ -264,7 +265,7 @@ public class Blog {
else { else {
//only show 1 entry //only show 1 entry
prop.put("mode_entries",1); prop.put("mode_entries",1);
putBlogEntry(prop, page, address, 0, xml, hasRights); putBlogEntry(prop, page, address, 0, hasRights, xml);
} }
} }
@ -273,28 +274,29 @@ public class Blog {
} }
private static serverObjects putBlogDefault( private static serverObjects putBlogDefault(
serverObjects prop, final serverObjects prop,
plasmaSwitchboard switchboard, final plasmaSwitchboard switchboard,
String address, final String address,
int start, int start,
int num, int num,
boolean hasRights, final boolean hasRights,
boolean xml) { final boolean xml) {
try { try {
Iterator i = switchboard.blogDB.keys(false); final Iterator i = switchboard.blogDB.keys(false);
String pageid; String pageid;
blogBoard.entry entry;
int count = 0; //counts how many entries are shown to the user int count = 0; //counts how many entries are shown to the user
if(xml) num = 0; if(xml) num = 0;
int nextstart = start+num; //indicates the starting offset for next results final int nextstart = start+num; //indicates the starting offset for next results
while(i.hasNext()) { while(i.hasNext() && (num == 0 || num > count)) {
if(count >= num && num > 0)
break;
pageid = (String) i.next(); pageid = (String) i.next();
if(0 < start--) if(0 < start--) continue;
continue; putBlogEntry(
entry = switchboard.blogDB.read(pageid); prop,
putBlogEntry(prop, entry, address, count++, xml, hasRights); switchboard.blogDB.read(pageid),
address,
count++,
hasRights,
xml);
} }
prop.put("mode_entries",count); prop.put("mode_entries",count);
@ -305,7 +307,7 @@ public class Blog {
} else { } else {
prop.put("moreentries",0); prop.put("moreentries",0);
} }
} catch (IOException e) { } } catch (IOException e) { serverLog.logSevere("BLOG", "Error reading blog-DB", e); }
return prop; return prop;
} }
@ -314,8 +316,8 @@ public class Blog {
final blogBoard.entry entry, final blogBoard.entry entry,
final String address, final String address,
final int number, final int number,
final boolean xml, final boolean hasRights,
final boolean hasRights) { final boolean xml) {
// subject // subject
try { try {
@ -332,7 +334,9 @@ public class Blog {
} }
// comments // comments
if(entry.getCommentMode() != 0) { if(entry.getCommentMode() == 0) {
prop.put("mode_entries_" + number + "_commentsactive", 0);
} else {
prop.put("mode_entries_" + number + "_commentsactive", 1); prop.put("mode_entries_" + number + "_commentsactive", 1);
prop.put("mode_entries_" + number + "_commentsactive_pageid", entry.key()); prop.put("mode_entries_" + number + "_commentsactive_pageid", entry.key());
prop.put("mode_entries_" + number + "_commentsactive_address", address); prop.put("mode_entries_" + number + "_commentsactive_address", address);
@ -341,8 +345,6 @@ public class Blog {
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
prop.put("mode_entries_" + number + "_commentsactive_comments", new String(entry.commentsSize())); prop.put("mode_entries_" + number + "_commentsactive_comments", new String(entry.commentsSize()));
} }
} else {
prop.put("mode_entries_" + number + "_commentsactive", 0);
} }
prop.put("mode_entries_" + number + "_date", dateString(entry.date())); prop.put("mode_entries_" + number + "_date", dateString(entry.date()));

@ -2,90 +2,75 @@
<title>#[clientname]#'s User Administration</title> <title>#[clientname]#'s User Administration</title>
end of HEADER--> end of HEADER-->
<h2>User Administration</h2> <h2>User Administration</h2>
#(page)#
<table> <!-- Page 1: Results -->
<tr> #(text)#
<td valign="top"> ::
<p>User created: #[username]#</p>
::
<p>User changed: #[username]#</p>
#(/text)#
#(error)#
::
<p class="error">Generic error.</p>
::
<p class="error">Passwords do not match.</p>
::
<p class="error">Username too short. Username must be >= 4 Characters.</p>
#(/error)#
<form action="User_p.html"> <form action="User_p.html">
<select name="user"> <fieldset><legend>Select user</legend>
<option value="newuser">new User</option>#{users}# <dl>
<dt><label for="user">Select user</label>:</dt>
<dd>
<select name="user" id="user">
<option value="newuser">New user</option>#{users}#
<option>#[user]#</option>#{/users}# <option>#[user]#</option>#{/users}#
</select><br /> </select>
</dd>
<dt>&nbsp;</dt>
<dd>
<input type="submit" name="change_user" value="Edit User" /> <input type="submit" name="change_user" value="Edit User" />
<input type="submit" name="delete_user" value="Delete User" /> <input type="submit" name="delete_user" value="Delete User" />
</dd>
</dl>
</fieldset>
</form> </form>
</td>
<td width="100%"> <form action="User_p.html" method="post">
<form action="User_p.html" method="POST"> <fieldset><legend>Edit current user: #[username]#</legend>
<!-- Hidden(text for debugging): <input type="text" name="current_user" value="#[current_user]#" readonly> --> <!-- Hidden(text for debugging): <input type="text" name="current_user" value="#[current_user]#" readonly> -->
<input type="hidden" name="current_user" value="#[current_user]#" /> <input type="hidden" name="current_user" value="#[current_user]#" />
Current User: #[username]# <dl>
<table border="1"> <dt><label for="username">Username</label>:</dt>
<tr> <dd><input type="text" id="username" name="username" value="#[username]#" /></dd>
<td>Username: </td> <dt><label for="password">Password</label>:</dt>
<td><input type="text" name="username" value="#[username]#"></td> <dd><input type="password" id="password" name="password" /></dd>
</tr> <dt><label for="password2">Repeat password</label>:</dt>
<tr> <dd><input type="password" id="password2" name="password2" /></dd>
<td>Password: </td> <dt><label for="firstname">First name</label>:</dt>
<td><input type="password" name="password"></td> <dd><input type="text" id="firstname" name="firstname" value="#[firstname]#" /></dd>
</tr> <dt><label for="lastname">Last name</label>:</dt>
<tr> <dd><input type="text" id="lastname" name="lastname" value="#[lastname]#" /></dd>
<td>Password(repeat): </td> <dt><label for="address">Address</label>:</dt>
<td><input type="password" name="password2"></td> <dd><input type="text" id="address" name="address" value="#[address]#" /></dd>
</tr> <dt>Rights:</dt>
<tr> <dd>
<td>First Name: </td>
<td><input type="text" name="firstname" value="#[firstname]#"></td>
</tr>
<tr>
<td>Last Name: </td>
<td><input type="text" name="lastname" value="#[lastname]#"></td>
</tr>
<tr>
<td>Address: </td>
<td><input type="text" name="address" value="#[address]#"></td>
</tr>
<tr>
<td>Rights</td>
<td>
<input type="checkbox" id="proxy" name="proxyRight"#(proxyRight)#:: checked="checked"#(/proxyRight)# /><label for="proxy">Proxy</label><br /> <input type="checkbox" id="proxy" name="proxyRight"#(proxyRight)#:: checked="checked"#(/proxyRight)# /><label for="proxy">Proxy</label><br />
<input type="checkbox" id="admin" name="adminRight"#(adminRight)#:: checked="checked"#(/adminRight)# /><label for="admin">Admin</label><br /> <input type="checkbox" id="admin" name="adminRight"#(adminRight)#:: checked="checked"#(/adminRight)# /><label for="admin">Admin</label><br />
<input type="checkbox" id="share" name="uploadRight"#(uploadRight)#:: checked="checked"#(/uploadRight)# /><label for="share">Fileshare-Upload</label><br /> <input type="checkbox" id="share" name="uploadRight"#(uploadRight)#:: checked="checked"#(/uploadRight)# /><label for="share">Fileshare-Upload</label><br />
<input type="checkbox" id="dwnld" name="downloadRight"#(downloadRight)#:: checked="checked"#(/downloadRight)# /><label for="dwnld">Fileshare-Download</label><br /> <input type="checkbox" id="dwnld" name="downloadRight"#(downloadRight)#:: checked="checked"#(/downloadRight)# /><label for="dwnld">Fileshare-Download</label><br />
<input type="checkbox" id="blog" name="blogRight"#(blogRight)#:: checked="checked"#(/blogRight)# /><label for="blog">Blog</label><br /> <input type="checkbox" id="blog" name="blogRight"#(blogRight)#:: checked="checked"#(/blogRight)# /><label for="blog">Blog</label><br />
<input type="checkbox" id="wiki" name="wikiAdminRight"#(wikiAdminRight)#:: checked="checked"#(/wikiAdminRight)# /><label for="wiki">Wiki Admin</label> <input type="checkbox" id="wiki" name="wikiAdminRight"#(wikiAdminRight)#:: checked="checked"#(/wikiAdminRight)# /><label for="wiki">Wiki Admin</label><br />
<input type="checkbox" id="wiki" name="bookmarkRight"#(bookmarkRight)#:: checked="checked"#(/bookmarkRight)# /><label for="wiki">Bookmarks</label> <input type="checkbox" id="bkmark" name="bookmarkRight"#(bookmarkRight)#:: checked="checked"#(/bookmarkRight)# /><label for="bkmark">Bookmarks</label>
</td> </dd>
</tr> <dt><label for="tlimit">Timelimit</label>:</dt>
<tr> <dd><input type="text" id="tlimit" name="timelimit" value="#[timelimit]#" /></dd>
<td><label for="tlimit">Timelimit</label>:</td> <dt><label for="tused">Time used</label>:</dt>
<td><input type="text" id="tlimit" name="timelimit" value="#[timelimit]#" /></td> <dd><input type="text" id="tused" name="timeused" value="#[timeused]#" /></dd>
</tr> <dt>&nbsp;</dt>
<tr> <dd><input type="submit" name="change" value="Save User" /></dd>
<td><label for="tused">Time used</label>:</td> </dl>
<td><input type="text" id="tused" name="timeused" value="#[timeused]#" /></td> </fieldset>
</tr>
</table>
<input type="submit" name="change" value="Save User" />
</form> </form>
</td>
</tr>
</table>
::
<!-- Page 1: Results -->
#(text)#
::
<p>User created: #[username]#</p>
::
<p>User changed: #[username]#</p>
#(/text)#
#(error)#
::
<p>Generic error.</p>
::
<p>Passwords do not match.</p>
::
<p>Username too short. Username must be >= 4 Characters.</p>
#(/error)#
<p>If you want to manage more Users, return to the <a href="User_p.html?change_user=true&amp;user=#[username]#">user</a> page.</p>
#(/page)#

@ -67,23 +67,22 @@ public class User_p {
prop.put("SUPERTEMPLATE", "/env/page.html"); //user Supertemplates prop.put("SUPERTEMPLATE", "/env/page.html"); //user Supertemplates
//default values //default values
prop.put("page", 0); prop.put("current_user", "newuser");
prop.put("page_current_user", "newuser"); prop.put("username", "");
prop.put("page_username", ""); prop.put("firstname", "");
prop.put("page_firstname", ""); prop.put("lastname", "");
prop.put("page_lastname", ""); prop.put("address", "");
prop.put("page_address", ""); prop.put("timelimit", "");
prop.put("page_timelimit", ""); prop.put("timeused", "");
prop.put("page_timeused", ""); prop.put("timerange", "");
prop.put("page_timerange", ""); prop.put("proxyRight", 1);
prop.put("page_proxyRight", 1); prop.put("downloadRight", 0);
prop.put("page_downloadRight", 0); prop.put("uploadRight", 0);
prop.put("page_uploadRight", 0); prop.put("adminRight", 0);
prop.put("page_adminRight", 0); prop.put("wikiAdminRight", 0);
prop.put("page_wikiAdminRight", 0); prop.put("bookmarkRight", 0);
prop.put("page_bookmarkRight", 0);
prop.put("users", 0);
prop.put("page_users", 0);
if(sb.userDB == null) if(sb.userDB == null)
return prop; return prop;
@ -102,35 +101,34 @@ public class User_p {
// link: "If you want to manage more Users, return to the user page." (parameter "user" is empty) // link: "If you want to manage more Users, return to the user page." (parameter "user" is empty)
if (entry != null) { if (entry != null) {
//TODO: set username read-only in html //TODO: set username read-only in html
prop.put("page_current_user", post.get("user")); prop.put("current_user", post.get("user"));
prop.put("page_username", post.get("user")); prop.put("username", post.get("user"));
prop.put("page_firstname", entry.getFirstName()); prop.put("firstname", entry.getFirstName());
prop.put("page_lastname", entry.getLastName()); prop.put("lastname", entry.getLastName());
prop.put("page_address", entry.getAddress()); prop.put("address", entry.getAddress());
prop.put("page_timelimit", entry.getTimeLimit()); prop.put("timelimit", entry.getTimeLimit());
prop.put("page_timeused", entry.getTimeUsed()); prop.put("timeused", entry.getTimeUsed());
prop.put("page_proxyRight", (entry.hasProxyRight()?1:0)); prop.put("proxyRight", (entry.hasProxyRight()?1:0));
prop.put("page_uploadRight", (entry.hasUploadRight()?1:0)); prop.put("uploadRight", (entry.hasUploadRight()?1:0));
prop.put("page_downloadRight", (entry.hasDownloadRight()?1:0)); prop.put("downloadRight", (entry.hasDownloadRight()?1:0));
prop.put("page_adminRight", (entry.hasAdminRight()?1:0)); prop.put("adminRight", (entry.hasAdminRight()?1:0));
prop.put("page_blogRight", (entry.hasBlogRight()?1:0)); prop.put("blogRight", (entry.hasBlogRight()?1:0));
prop.put("page_wikiAdminRight", (entry.hasWikiAdminRight()?1:0)); prop.put("wikiAdminRight", (entry.hasWikiAdminRight()?1:0));
prop.put("page_bookmarkRight", (entry.hasBookmarkRight()?1:0)); prop.put("bookmarkRight", (entry.hasBookmarkRight()?1:0));
} }
}else if( post.containsKey("delete_user") && !((String)post.get("user")).equals("newuser") ){ }else if( post.containsKey("delete_user") && !((String)post.get("user")).equals("newuser") ){
sb.userDB.removeEntry((String)post.get("user")); sb.userDB.removeEntry((String)post.get("user"));
} }
} else if(post.containsKey("change")) { //New User / edit User } else if(post.containsKey("change")) { //New User / edit User
prop.put("page", 1); //results prop.put("text", 0);
prop.put("page_text", 0); prop.put("error", 0);
prop.put("page_error", 0);
String username=(String)post.get("username"); String username=(String)post.get("username");
String pw=(String)post.get("password"); String pw=(String)post.get("password");
String pw2=(String)post.get("password2"); String pw2=(String)post.get("password2");
if(! pw.equals(pw2)){ if(! pw.equals(pw2)){
prop.put("page_error", 2); //PW does not match prop.put("error", 2); //PW does not match
return prop; return prop;
} }
String firstName=(String)post.get("firstname"); String firstName=(String)post.get("firstname");
@ -166,10 +164,10 @@ public class User_p {
try{ try{
entry=sb.userDB.createEntry(username, mem); entry=sb.userDB.createEntry(username, mem);
sb.userDB.addEntry(entry); sb.userDB.addEntry(entry);
prop.put("page_text_username", username); prop.put("text_username", username);
prop.put("page_text", 1); prop.put("text", 1);
}catch(IllegalArgumentException e){ }catch(IllegalArgumentException e){
prop.put("page_error", 3); prop.put("error", 3);
} }
@ -196,12 +194,12 @@ public class User_p {
}catch (IOException e){ }catch (IOException e){
} }
}else{ }else{
prop.put("page_error", 1); prop.put("error", 1);
} }
prop.put("page_text_username", username); prop.put("text_username", username);
prop.put("page_text", 2); prop.put("text", 2);
}//edit user }//edit user
prop.put("page_username", username); prop.put("username", username);
} }
//Generate Userlist //Generate Userlist
@ -209,10 +207,10 @@ public class User_p {
int numUsers=0; int numUsers=0;
while(it.hasNext()){ while(it.hasNext()){
entry = (userDB.Entry)it.next(); entry = (userDB.Entry)it.next();
prop.put("page_users_"+numUsers+"_user", entry.getUserName()); prop.put("users_"+numUsers+"_user", entry.getUserName());
numUsers++; numUsers++;
} }
prop.put("page_users", numUsers); prop.put("users", numUsers);
// return rewrite properties // return rewrite properties
return prop; return prop;

@ -5,12 +5,14 @@
#%env/templates/metas.template%# #%env/templates/metas.template%#
</head> </head>
<body> <body>
<br>
<h2>Index Creation</h2>
<br>
<div align="center"> <div align="center">
<table width="95%" border="1"> <h2>Wiki-Code</h2>
<caption>This table contains a short description of the tags that can be used in the Wiki and several other servlets of YaCy. For a more detailed description visit the <a href="http://www.yacy-websuche.de/wiki/index.php/Hauptseite">YaCy Wiki</a>.</caption> <table width="95%" border="1" cellspacing="0" cellpadding="4">
<caption>
This table contains a short description of the tags that can be used in the Wiki and several other servlets
of YaCy. For a more detailed description visit the
<a href="http://www.yacy-websuche.de/wiki/index.php/Hauptseite">YaCy Wiki</a>.
</caption>
<tr valign="top"> <tr valign="top">
<th> <th>
Code Code
@ -20,61 +22,65 @@
</th> </th>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
==headline1==<br />===headline2===<br />====headline3==== ==headline1==<br />===headline2===<br />====headline3====
</td> </td>
<td> <td>
This tags create headlines. If a page has three or more headlines, a directory will be created automaticly. These tags create headlines. If a page has three or more headlines, a directory will be created automaticly.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
''text''<br />'''text'''<br />'''''text''''' ''text''<br />'''text'''<br />'''''text'''''
</td> </td>
<td> <td>
This tags create stressed texts. Most browsers will display the texts in italics, bold, and a combination of both. These tags create stressed texts. The first pair emphasizes the text (most browsers will display it in italics),
the second one emphazises it more strongly (i.e. bold) and the last tags create a combination of both.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
:text<br>::text :text<br>::text
</td> </td>
<td> <td>
Lines will be indented. This tag is supposed to mark citations. Lines will be indented. This tag is supposed to mark citations, but may as well be used for styling purposes.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
#point1<br />##point1.1<br />##point1.2<br />#point2 #point1<br />##point1.1<br />##point1.2<br />#point2
</td> </td>
<td> <td>
This tags create a numbered list. These tags create a numbered list.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
*something<br />**another thing<br />***and yet another<br />*something else *something<br />**another thing<br />***and yet another<br />*something else
</td> </td>
<td> <td>
This tags create a unnumbered list. These tags create a unnumbered list.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
;word 1:definition 1<br />;word 2:definition 2<br />;;word 3:definition 3<br />;word 4:definition 4 <nobr class="tt">;word 1:definition 1</nobr><br />
<nobr class="tt">;word 2:definition 2</nobr><br />
<nobr class="tt">;;word 3:definition 3</nobr><br />
<nobr class="tt">;word 4:definition 4</nobr>
</td> </td>
<td> <td>
This tags create a definition list. These tags create a definition list.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
---- ----
</td> </td>
<td> <td>
@ -83,8 +89,9 @@
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
[[pagename]]<br />[[pagename|description]] <nobr class="tt">[[pagename]]</nobr><br />
<nobr class="tt">[[pagename|description]]</nobr>
</td> </td>
<td> <td>
This tag creates links to other pages of the wiki. This tag creates links to other pages of the wiki.
@ -92,7 +99,7 @@
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
[url]<br />[url description] [url]<br />[url description]
</td> </td>
<td> <td>
@ -101,8 +108,10 @@
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
[[Image:url]]<br />[[Image:url|alt text]]<br />[[Image:url|align|alt text]] <nobr class="tt">[[Image:url]]</nobr><br />
<nobr class="tt">[[Image:url|alt text]]</nobr><br />
<nobr class="tt">[[Image:url|align|alt text]]</nobr>
</td> </td>
<td> <td>
This tag displays an image, it can be aligned left, right or center. This tag displays an image, it can be aligned left, right or center.
@ -110,34 +119,41 @@
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
{|<br />|-<br />||row 1, col 1||row 1, col 2<br />|-<br />||row 2, col 1||row 2, col 2<br />|} {|<br />
|-<br />
<nobr class="tt">||row 1, col 1||row 1, col 2</nobr><br />
|-<br />
<nobr class="tt">||row 2, col 1||row 2, col 2</nobr><br />
|}
</td> </td>
<td> <td>
This tags create a table. These tags create a table, whereas the first marks the beginning of the table, the second starts
a new line, the third and fourth each create a new cell in the line. The last displayed tag closes
the table.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
[= text =] [= text =]
</td> </td>
<td> <td>
The escape tags will cause all tags in the text between the starting and the closing tag to not be treated as regular text. The escape tags will cause all tags in the text between the starting and the closing tag to not be treated as wiki-code.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
&lt;pre&gt; text &lt;/pre&gt; &lt;pre&gt; text &lt;/pre&gt;
</td> </td>
<td> <td>
A text between this tags will keep all the spaces and linebreaks in it. Great for ASCII-art and program code. A text between these tags will keep all the spaces and linebreaks in it. Great for ASCII-art and program code.
</td> </td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td> <td class="tt">
text<br />&nbsp;text<br />text text<br />&nbsp;text<br />text
</td> </td>
<td> <td>

Loading…
Cancel
Save