$.global_title
$.global_subtitle
# -*-s2-*-
## -- n e b u l a ! -- ######################################################
layerinfo type = "layout";
layerinfo name = "Nebula";
layerinfo redist_uniq = "nebula/layout";
layerinfo author_name = "jc";
layerinfo author_email = "jc@livejournal.com";
layerinfo des = "A simple but incredibly flexible design with sidebar, that can look as simple or as complicated as you like.";
layerinfo lang = "en";
## -- p r o p e r t i e s -- ################################################
propgroup colors = "Colors";
propgroup colors {
property Color col_weaker_fg {
des = "Default text color for the page";
note = "This only really affects the calendar strip, although it is used elsewhere. Text color on content areas is more important.";
}
property Color col_weak_fg {
des = "Text color on content areas";
}
property Color col_stronger_fg {
des = "Text color on headers";
}
property Color col_strong_fg {
des = "Text color on menus";
}
property Color col_neutral_fg {
des = "Text color on titles";
}
property Color col_cmtbarone_fg {
des = "Text color on comment bars";
}
property Color col_cmtbartwo_fg {
des = "Text color on alternating comment bars";
}
property Color col_cmtbarscrn_fg {
des = "Text color for screened comments";
}
property Color col_entry_link {
des = "Link color in entries";
}
property Color col_entry_vlink {
des = "Visited link color in entries";
}
property Color col_sidebar_link {
des = "Link color in sidebar";
}
property Color col_sidebar_vlink {
des = "Visited link color in sidebar";
}
property string img_delete { noui = 1; }
property string img_screen { noui = 1; }
property string img_unscreen { noui = 1; }
property string img_freeze { noui = 1; }
property string img_unfreeze { noui = 1; }
}
set col_weaker_fg = "#000000";
set col_weak_fg = "#ffffff";
set col_neutral_fg = "#550301";
set col_strong_fg = "#5b4b26";
set col_stronger_fg = "#5b4b26";
set col_cmtbarone_fg = "#ffffff";
set col_cmtbartwo_fg = "#ffffff";
set col_cmtbarscrn_fg = "#ffffff";
set col_sidebar_link = "#000000";
set col_entry_link = "#000000";
set col_entry_vlink = "#000000";
set col_sidebar_vlink = "#000000";
propgroup backgrounds = "Backgrounds";
propgroup backgrounds {
property Color col_weaker_bg {
des = "Default background color for the page";
}
property Color col_weak_bg {
des = "Background color on content areas";
}
property Color col_stronger_bg {
des = "Background color on headers";
}
property Color col_strong_bg {
des = "Background color on menus";
}
property Color col_neutral_bg {
des = "Background color on titles";
}
property Color col_entry_bg {
des = "Background color on entries";
}
property Color col_border {
des = "Color for content area borders";
note = "Content areas affected include sidebar boxes and the mini calendar.";
}
property string background_image
{
des = "Background image";
note = "URL to an image to be used for the page background (leave blank for none). Page texture won't be used if an image is defined.";
}
property string background_repeat {
des = "Background image repeat";
note = "This does not affect whether your background scrolls with the page. That option is coming up next.";
values = "repeat|Repeat|no-repeat|Don't repeat|repeat-x|Repeat across only|repeat-y|Repeat down only";
}
property string background_attachment {
des = "Should the background image scroll with the page?";
values = "scroll|Yes|fixed|No";
}
property string background_position {
des = "Background image position";
note = "Does not apply if background image is repeating in both directions.";
values = "center|Center|center left|Center-left|center right|Center-right|top|Top|top left|Top-left|top right|Top-right|bottom|Bottom|bottom left|Bottom-left|bottom right|Bottom-right|left|Left|right|Right";
}
set background_image = "";
set background_repeat = "repeat";
set background_position = "center";
set background_attachment = "scroll";
property string pres_txtr_bg {
des = "Texture to use for page background";
note = "Won't be used if a background image is defined above.";
values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
}
property string pres_txtr_h {
des = "Texture to use for page header";
values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
}
property string pres_txtr_c {
des = "Texture to use for main content areas";
values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
}
property Color col_cmtbarone_bg {
des = "Background color for comment bars";
}
property Color col_cmtbartwo_bg {
des = "Background color for alternating comment bars";
}
property Color col_cmtbarscrn_bg {
des = "Background color for screened comment bars";
}
}
set col_weaker_bg = "#effe8f";
set col_weak_bg = "#5b4b26";
set col_neutral_bg = "#000000";
set col_strong_bg = "#fbe46a";
set col_stronger_bg = "#fbe46a";
set col_cmtbarone_bg = "#e2c956";
set col_cmtbartwo_bg = "#afb13e";
set col_cmtbarscrn_bg = "#fcda3e";
set col_entry_bg = "#977e3b";
set col_border = "#000000";
propgroup fonts {
property string main_font {
des = "Preferred Font";
maxlength = 25;
size = 10;
example = "Arial";
note = "Leave blank for your browser's default font";
}
property string main_font_fallback {
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property string header_font
{
des = "Font for the top header box";
maxlength = 25;
size = 10;
example = "Arial";
note = "Leave blank for your browser's default font";
}
property string header_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property string header_font_size { noui = 1; }
property string content_font
{
des = "Font for the content boxes";
maxlength = 25;
size = 10;
example = "Arial";
note = "Leave blank for your browser's default font";
}
property string content_font_fallback { noui = 1; }
property string subheading_font
{
des = "Font for subheadings";
maxlength = 25;
size = 10;
example = "Arial";
note = "Leave blank for your browser's default font";
}
property string subheading_font_fallback { noui = 1; }
property string entryheading_font
{
des = "Font for entry headings";
maxlength = 25;
size = 10;
example = "Arial";
note = "Leave blank for your browser's default font";
}
property string entryheading_font_fallback { noui = 1; }
}
set main_font = "Georgia";
set main_font_fallback = "serif";
set header_font = "Georgia";
set header_font_fallback = "serif";
set header_font_size = "2em";
set content_font = "Georgia";
set content_font_fallback = "sans-serif";
set subheading_font = "Arial";
set subheading_font_fallback = "sans-serif";
set entryheading_font = "Georgia";
set entryheading_font_fallback = "sans-serif";
propgroup pres = "Presentation";
propgroup pres {
property int summary_items {
des = "Summary Items";
note="Maximum number of items in the Page Summary list. Set to 0 to turn off the Page Summary. Set to 100 to show all available items.";
}
property bool pres_show_entry_list {
des = "Show links to entries on page?";
}
property string pres_page_width {
des = "Page Width";
note = "The width of the total page content, including the sidebar.";
values = "90%|90%|80%|80%|70%|70%|60%|60%|50%|50%|40%|40%";
}
property string pres_page_align {
des = "Page Alignment";
values = "left|Left|center|Center|right|Right";
}
property string pres_sidebar_width {
des = "Sidebar Width";
note = "How much of the page width is taken up by the sidebar.";
values = "30%|30%|25%|25%|20%|20%|15%|15%";
}
property string pres_sidebar_align {
des = "Which side of the page should the sidebar show up on?";
values = "left|Left|right|Right";
}
property string header_image {
des = "URL of image to be used as page header";
example = "http://example.com/your_image.jpg";
}
property bool pres_show_cal {
des = "Show calendar strip on journal pages?";
}
property bool show_entry_userpic {
des = "Show entry-specific userpic next to each entry?";
}
property bool pres_use_gradients {
des = "Use gradients when displaying entry headers and sidebar boxes?";
}
property use comment_userpic_style;
property use use_shared_pic;
property use page_recent_items;
property use page_friends_items;
}
set show_entry_userpic = true;
set pres_show_cal = true;
set pres_sidebar_align = "left";
set pres_show_entry_list = true;
set pres_page_width = "80%";
set pres_sidebar_width = "20%";
set pres_txtr_bg = "none";
set pres_txtr_h = "none";
set pres_txtr_c = "none";
set pres_page_align = "center";
set summary_items = 100;
set pres_use_gradients = true;
propgroup text {
property string text_date_format {
des = "Date format:";
example = "%%yyyy%%.%%mm%%.%%dd%%";
}
property string text_time_format {
des = "Time format:";
example = "%%HH%%:%%min%%";
}
property string text_navigation {
des = "Navigation menu title";
}
property string text_navigation_extra {
des = "Page-specific navigation menu title";
example = "This page";
}
property string page_summary_title {
des = "Page Summary menu title";
}
property string text_entry_plural {
des = "Text to describe entries in month view";
format = "plurals";
example = "1 entry // # entries";
}
property use text_nosubject;
property use text_meta_mood;
property use text_meta_music;
property use text_noentries_day;
property use text_max_comments;
property string text_comment_from {
des = "Text to indicate when comment was posted";
example = "at";
maxlength = "20";
}
property use text_comment_date;
property use text_comment_ipaddr;
property use text_comment_frozen;
property use text_reply_nocomments_header;
property use text_reply_nocomments;
}
propgroup linktext = "Link text";
propgroup linktext {
property string text_view_memories {
des = "View memories";
}
property string text_add_mem {
des = "Add to memories";
}
property string text_edit_entry {
des = "Edit entry";
}
property string text_edit_tags {
des = "Edit tags";
}
property use text_view_recent;
property use text_view_friends;
property use text_view_archive;
property use text_view_userinfo;
property use text_permalink;
property use text_post_comment;
property use text_read_comments;
property use text_post_comment_friends;
property use text_read_comments_friends;
property use text_reply_back;
property use text_comment_reply;
property use text_comment_parent;
property use text_comment_thread;
property string text_link_separator {
des = "Text or image to separate links with";
note = "If you use a URL of an image (starting with 'http://'), Nebula will use the image as a separator. It helps to use a small image for this purpose, and your image might break if the URL contains any spaces.";
example = " | or http://www.example.com/your_image.jpg";
}
}
set text_date_format = "%%yyyy%%.%%mm%%.%%dd%%";
set text_time_format = "%%HH%%:%%min%%";
set text_view_memories = "Memories";
set text_add_mem = "Add to Memories";
set page_summary_title = "Summary";
set text_entry_plural = "1 entry // # entries";
set text_edit_entry = "Edit";
set text_edit_tags = "Tags";
set tags_aware = true;
set text_link_separator = " ";
set text_navigation = "Navigation";
set text_navigation_extra = "This page";
set text_comment_from = "";
set text_comment_date = "at";
## -- p r o p e r t y h a n d l e r s -- ##################################
function prop_init () {
var int entry_lightness = $*col_weaker_bg->lightness();
var Color col_entry_bg_tint = $entry_lightness > 120 ? $*col_weaker_bg->lighter(): $*col_weaker_fg;
# these shouldn't be limited to a The Boxer subfolder
$*img_delete = palimg_tint("boxer/delete.gif", $col_entry_bg_tint);
$*img_screen = palimg_tint("boxer/screen.gif", $col_entry_bg_tint);
$*img_unscreen = palimg_tint("boxer/unscreen.gif", $col_entry_bg_tint);
$*img_freeze = palimg_tint("boxer/freeze.gif", $col_entry_bg_tint);
$*img_unfreeze = palimg_tint("boxer/unfreeze.gif", $col_entry_bg_tint);
# textures! lovely textures.
if ($*pres_txtr_bg != "none") { $*pres_txtr_bg = palimg_tint("textures/$*pres_txtr_bg", $*col_stronger_fg, $*col_weaker_bg); }
var Color hfg = "#ffffff";
if ($*pres_txtr_h != "none") { $*pres_txtr_h = palimg_tint("textures/$*pres_txtr_h", $hfg, $*col_stronger_bg); }
if ($*pres_txtr_c != "none") { $*pres_txtr_c = palimg_tint("textures/$*pres_txtr_c", $*col_weaker_fg, $*col_weak_bg); }
}
## -- s t y l e s h e e t f u n c t i o n s -- ############################
function appended_to_stylesheet() {
# This function intentionally left blank. Override in user layer.
}
function print_stylesheet () {
var string pres_sidebar_boxbg;
var string pres_minical_boxbg;
var string pres_page_margins;
# figure out the shade applied to weekends on the MiniCal
var int minical_lightness = $*col_strong_bg->lightness();
var Color col_minical_weekend = $minical_lightness > 120 ? $*col_strong_bg->darker(50) : $*col_strong_bg->lighter(50);
# figuring out the widths and margins the ghetto way
var int width_page = int($*pres_page_width);
var int width_sidebar = int($*pres_sidebar_width);
var int width_content = $width_page - $width_sidebar - 5;
var int width_margin = 100 - $width_page;
if ($*pres_page_align == "center") {
var string str_width_margin = string($width_margin / 2);
$pres_page_margins = "margin-left: $str_width_margin%;";
} else {
var string str_width_margin = string($width_margin);
$pres_page_margins = "margin-$*pres_page_align: $str_width_margin%;";
}
var string pres_content_width = string($width_content) + "%";
# death to IE
var string pres_sidebar_width_ie = string($width_sidebar - 3) + "%";
var string pres_content_width_ie = string($width_content - 3) + "%";
# another ghetto method to align the sidebar properly
var string pres_sidebar_opp = $*pres_sidebar_align == "left" ? "right" : "left";
# gradients! lovely gradients.
if ($*pres_use_gradients) {
var Color col_black = "#000000";
var Color col_white = "#ffffff";
# Let's determine some colours first
var int tmp_boxborder_lightness = $*col_border->lightness();
var Color tmp_boxborder_avg = $tmp_boxborder_lightness > 120 ? $*col_border->darker(70) : $*col_border->lighter(70);
var string tmp_gstart = $tmp_boxborder_avg.as_string->substr(1, 6);
var string tmp_gend = $*col_strong_bg.as_string->substr(1, 6);
# Now to generate the gradients
$pres_sidebar_boxbg = "background: url($*PALIMGROOT/shadow/t.gif/pt$tmp_gstart$tmp_gend) repeat-x;";
$pres_minical_boxbg = "background: $*col_strong_bg url($*PALIMGROOT/shadow/b.gif/pt$tmp_gstart$tmp_gend) repeat-x scroll bottom;";
} else {
$pres_minical_boxbg = "background-color: $*col_strong_bg;";
}
"""
body {
margin: 0;
padding: 0;
font-family: $*main_font, $*main_font_fallback;
font-size: 0.75em;
""";
if (clean_url($*background_image) != "") {
""" background-image: url('$*background_image');
background-position: $*background_position;
background-repeat: $*background_repeat;
background-attachment: $*background_attachment;
""";
} elseif ($*pres_txtr_bg != "none") { """ background: url($*pres_txtr_bg);"""; }
"""
background-color: $*col_weaker_bg;
color: $*col_weaker_fg;
}
#mainContainer {
width: $*pres_page_width;
$pres_page_margins
min-width: 300px;
}
#header {
padding: 0 1em;
min-height: 110px;
margin: 0 0 10px 0;
""";
if ($*pres_txtr_h != "none") { """ background: url($*pres_txtr_h);"""; }
"""
background-color: $*col_stronger_bg;
color: $*col_stronger_fg;
}
#header h1 {
margin: 0 0 -10px 0;
padding: 15px 0;
}
#header a {
font-family: $*header_font, $*header_font_fallback;
font-size: $*header_font_size;
text-decoration: none;
color: $*col_stronger_fg;
}
#header p {
color: $*col_neutral_fg;
font-size: 18px;
font-style: italic;
margin: 0 0 0 20px;
}
#content {
float: $pres_sidebar_opp;
background-color: $*col_weak_bg;
color: $*col_weak_fg;
padding: 5px;
margin: 20px 1% 20px 1%;
""";
if ($*pres_txtr_c != "none") { """ background: url($*pres_txtr_c);"""; }
"""
width: $pres_content_width;
voice-family: "\"}\"";
voice-family:inherit;
width: $pres_content_width_ie;
}
html>body #content {
width: $pres_content_width_ie;
}
#content p {
margin-top: 0px;
margin-bottom: 0px;
padding: 8px;
}
#sideBar {
float: $*pres_sidebar_align;
padding: 5px;
margin: 20px 1% 20px 1%;
background-color: $*col_weak_bg;
color: $*col_weak_fg;
""";
if ($*pres_txtr_c != "none") { """background: url($*pres_txtr_c);"""; }
"""
width: $*pres_sidebar_width;
voice-family: "\"}\"";
voice-family:inherit;
width: $pres_sidebar_width_ie;
}
html>body #sideBar {
width: $pres_sidebar_width_ie;
}
#sideBarHeader {
min-height: 100px;
background-color: $*col_stronger_bg;
color: $*col_stronger_fg;
""";
if ($*pres_txtr_h != "none") { """background: url($*pres_txtr_h);"""; }
"""
vertical-align: bottom;
margin-bottom: 10px;
}
#sideBar h4 {
color: $*col_neutral_fg;
text-transform: uppercase;
font-weight: normal;
font-family: $*subheading_font, $*subheading_font_fallback;
display: block;
text-align: center;
padding: 5px;
padding-bottom: 0;
$pres_sidebar_boxbg
}
#sideBar ul {
margin: 0 0 1em 1em;
padding: 0;
list-style-type: none;
}
.sideBarBox {
border: 2px solid $*col_border;
margin-bottom: 5px;
background-color: $*col_strong_bg;
color: $*col_strong_fg;
}
.sideBarBox a, .sideBarBox a:active {
color: $*col_sidebar_link;
}
.sideBarBox a:visited {
color: $*col_sidebar_vlink;
}
.sideBarBox h5 {
font-family: $*subheading_font, $*subheading_font_fallback;
margin: 10px 0 0 0;
}
.sideBarUpi {
margin: 0;
padding: 2px;
}
.entry {
padding: 5px;
background-color: $*col_entry_bg;
font-family: $*content_font, $*content_font_fallback;
}
.entry a {
color: $*col_entry_link;
}
.entry a:visited {
color: $*col_entry_vlink;
}
.entry h3 {
font-family: $*entryheading_font, $*entryheading_font_fallback;
font-size: 1.5em;
padding: 3px;
margin: 10px 0;
}
.entryBar {
clear: both;
overflow: auto;
font-size: 0.9em;
}
.entryText {
margin-top: 5px;
margin-bottom: 5px;
}
.entryFooter {
padding-top: 1em;
}
.commentsInfo {
float: right;
}
form#postform textarea {
width: 100%; max-width: 99%;
}
form#postform input {
max-width: 100%;
}
.commentBoxOne {
border: 5px solid $*col_cmtbarone_bg;
}
.commentBoxTwo {
border: 5px solid $*col_cmtbartwo_bg;
}
.commentBoxScreened {
border: 5px solid $*col_cmtbarscrn_bg;
}
.commentBoxOne .commentInfo {
background-color: $*col_cmtbarone_bg;
color: $*col_cmtbarone_fg;
}
.commentBoxTwo .commentInfo {
background-color: $*col_cmtbartwo_bg;
color: $*col_cmtbartwo_fg;
}
.commentBoxScreened .commentInfo {
background-color: $*col_cmtbarscrn_bg;
color: $*col_cmtbarscrn_fg;
}
.commentBoxOne, .commentBoxTwo, .commentBoxScreened {
background-color: $*col_weak_bg;
color: $*col_weak_fg;
border-right: none;
border-bottom: none;
width: 99%;
}
.commentBoxOne a, .commentBoxTwo a, .commentBoxScreened a {
color: $*col_entry_link;
}
.commentBoxOne a:visited, .commentBoxTwo a:visited, .commentBoxScreened a:visited {
color: $*col_entry_vlink;
}
.commentUpi {
float: left;
margin-right: 10px;
margin-bottom: 10px;
}
.commentUpi img {
border: 0;
}
.commentInfo {
width: 100%;
vertical-align: bottom;
padding-botttom: 5px;
background-color: #ccf;
}
.commentButs {
vertical-align: bottom;
text-align: right;
}
.commentText {
padding-top: 5px;
padding-left: 5px;
}
.commentLinks {
clear: both;
margin-left: 5px;
}
#footer {
float: left;
width: """+$pres_content_width+"""px;
font-size: 0.8em;
margin-top: 10px;
margin-bottom: 10px;
}
h2, h3, h4 {
margin-top: 0;
}
a {
color: $*col_entry_link;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:visited {
color: $*col_entry_vlink;
}
.userpic {
float: right;
margin-left: 5px;
margin-bottom: 5px;
}
div.entrysub h3 {
margin: 0;
}
div.MiniCalContainer {
border: 2px solid $*col_border;
width: 98%;
height: 3em;
overflow: auto;
margin-top: 10px;
margin-left: 1%;
$pres_minical_boxbg
}
.MiniCalDayPosts {
font-weight: bold;
}
td.MiniCalWeekend {
background-color: $col_minical_weekend;
}
td.MiniCalDay, td.MiniCalDayPosts {
font-family: Trebuchet, Verdana, sans-serif;
font-size: 0.95em;
color: $*col_strong_fg;
}
.MiniCalDay a, .MiniCalDay a:active, .MiniCalDayPosts a, .MiniCalDayPosts a:active {
color: $*col_sidebar_link;
}
.MiniCalDay a:visited, .MiniCalDayPosts a:visited {
color: $*col_sidebar_vlink;
}
.monthWrapper {
display: table;
border: 1px solid black;
width: 100%;
}
.monthRow {
display: table-row;
border: 1px solid black;
}
.monthCell, .monthDay {
display: table-cell;
border: 1px solid black;
padding: 3px;
}
.monthDay {
font-family: $*subheading_font, $*subheading_font_fallback;
font-size: 2em;
text-align: right;
}
#cal a {
text-decoration: none;
color: $*col_entry_link;
}
.calrow {
clear: both;
font-family: Arial, sans-serif;
}
.calempty {
width: 24px;
font-size: 11px;
margin: 1px;
float: left;
}
.calactitem {
float: left;
margin: 1px;
width: 23px;
font-size: 11px;
text-align: center;
background-color: white;
border-right: 1px solid black;
border-bottom: 1px solid black;
}
.calDayEntries {
font-size: 1.5em;
font-weight: bold;
}
.calDay, .calDayEntries, .bigday {
font-family: $*subheading_font, $*subheading_font_fallback;
text-align: center;
vertical-align: middle;
}
.bigday {
font-weight: bold;
}
.cal td {
padding: 3px;
}
.calinitem {
float: left;
margin: 1px;
width: 23px;
font-size: 11px;
text-align: center;
border-right: 1px solid black;
border-bottom: 1px solid black;
}
""";
appended_to_stylesheet();
}
## -- i m a g e l i n k s e p a r a t o r -- ############################
function separator() : string {
# Would do this in prop_init, except you can't use HTML in
# $* variables. Poo.
if ($*text_link_separator->starts_with("http://")) {
return " ";
} else {
return $*text_link_separator;
}
}
## -- p r i n t l i n k l i s t -- ########################################
function linklist() : string {
var string return = "";
var Page p = get_page();
if (size $p.linklist <= 0) {
return "";
}
var bool section_open = false;
$return = $return + "
$month | """; var YearWeek[] theWeeks = $m.weeks; foreach var YearWeek w ($theWeeks) { var YearDay[] theDays = $w.days; var int start = $w.pre_empty; foreach var YearDay d ($theDays) { $start = $start + 1; $calendar = $calendar + "\n""" + $d.day->zeropad(2) + " | "; } else { $calendar = $calendar + """MiniCalDay">""" + $d.day->zeropad(2) + ""; } } } $calendar = $calendar + "\n
$.global_subtitle
$*lang_dayname_short[$d] |
""";
}
"""