An Introduction to Siteserver
Siteserver is a website content management systm written by Neil Gershenfeld to
handle the websites around the Center for Bits and Atoms and the FabLab
network. It may not work quite like what you're used to, but once you get used
to it it's easy. The intent of this introduction is to point out the basics
for use, and some quirks to watch out for.
Table of contents:
* Tour of the SiteServer Interface
* Building Websites
* Editing Guru Content
* Getting Help
See also:
* Minimalistic html tutorial
* Fab Tools
* Git tutorial
A Tour of the SiteServer Interface
Go to the content edit page. Ask someone who knows; for security we
won't post a URL in this tutorial. After entering the password, You
should see something like this:
Parts
1. Git Control
The first line concerns connecting siteserver with git repositories.
You can safely ignore it for now, or see the git tutorial
for more on using git with siteserver.
2. Directories
The next section involves directory control.
Most of this is obvious once you get the terminology - "parent"
directory is the one above you, "child" directories are those in the
current directory. It makes sense to organize your websites into
directories so you don't get lost in a huge list of files.
Things to know:
* The text entry fields are executed by pressing enter. For example,
to create a directory, type its name in "create directory" and press
enter.
* "Move" is the same as "rename". To rename a directory, type its new name
in the "Move" field and press enter.
* You can't delete a directory unless it is empty - so view it and delete
its contents first.
3. Files
Lastly, there is the file list:
As you can see, there is only one file in this directory, named "index.html".
Things to know about files:
* To edit a file, click edit. This automatically creates a dummy file
called "[file_name]_is_being_edited.html" to warn you that someone is
editing the file. Clicking "save" after editing a file removes the
dummy file.
* Zip files are a convenient way to upload a lot of files at once.
Create zip files using software such as 7zip. Aftr uploading,
press the "extract" button next to the zip file.
Building a Website
In order to build a website, you must create html files. You can do this using
fancy html editors (such as OpenOffice.org), or by editing html by hand. For
minimalistic html editing, please see the minimalistic HTML tutorial.
Here are some basic concepts of website building that might help you create a
website:
index.html
index.html is a special name that webservers recognize as the thing to show
when a directory is viewed. For example, if I go to this URL:
http://fab.cba.mit.edu/content/tools/
the web server will actually display this page:
http://fab.cba.mit.edu/content/tools/index.html
So when you make your website, each directory you create should have a file
named "index.html" as the main page. If you don't include an
index.html file, you'll just see a list of files, and visitors won't know
which file to click to view your site.
Organization
Speaking of directories, it is a good idea to organize your website into
directories. For example, here is Charlie's directory layout for his
How to Make Almost Anything web page:
charlie/
|--- index.html Main page showing list of projects
|--- wk1/
| |--- index.html Page showing first week's assignment
| |--- wk1.png Picture displayed in first week's page
|
|--- wk2/
| |--- index.html Page showing second week's assignment
| |--- wk2.png Picture displayed in second week's page
| |--- wk2.cad Cad file from second week's assignment
|
...
|--- final/
|--- index.html Page showing final project
|--- asm
|--- file1.asm (lots of asm files, in their own directory
|--- file2.asm just to stay better organized)
|--- file3.asm
Linking: Relative vs. Absolute
There are two ways to specify the location of some file you're linking to:
using absolute links and relative links.
Absolute links point out where a file is explicitly, including "http" and
the website name like this:
http://fab.cba.mit.edu/content/tools/design/siteserver/siteserver_basic.png
Relative links point out where a file is relatively to the current file,
like this:
siteserver_basic.png
This is not only a lot less typing, but it is better practice to use when
building a website. That way, if the organization of your site changes
(say this page and its images were moved to /content/tools/design/web/ or
somthing), the links still work. If http://fab.cba.mit.edu changed its
url, the links would still work. In general, you should use relative
links wherever possible.
You can relatively link to parent directories using "..". For example, this
links to the parent directory:
<a href='..'>parent directory</a>
You can use this to link to other places in your website from child directories.
Charlie referenced other week's assignments in his class website like this:
<a href='../wk6/'>Week 6</a>
Updating Guru Content
So you're a Fab Guru, eh? Want to share your wealth of knowledge with the rest
of the Fab world? Fabulous. Siteserver makes it easy to edit and update the
content created by other Fab Gurus over the years.
First, hop on over to /content/tools to see what
other Fab Gurus have left.
To edit guru content:
1. Heed the organization
With so many gurus over so much time, it is important to keep things well
organized. Please take note of the organizational scheme in place, and
stick with it if your content fits well. But if you can improve the
organization, or if your content doesn't fit easily, feel free to improve
it! As of Jan. 2008, this is the basic layout:
content/tools/ Where all guru content lives
|
|--- machines/ Howtos on machines
|--- circuits/ Microcontrollers, cables, networking, etc.
|--- design/ Howtos for design tools (including this page!)
Pick a directory that your guru content fits into, and create a new folder
for it so things don't get cluttered. Follow best practices for website
design as outlined in the previous section.
2. Delete bad content
This website and everything in it is in a Git repository, so all changes
over time are maintained. Don't be shy about deleting, improving, removing,
or fixing bad, outdated, or just plain wrong content. It's better to have
no info than to have stale cruft -- but better yet, fix it! Let others learn
from your skillz.
3. Keep things in one place: here
Q. What happens data exists in two places at once?
A. One of the places will inevitably be out of date.
Lots of people have web spaces elsewhere, and it may be most convenient for
you to throw up pages there instead of here. However, webpages move, students
graduate, and content quickly expires and disappears. To ensure that your
content makes a lasting contribution to the fab network, please edit it and
maintain it here. You can and should link to these pages from your own
websites, but make sure the authoritative original content is on the fab site.
Getting Help
There are lots of fabulous folk who would be happy to help you with fab website
questions. Please see the following community resources:
http://www.fabfolk.com - Fab Lab Users
Fab Central - Forums and more
If you're in an MIT class, contact your professor, TAs, or class mailing list.
Bugs
If you encounter a bug in siteserver, please contact Neil Gershenfeld.