[dw-free] Brainstorm thread for how to handle different problems with printing stylesheets
[commit: http://hg.dwscoalition.org/dw-free/rev/0f9e42f655bc]
http://bugs.dwscoalition.org/show_bug.cgi?id=1611
Change the way default stylesheets are printed. Gives more flexibility in
when to print the ones from the layout, when to print from theme, etc.
Patch by
afuna.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1611
Change the way default stylesheets are printed. Gives more flexibility in
when to print the ones from the layout, when to print from theme, etc.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/s2layers/core2.s2
-------------------------------------------------------------------------------- diff -r 8a852af3fbac -r 0f9e42f655bc bin/upgrading/s2layers/core2.s2 --- a/bin/upgrading/s2layers/core2.s2 Sun Sep 13 04:39:19 2009 +0000 +++ b/bin/upgrading/s2layers/core2.s2 Sun Sep 13 04:44:38 2009 +0000 @@ -596,8 +596,11 @@ class Page function print_stylesheets "Prints all defined stylesheets, including default and user-defined ones."; + function print_default_stylesheets + "Prints stylesheets defined by the layout, including any additional CSS defined by the theme."; + function print_default_stylesheet - "Prints the default stylesheet."; + "Prints the layout's base default stylesheet."; function builtin print_trusted(string key) "Prints a trusted string by key."; @@ -1802,7 +1805,7 @@ set custom_colors_template = ""; ##=============================== property bool external_stylesheet { - des = "Use linked stylesheet"; + des = "Use links for external stylesheets"; note = "If true, a stylesheet link element will point to a file containing the layout's CSS data."; noui = 1; } @@ -1813,7 +1816,7 @@ property bool include_default_stylesheet } property string linked_stylesheet { - des = "Use an external stylesheet"; + des = "Custom stylesheet URL"; note = "If you have a custom external stylesheet that you'd like to use, enter its URL here."; } @@ -2843,21 +2846,27 @@ function Page::print_default_stylesheet( """</style>\n"""; } +function Page::print_default_stylesheets() +"Contains the layout and theme default stylesheets. Themes and child layouts may use this to disable the printing of the layout's base default stylesheet, or to add theme-specific CSS bits. May be overriden on a per-layout/theme basis" +{ + $this->print_default_stylesheet(); + if ($*external_stylesheet) { + println safe """<link rel="stylesheet" href="$.stylesheet_url" type="text/css" />"""; + } + else { + println """<style type="text/css">"""; + start_css(); + print_stylesheet(); + end_css(); + println """</style>"""; + } +} + function Page::print_stylesheets() "If you have specific CSS to code onto all themes using this layout, override print_default_stylesheet. If you have specific CSS to code into this theme, set the external_stylesheet property or override the print_stylesheet function. An end user can choose to link to an off-site stylesheet using the linked_stylesheet property and/or use the custom_css property. Overriding this function is NOT RECOMMENDED. Overriding this function could prevent sitewide improvements to styles, accessibility, or other functionality from operating in your layout." { if ($*include_default_stylesheet) { - $this->print_default_stylesheet(); - if ($*external_stylesheet) { - println safe """<link rel="stylesheet" href="$.stylesheet_url" type="text/css" />"""; - } - else { - println """<style type="text/css">"""; - start_css(); - print_stylesheet(); - end_css(); - println """</style>"""; - } + $this->print_default_stylesheets(); } if ($*linked_stylesheet != "") { --------------------------------------------------------------------------------