回声洞 可海星

{
cursor:wate
}

<script defer>

/**

  • 搬运须知: 您必须在**显眼处**标识来源“MCBBS Wiki”与作者“Salt_lovely”, **不**接受任何形式的简称或不署名。
  • Notice: You have to mark origin "MCBBS Wiki" and author "Salt_lovely" in CONSPICUOS PLACE, abbreviation or omissions are NOT allowed.
  • 许可证: CC BY-NC-SA 4.0
  • License: CC BY-NC-SA 4.0
  • /

(function () {

   function main() {
       let ps = pageState() // 获取页面状态
       let elems = HTMLElemsFliter(Array.from(document.querySelectorAll('.salt.InPageCSSLoader')))
       if (elems.length < 1) { console.log('[SaltInPageCSSLoader]未检测到页内CSS'); return } else { console.log('[SaltInPageCSSLoader]检测到页内CSS, 共计' + elems.length + '个') }
       for (let el of elems) {
           // 去除标记
           el.classList.remove('InPageCSSLoader')
           let toolbar = el.querySelector('.toolbar') // Prism处理
           if (toolbar) { toolbar.remove() } // Prism处理
           // 内容简单处理
           let text = (el.textContent || ).replace(/^\n+|\n+$/gm, ) // 去除首尾的空行
           el.textContent = text
           let handler = () => {
               // 处理这个元素
               el.style.display = 'none'
               // 开始主要内容部分
               // 简单的查错
               if (text.length < 3 || text.indexOf('{') == -1 || text.indexOf('}') == -1) {
                   highlightEl(el, '检测到不可用的CSS')
                   console.log('[SaltInPageCSSLoader]检测到不可用的CSS:' + text)
                   return
               }
               // 写入style
               let style = document.createElement('style')
               style.textContent = text
               // 搬运id
               if (el.hasAttribute('id')) {
                   style.setAttribute('id', el.getAttribute('id'))
                   el.removeAttribute('id')
               }
               document.head.appendChild(style)
           }
           if (ps == 0) {
               handler()
           } else { // 页面编写者模式
               highlightEl(el, '点击应用CSS(页面编写完毕后CSS将默认启用)')
               el.addEventListener('click', handler)
           }
           el.style.whiteSpace = 'pre'
       }
       /**滤出数组中所有HTMLElement */
       function HTMLElemsFliter(els) {
           let hel = []
           for (let el of els)
               if (el instanceof HTMLElement)
                   hel.push(el)
           return hel
       }
       /** 0 - 默认, 浏览页面
        * 
        *  1 - 编辑/预览页面 */
       function pageState() {
           if (typeof mw != 'undefined' && typeof mw.config != 'undefined' && typeof mw.config.get == 'function') {
               switch (mw.config.get('wgAction')) {
                   case 'view':
                       return 0
                   case 'edit':
                   case 'submit':
                       return 1
                   default:
                       return 0
               }
           } else {
               return 0
           }
       }
       /**高亮一个元素 */
       function highlightEl(el, title = ) {
           el.style.display = 'block'
           el.style.fontSize = '1rem'
           el.style.color = 'crimson'
           el.style.border = '1px solid crimson'
           el.style.paddingLeft = '.5rem'
           el.title = title
       }
   }
   if (document.readyState == 'loading') {
       document.addEventListener('DOMContentLoaded', main)
   } else {
       main()
   }

})()

</script>