S2 (LiveJournal)


 * "S2" redirects here. For other uses, see S2 (disambiguation).

=General Information= S2 was invented as an answer to S1's lack of extensibility. It is officially known as Style System 2.

S2 is written in BML, which is a programming language based on other languages such as C, Java and Perl.

Paid, Permanent and Early Adopter users of LiveJournal can use the Advanced Customizations of S2 to alter the appearance of their journal. Basic and Plus users are left with the basic customizations.

kunzite1 and his minions in component_help have written up some awesome documentation that can be found here.

Revision #8425 can be found here. The live version can be found here.

=Layer Info=

=Properties Set=

=Properties Not Set=

=Global Functions=

=Classes=

=Array Keys=

Comment.link_keyseq[]

 * delete_comment
 * Delete Comment: Deletes the comment. Present if remote viewer is author of comment, author of entry, or owner or maintainer of the journal.


 * edit_comment
 * Edit Comment: Edits the comment. Present if remote viewer is author of comment, user is not flagged as "underage," user has cap 'edit_comments', and there are no replies to the comment.


 * expand_comments
 * Expand Comment Thread: Expands child comments.


 * freeze_thread
 * Freeze Thread: Disables replies to the comment and its children. Present if remote viewer is owner or maintainer of the journal.


 * screen_comment
 * Screen Comment: Makes comment only visible to author of comment, author of entry, and owner or maintainer of journal. Comment will be unscreened if replied to by owner of entry or owner or maintainer of journal.


 * unfreeze_thread
 * Unfreeze Thread


 * unscreen_comment
 * Unscreen Comment


 * unwatch_thread
 * Unwatch Thread


 * watch_thread
 * Watch Thread: Add comment thread to Message Center. Tracks replies to thread.


 * watching_parent
 * Watching Parent: Parent comment already in Message Center and thus watching this one too.

Comment.metadata{}

 * picture_keyword
 * Picture Keyword: Present if posted using non-default userpic.


 * poster_ip
 * IP Address of poster. Only present if IP logging is enabled and the remote viewer is the owner or maintainer of the journal.

Entry.link_keyseq[]

 * edit_entry
 * Edit Entry: Present if remote viewer is author of entry or owner or maintainer of journal.


 * edit_tags
 * Edit Tags: Present if remote viewer is owner or maintainer of journal or has tagging permissions.


 * flag
 * Flag: Logged-in viewers [...] can use the Flag icon on public entries to flag [an] entry [...] as Explicit Adult, Offensive Content, Hate Speech, [etc].


 * mem_add
 * Add to Memories: Present at all times. Might alter behavior to only be present if viewer is logged in.


 * nav_next
 * Next Entry: Not actually in the array, but a key nonetheless. Present at all times.  Provides a URL to  .  However,   is not smart enough to skip entries that the remote viewer does not have permission to see.


 * nav_prev
 * Previous Entry: Not actually in the array, but a key nonetheless. Present at all times.  Provides a URL to  .  However,   is not smart enough to skip entries that the remote viewer does not have permission to see.


 * tell_friend
 * Tell a Friend: Send an email to an address that provides a link to the entry.


 * watch_comments
 * Watch Comments: Track comments on this entry. Present if remote viewer has ability to use ESN.


 * unwatch_comments
 * Unwatch Comments: Stop tracking comments on this entry.

Entry.metadata{}

 * groups
 * Custom Friend Groups


 * location
 * Current Location


 * mood
 * Current Mood


 * music
 * Current Music

Page.data_link{}

 * atom
 * Atom Feed: Available on.


 * rss
 * RSS Feed: Available on.

Page.view_url{}

 * archive
 * Archive/Calendar:


 * friends
 * Friends' Entries:


 * recent
 * Recent Entries:


 * userinfo
 * User Info/Profile:

TagDetail.security_counts{}

 * friends
 * Number of friends-only/members-only entries


 * groups
 * Number of protected entries that are associated with a custom friend group


 * private
 * Number of private entries


 * public
 * Number of public entries

UserLite.data_link{}

 * foaf
 * FOAF File

UserLite.link_keyseq[]

 * add_friend
 * Add as Friend:


 * memories
 * Memories


 * nudge
 * Nudge


 * post_entry
 * Post using Web Update Form


 * search
 * Search journal using offsite search engine


 * tell_friend
 * Send an email to an address that provides a link to the journal.


 * todo
 * ToDo List

=Footnotes=
 * Not implemented in LJ S2.


 * Text taken from FAQ #281.