Changeset 1862
- Timestamp:
- 2008-04-01 11:14:57 (4 months ago)
- Files:
-
- 1 modified
-
MediaWiki/trunk/plugins/mediawiki/fckplugin.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
MediaWiki/trunk/plugins/mediawiki/fckplugin.js
r1861 r1862 234 234 case 'ol' : 235 235 case 'ul' : 236 var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li' ) ;236 var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li', 'dl', 'dt', 'dd' ) ; 237 237 238 238 this._AppendChildNodes( htmlNode, stringBuilder, prefix ) ; … … 246 246 case 'li' : 247 247 248 var listPrefix = '' ; 248 if( stringBuilder.length > 1) 249 { 250 var sLastStr = stringBuilder[ stringBuilder.length - 1 ] ; 251 if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*") 252 stringBuilder.push( '\n' + prefix ) ; 253 } 254 249 255 var parent = htmlNode.parentNode ; 250 256 var listType = "#" ; 257 251 258 while ( parent ) 252 259 { 253 260 if ( parent.nodeName.toLowerCase() == 'ul' ) 254 listPrefix = '*' + listPrefix ; 261 { 262 listType = "*" ; 263 break ; 264 } 255 265 else if ( parent.nodeName.toLowerCase() == 'ol' ) 256 listPrefix = '#' + listPrefix ; 257 else if ( parent.nodeName.toLowerCase() == 'dt' ) 258 listPrefix = ';' + listPrefix ; 259 else if ( parent.nodeName.toLowerCase() == 'dd' ) 260 listPrefix = ':' + listPrefix ; 266 { 267 listType = "#" ; 268 break ; 269 } 261 270 else if ( parent.nodeName.toLowerCase() != 'li' ) 262 271 break ; … … 264 273 parent = parent.parentNode ; 265 274 } 266 267 var sChildTag = '' ; 268 269 if ( htmlNode.childNodes.length == 1 && htmlNode.childNodes[0].tagName ) 270 sChildTag = htmlNode.childNodes[0].tagName.toLowerCase(); 271 else if ( htmlNode.childNodes.length == 2 && htmlNode.childNodes[1].nodeType == 3 && htmlNode.childNodes[1].nodeValue == "\n") 272 sChildTag = htmlNode.childNodes[0].tagName.toLowerCase(); 273 274 var sbLen = stringBuilder.length ; 275 if (sChildTag != 'ul' && sChildTag != 'ol') 276 { 277 if ( sbLen > 1 && stringBuilder[ sbLen - 1 ] != "*" && stringBuilder[ sbLen - 1 ] != "#") { 278 stringBuilder.push( '\n' ) ; 279 } 280 stringBuilder.push( listPrefix ) ; 281 stringBuilder.push( ' ' ) ; 282 } 283 this._AppendChildNodes( htmlNode, stringBuilder, listPrefix ) ; 284 275 276 stringBuilder.push( listType ) ; 277 this._AppendChildNodes( htmlNode, stringBuilder, prefix + listType ) ; 278 285 279 break ; 286 280 … … 316 310 317 311 case 'dl' : 312 318 313 this._AppendChildNodes( htmlNode, stringBuilder, prefix ) ; 319 var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li', 'dl', 'dd' ) ;320 if ( isFirstLevel)314 var isFirstLevel = !htmlNode.parentNode.nodeName.IEquals( 'ul', 'ol', 'li', 'dl', 'dd', 'dt' ) ; 315 if ( isFirstLevel ) 321 316 stringBuilder.push( '\n') ; 317 322 318 break ; 323 319 324 320 case 'dt' : 325 if( stringBuilder.length > 1 && stringBuilder[ stringBuilder.length - 1 ] != ";" && stringBuilder[ stringBuilder.length - 1 ] != ":" ) 326 { 327 stringBuilder.push( '\n' + prefix ) ; 321 322 if( stringBuilder.length > 1) 323 { 324 var sLastStr = stringBuilder[ stringBuilder.length - 1 ] ; 325 if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*" ) 326 stringBuilder.push( '\n' + prefix ) ; 328 327 } 329 328 stringBuilder.push( ';' ) ; 330 this._AppendChildNodes( htmlNode, stringBuilder, prefix ) ; 329 this._AppendChildNodes( htmlNode, stringBuilder, prefix + ";") ; 330 331 331 break ; 332 332 333 333 case 'dd' : 334 if ( stringBuilder.length > 1 && stringBuilder[ stringBuilder.length - 1 ] != ":" ) 335 { 336 stringBuilder.push( '\n' + prefix ) ; 334 335 if( stringBuilder.length > 1) 336 { 337 var sLastStr = stringBuilder[ stringBuilder.length - 1 ] ; 338 if ( sLastStr != ";" && sLastStr != ":" && sLastStr != "#" && sLastStr != "*" ) 339 stringBuilder.push( '\n' + prefix ) ; 337 340 } 338 341 stringBuilder.push( ':' ) ; 339 342 this._AppendChildNodes( htmlNode, stringBuilder, prefix + ":" ) ; 343 340 344 break ; 341 345