@@ -17,7 +17,7 @@ exports.synchronous = true;
1717
1818// Default story and history lists
1919var PAGE_TITLE_TITLE = "$:/core/wiki/title" ;
20- var ROOT_STYLESHEET_TITLE = "$:/core/ui/RootStylesheet " ;
20+ var PAGE_STYLESHEET_TITLE = "$:/core/ui/PageStylesheet " ;
2121var PAGE_TEMPLATE_TITLE = "$:/core/ui/RootTemplate" ;
2222
2323// Time (in ms) that we defer refreshing changes to draft tiddlers
@@ -44,13 +44,22 @@ exports.startup = function() {
4444 publishTitle ( ) ;
4545 }
4646 } ) ;
47-
48- var styleParser = $tw . wiki . parseTiddler ( ROOT_STYLESHEET_TITLE , { parseAsInline : true } ) ,
49- styleWidgetNode = $tw . wiki . makeWidget ( styleParser , { document : document } ) ;
50- styleWidgetNode . render ( document . head , null ) ;
51-
47+ // Set up the styles
48+ $tw . styleWidgetNode = $tw . wiki . makeTranscludeWidget ( PAGE_STYLESHEET_TITLE , { document : $tw . fakeDocument } ) ;
49+ $tw . styleContainer = $tw . fakeDocument . createElement ( "style" ) ;
50+ $tw . styleWidgetNode . render ( $tw . styleContainer , null ) ;
51+ $tw . styleWidgetNode . assignedStyles = $tw . styleContainer . textContent ;
52+ $tw . styleElement = document . createElement ( "style" ) ;
53+ $tw . styleElement . innerHTML = $tw . styleWidgetNode . assignedStyles ;
54+ document . head . insertBefore ( $tw . styleElement , document . head . firstChild ) ;
5255 $tw . wiki . addEventListener ( "change" , $tw . perf . report ( "styleRefresh" , function ( changes ) {
53- styleWidgetNode . refresh ( changes , document . head , null ) ;
56+ if ( $tw . styleWidgetNode . refresh ( changes , $tw . styleContainer , null ) ) {
57+ var newStyles = $tw . styleContainer . textContent ;
58+ if ( newStyles !== $tw . styleWidgetNode . assignedStyles ) {
59+ $tw . styleWidgetNode . assignedStyles = newStyles ;
60+ $tw . styleElement . innerHTML = $tw . styleWidgetNode . assignedStyles ;
61+ }
62+ }
5463 } ) ) ;
5564 // Display the $:/core/ui/PageTemplate tiddler to kick off the display
5665 $tw . perf . report ( "mainRender" , function ( ) {
@@ -59,7 +68,7 @@ exports.startup = function() {
5968 $tw . utils . addClass ( $tw . pageContainer , "tc-page-container-wrapper" ) ;
6069 document . body . insertBefore ( $tw . pageContainer , document . body . firstChild ) ;
6170 $tw . pageWidgetNode . render ( $tw . pageContainer , null ) ;
62- $tw . hooks . invokeHook ( "th-page-refreshed" ) ;
71+ $tw . hooks . invokeHook ( "th-page-refreshed" ) ;
6372 } ) ( ) ;
6473 // Remove any splash screen elements
6574 var removeList = document . querySelectorAll ( ".tc-remove-when-wiki-loaded" ) ;
0 commit comments