1. S1 Introduction

In LiveJournal there are different view modes. The most commonly used is named “lastn”. The “lastn” view displays the last n number of entries in a journal. Additionally, there is a calendar view, a day view, and a friends view. Our system lets users pick a base style for each mode, and override individual elements of the style to suit them.

To better explain how things work, let's walk through things step by step, from the perspective of different users, explaining what's going on behind the scenes….

The casual user….  The casual user knows little, if anything, about programming. They just want to get their journal up and running quickly, and they want it to look pretty. The casual user has a variety of pre-made styles to choose from. The pre-made styles define a bunch of variables used internally by the LiveJournal backend, which generates the pages. Users will see styles' names like “Clean and Simple”, “Magazine”, and “Notepad”, then be able to specify their colors for that layout (“style”). Behind the scenes the server will load the user's record, see they have selected style ID# 1043, and pre-load all the variables necessary to make the page look a particular way.

The advanced user….  The advanced user will probably start out as a casual user. Over time they will grow annoyed with a particular thing about their journal pages. The “overrides” section will let these advanced users research the variables that control the page layout and then redefine as much or as little as they want, without having to re-create their own style from scratch. In time, the user may get really good at the system and just make their own style.

Terminology

Variables

A variable is something that a style defines (and that a user can override). It is one of:

  1. A page setup option, like how many items to show, how to sort something, or the format of dates and times.

  2. Some HTML that the page construction engine will use to make the page, with properties that it will fill in.

Properties

A property is something that the server will generate (usually based on other variables) and pre-fill into your variables. Properties are mixed in variables like %%property%% and will be replaced by what they represent before being sent to users' web browsers.