加载中...
网站发布平台方案
发表于:2009-09-27 | 分类: 网络应用 wordpress
字数统计: 2.1k | 阅读时长: 7分钟 | 阅读量:

网络需求模型之发布模型

从简单的发布到融合一些复杂元素–比如权限–的发布

个人发布型:博客

方便内容发布和分类管理,简单的权限控制可隐私或者公开,选择wordpress 评价其信息可靠性:采集导入和导出都方便,有很多格式

复杂型内容发布 CMS内容管理系统

公司发布等 drupal说是最好的,感觉有点复杂,操作都不符合常规习惯,已经尝试了两次了,算了 织梦有很多支持者,是有理由的,相对容易上手,但数据量大时候就速度慢的厉害,比如采集网页内容量大时就像死机一样,结果采集的内容也是空的 帝国 使用不方便 supersite听说比较好,但不是开源的 ,也没去尝试 尝试的累了,还是转回wordpress多做些挖掘吧,其实充分利用熟悉的Wordpress还是基本可以满足个人需求的,别再折腾浪费时间了

添加更多控制的发布型

针对较为明确的不同对象人群的权限控制,选择drupal 内容类型+content access方案为佳,分类作为内容组织形式,内容类型为权限控制锚 公司发布平台只限于员工和会员这一层次, 员工专用信息和会员专用信息两种内容类型,对应两种角色 至于具体到不同部门的协作关系,还是另外做 分类本身权限控制方案,taxomony access control,需对每个角色针对单个术语设置,不是自动互斥型,麻烦 OG模型太复杂,分类已经建立容器,再与OG容器叠加,比较复杂,并且在不同group之间移动还没有方案 其他book access对于整本书,coherent access针对单个node 菜单和分类对应太麻烦了,用一个taxomony block模块又顺序不对,找到了taxonomy menu模块,实现的比较好,taxonomy block可以下课了 评价drp中信息的可靠性:导入-有从wp方案,输出-可RSS;可某些备份工具;总的来说不及wp 补充:经常要更新缓存和权限缓存(权限缓存在发布设置中)  

首选wordpress

 

2009年9月27日还是 wordpress 用着顺手

drupal平台搭建并演绎起来了,并给drupal机会,尝试将wordpress中的部分内容转移到drupal平台上去,但是总感觉drupal不怎么顺手,做了很久还是显得生分,还没有把重心转移到做内容上去,还是处于站点搭建阶段,相比之下,wordpress顺手很多,随时就可以拿来写作,就像一个老朋友,对他已经有了依赖的感觉

2010年9月25日 用wordpress的站点

用wordpress搭建的站点太多了,网上到处都是 做的比较好也不少 ixiqi,专利之家,tecent cdc,google.org.cn ,apple4us,煎蛋

2009年8月22日 wordpress做CMS的一些主题参考

强大的Wordpress有太多优势 见过别人拿wordpress做出来的网站,强大的看不出是wordpress做的 WordPress免费开源的,你无需支付任何的费用,就可以自由使用、修改和扩展它。 WordPress拥有大量的主题与插件资源;WordPress所拥有的主题模板和扩展插件资源是任何一个 CMS 系统都无法比拟的,有强大的用户群体,为WordPress时刻贡献着优秀高可用性的免费资源,所以,你是无需为找不到一个合适的模板或插件而苦恼的。丰富在线文档,帮助WordPress用户及时的解决技术问题。另外,无数的交流社区也是一个很多的平台,可以增进用户间的相关沟通和交流。 WordPress符合Web标准;WordPress不但遵循结构和表现分离的标准,更重要的是程序和模板也是各自独立的 友好的搜索引擎优化 WordPress的文章发布、分类、存档管理功能简介实用,没有其他 CMS 那些繁琐的关系结构

国内难得的几款CMS主题

做内有几款难得的CMS主题,元素比较齐全,符合国内站点习惯,在这些主题基础上修改,事半功倍 xianyou 菠萝油 BBtheme CMS   还有下面WPsummer的免费版(其实是收费版去掉了幻灯片等元素) 收费CMS主题 有一个wpyou做收费主题的,做的很狂

drupal

2011年12月21日选择Drupal的10个理由 1. 高级URL控制 Drupal不像WordPress只有几个固定链接样式,Drupal提供精确的URL控制结构。Drupal中的每个元素(称为节点Node)都可以指定独特的URL(URL别名),而WordPress中的URL虽然有几个样式可以自定义,但也得统一着装,就是所有Post的URL都是一个样式的。在Drupal中,你可以用Pathauto给不同类型的内容指定不同样式的URL。 2. 自定义内容类型和视图 借助CCK和Views模块,你只要轻点几下鼠标就可以创建各式各样的内容类型,包括最基本的页面和博客文章,还有比如产品信息、音乐专辑介绍、招聘启事、维基百科等等,并根据自定义的过滤条件显示数据。大部分CMS都需要修改模板,而在Drupal中,你要做的只是点点鼠标。 3. 版本控制 你设置Drupal在每次保存时都创建一个副本,以便将来需要的时候恢复。WordPress也有这个功能,但Drupal可以主动创建修订版本,而不是简单的设置启用和禁用修订。 4. 词汇 Drupal有非常强大的词汇(目录)系统,允许你将已创建的词汇组绑定到特定的内容类型,比如文章类型可以指定一个类似WordPress的分类目录,允许用户自行添加和删除,而对于新闻或产品类的内容,则需要用户从事先创建的分类中进行选择,这都是可以分开管理的。词汇也可以设置层级关系,允许单/多继承,配合CCK和Views更可以实现非常丰富而且精妙的控制。 5. 用户管理 这也是其他许多CMS无法相比的,Drupal拥有强大的用户角色和权限控制能力,你可以用Drupal创建类似Facebook、校内网那种在线社区,并且由于Drupal的任何东西都是以节点为单位,所以你可以为这些角色指定非常精细的权限。 6. 页面标题和元标签 Drupal的Page Title模块允许你控制页面中的和<meta>标签,这在其他CMS中即便可以实现也很麻烦,而在Drupal中非常简单。 7. 丰富的学习资源 Drupal官方网站有丰富翔实的帮助文档和学习社区,还有大量出版教程,乃至专门教学Drupal的Lullabot,虽然大多是英文的,但你无论遇到任何问题,都可以找到解决的办法。 8. 模板系统 Drupal默认采用PHP Template引擎,同时还支持Smarty和PHPTAL等其他模板引擎,创建Drupal比WordPress要简单,而且无需PHP基础。 9. Drupal食谱 如果你想要某个功能,但Drupal本身没有提供,说不定你就可以在Drupal社区的代码片段中找到这些小模块。Drupal的文件类型支持导入/导出。 10. 多网站 大部分CMS都只能管理一个网站,而Drupal则可以同时管理多个网站,如果你想建立一个多国语言版的网站,Drupal将是最好的选择,并且借助完善的覆盖和继承架构,你可以为每个网站指定模块和主题。最新的Drupal 7还支持跨主机管理,非常强大 drupal自定义字段 然后展示和过滤 通过views建立状态过滤 那如何通过批量修改呢 cck和views结合使用 如何进行分类过滤,字段 views过滤,或者tag,tag也是一个字段 如何将一批文章归为一类:添加标签,或者添加到一个群组</p> <h2 id="joomla"><a href="#joomla" class="headerlink" title="joomla"></a>joomla</h2> </div> <div class="post-tags-categories"> <div class="tags"> <a href="/tags/notes/" class=""> 笔记 </a> </div> </div> </article> <!-- 上一篇文章和下一篇文章 --> <!-- 文章详情页的上一页和下一页 --> <div class="post-nav"> <div class="post-nav-prev post-nav-item"> <div class="post-nav-img" style="background-size: cover; background-position: center center;"> <img class="lazyload lazyload placeholder" src="/medias/8.jpg" class="lazyload placeholder" data-srcset="/medias/8.jpg" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt=""> </div> <a href="/post/3363/" class="post-nav-link"> <div class="title"> <i class="fas fa-angle-left"></i> 上一篇: <div class="title-text">笔记软件 mybase mynoteskeeper</div> </div> <!-- <div class="content">   mybase做笔记善于开辟专题,一切专题说话,善于根据过程添加分支 导出MSWord大纲 到wordpress&#x </div> --> </a> </div> <div class="post-nav-next post-nav-item"> <div class="post-nav-img" style="background-size: cover; background-position: center center;"> <img class="lazyload lazyload placeholder" src="/medias/11.jpg" class="lazyload placeholder" data-srcset="/medias/11.jpg" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" src="" alt=""> </div> <a href="/post/3350/" class="post-nav-link"> <div class="title"> 下一篇: <i class="fas fa-angle-right"></i> <div class="title-text">wordpress输出某个分类的RSS</div> </div> <!-- <div class="content"> 在输出的RSS路径后面加上&cat=xxx即可 </div> --> </a> </div> </div> <!-- 打赏 --> <!-- 分享 --> <!-- 评论 --> <!-- 评论 --> <div id="myComment"> </div> <!-- comment script in themes\hexo-theme-bamboo\layout\_partial\scripts\index.ejs --> </div> <!-- 目录 --> <!-- 文章详情页右侧目录 --> <div class="toc-aside"> <div class="toc-main"> <div class="toc-aside-title"> <i class="fas fa-list-ul" aria-hidden="true"></i><span>本文目录</span> <div class="toc-open-close">本文目录</div> </div> <div class="toc-content"> <div class="toc"></div> </div> </div> </div> <!-- 手机端目录按钮 --> <div id="toc-mobile-btn"> <i class="fas fa-list-ul" aria-hidden="true"></i> </div> <script> function closeToc(init) { $(".toc-aside").css({'width': 0, 'padding': 0, 'transition': init ? 'noe' : 'width 0.3s' }); $(".toc-content").css({'width': 0}); $(".toc-aside-title span, .toc-aside-title i").css({'display': 'none'}); $(".main-content").css({'width': '75%', 'margin-left': 'auto', 'margin-right': 'auto',}); }; function openToc() { $(".main-content").css({'width': '65%', 'margin-right': '10px', 'margin-left': 'calc(35% - 350px)'}); $(".toc-aside").css({'width': '300px', 'padding': '0 10px', 'transition': 'width 0.3s'}); $(".toc-content").css({'width': '300px'}); $(".toc-aside-title span, .toc-aside-title i").css({'display': 'inline-block'}); } function openBtnClickFn () { let openOrCloseBtn = $('.toc-aside .toc-aside-title .toc-open-close'); let open = eval('' || 'true'); openOrCloseBtn.click(function() { if (open) { closeToc(); open = false; } else { openToc(); open = true; } }); }; openBtnClickFn(); initCloseTocWidth(true); function initCloseTocWidth(init) { if (window.innerWidth >= 992) { let isClose = false; isClose && closeToc(init) } } document.addEventListener('pjax:complete', function () { $(".toc-aside").css({'transition': 'no'}); }) document.addEventListener('pjax:complete', function () { openBtnClickFn(); }) </script> <!-- 图片放大 Wrap images with fancybox support --> <script src="/js/wrapImage.js"></script> </div> <!-- 文章详情页背景图 --> <div id="appBgSwiper" style="position: fixed;left: 0;top: 0;width: 100%;height: 100%;z-index: -2;" :style="{'background-color': bgColor ? bgColor : 'transparent'}"> <transition-group tag="ul" :name="names"> <li v-for='(image,index) in img' :key='index' v-show="index === mark" class="bg-swiper-box"> <img :src="image" class="bg-swiper-img no-lazy"> </li> </transition-group> </div> <script> var vm = new Vue({ el: '#appBgSwiper', data: { names: '' || 'fade' || 'fade', // translate-fade fade mark: 0, img: [], bgColor: '', time: null }, methods: { //添加方法 change(i, m) { if (i > m) { // this.names = 'fade'; } else if (i < m) { // this.names = 'fade'; } else { return; } this.mark = i; }, prev() { // this.names = 'fade'; this.mark--; if (this.mark === -1) { this.mark = 3; return } }, next() { // this.names = 'fade'; this.mark++; if (this.mark === this.img.length) { this.mark = 0; return } }, autoPlay() { // this.names = 'fade'; this.mark++; if (this.mark === this.img.length) { this.mark = 0; return } }, play() { let bgImgDelay = '' || '180000' let delay = parseInt(bgImgDelay) || 180000; this.time = setInterval(this.autoPlay, delay); }, enter() { clearInterval(this.time); }, leave() { this.play(); } }, created() { this.play() }, beforeDestroy() { clearInterval(this.time); }, mounted() { let prop = '' || ''; let isImg = prop.includes('.bmp') || prop.includes('.jpg') || prop.includes('.png') || prop.includes('.tif') || prop.includes('.gif') || prop.includes('.pcx') || prop.includes('.tga') || prop.includes('.exif') || prop.includes('.fpx') || prop.includes('.psd') || prop.includes('.cdr') || prop.includes('.pcd') || prop.includes('.dxf') || prop.includes('.ufo') || prop.includes('.eps') || prop.includes('.ai') || prop.includes('.raw') || prop.includes('.WMF') || prop.includes('.webp') || prop.includes('.jpeg') || prop.includes('http://') || prop.includes('https://') if (isImg) { let img = prop.split(','); let configRoot = '/' let arrImg = []; img.forEach(el => { var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/; var objExp = new RegExp(Expression); if (objExp.test(el)) { // http or https arrImg.push(el); } else { // 非http or https开头 // 本地文件 let firstStr = el.charAt(0); if (firstStr == '/') { el = el.substr(1); // 删除第一个字符 '/',因为 configRoot最后一个字符为 / } el = configRoot + el; arrImg.push(el); } }) this.img = arrImg; } else { this.bgColor = prop; } } }) </script> <style> .bg-swiper-box { position: absolute; display: block; width: 100%; height: 100%; } .bg-swiper-img { object-fit: cover; width: 100%; height: 100%; } </style> <script> function loadMermaid() { if (document.getElementsByClassName('mermaid').length) { if (window.mermaidJsLoad) mermaid.init() else { loadScript('https://npm.elemecdn.com/mermaid/dist/mermaid.min.js').then(() => { window.mermaidJsLoad = true mermaid.initialize({ theme: 'default', }) if ('true') { mermaid.init(); } }) } } }; document.addEventListener("DOMContentLoaded", function () { loadMermaid(); }) document.addEventListener('pjax:complete', function () { loadMermaid(); }) </script> </main> </div> <!-- 页脚 --> <div class="footer bg-color"> <div class="footer-main"> <div class="link"> </div> <div class="footer-copyright"> <p>Copyright © 2020 - 2023</p> </div> <!-- 不蒜子统计 --> <!-- 不蒜子统计 --> <span id="busuanzi_container_site_pv"> <i class="fas fa-eye" aria-hidden="true"></i>本站总访问量:<span id="busuanzi_value_site_pv"></span> 次 </span> <span class="post-meta-divider">|</span> <span id="busuanzi_container_site_uv" style='display:none'> <i class="fas fa-users" aria-hidden="true"></i>本站访客数:<span id="busuanzi_value_site_uv"></span> 人 </span> <div class="footer-custom"> <div><br></div> <div><p><a target="_blank" rel="noopener" href="https://beian.miit.gov.cn/">沪ICP备15004786号-x</a></p> </div> </div> </div> </div> <!-- 渲染暗黑按钮 --> <div class="dark"> <div class="dark-content"> <i class="fas fa-moon" aria-hidden="true"></i> <!-- <span>关灯</span> --> </div> </div> <script> $(function() { let isDark = JSON.parse(localStorage.getItem('dark')) || JSON.parse('false'); if (isDark) { $(".dark-content").replaceWith( ` <div class='dark-content'> <i class="fas fa-lightbulb" aria-hidden="true"></i> </div> ` ); } $('.dark').click(function() { if ($(document.body).is('.darkModel')) { $(document.body).removeClass('darkModel'); localStorage.setItem('dark', false); $(".dark-content").replaceWith( ` <div class='dark-content'> <i class="fas fa-moon" aria-hidden="true"></i> </div> ` ); } else { $(document.body).addClass('darkModel'); localStorage.setItem('dark', true); $(".dark-content").replaceWith( ` <div class='dark-content'> <i class="fas fa-lightbulb" aria-hidden="true"></i> </div> ` ); } }) }) </script> <!-- 渲染回到顶部按钮 --> <div class="goTop top-btn-color" pointer> <i class="fas fa-arrow-up" aria-hidden="true"></i> </div> <script src="/js/goTop.js"></script> <!-- 渲染左下角音乐播放器 --> <!-- 图片放大 --> <script src="/js/fancybox/jquery.fancybox.min.js"></script> <!-- 百度解析 --> <!-- Baidu Analytics --> <!-- Baidu Push --> <script> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> <!-- 背景彩带 --> <script src="/js/utils/index.js"></script> <script src="/js/app.js"></script> <!-- 文章目录所需js --> <link href="/js/tocbot/tocbot.css" rel="stylesheet"> <script src="/js/tocbot/tocbot.min.js"></script> <script> var headerEl = 'h2, h3, h4', //headers content = '.post-detail',//文章容器 idArr = {}; //标题数组以确定是否增加索引id //add #id var option = { // Where to render the table of contents. tocSelector: '.toc', // Where to grab the headings to build the table of contents. contentSelector: content, // Which headings to grab inside of the contentSelector element. headingSelector: headerEl, scrollSmooth: true, scrollSmoothOffset: -80, headingsOffset: -($(window).height() * 0.4 - 45), positionFixedSelector: '.toc-main', positionFixedClass: 'is-position-fixed', fixedSidebarOffset: 'auto', activeLinkClass: 'is-active-link', // onClick: function (e) {}, } if ($('.toc').length > 0) { $(content).children(headerEl).each(function () { //去除空格以及多余标点 var headerId = $(this).text().replace(/[\s|\~|`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?|\:|\,|\。]/g, ''); headerId = headerId.toLowerCase(); if (idArr[headerId]) { //id已经存在 $(this).attr('id', headerId + '-' + idArr[headerId]); idArr[headerId]++; } else { //id未存在 idArr[headerId] = 1; $(this).attr('id', headerId); } }); document.addEventListener("DOMContentLoaded", function () { tocbot.init(option); mobileTocClick(); }); } window.tocScrollFn = function () { return bamboo.throttle(function () { findHeadPosition(); }, 100)() } window.addEventListener('scroll', tocScrollFn); const findHeadPosition = function (top) { if ($('.toc-list').length <= 0) { return false; } setTimeout(() => { // or DOMContentLoaded autoScrollToc(); }, 0); } const autoScrollToc = function () { const $activeItem = document.querySelector('.is-active-link'); const $cardToc = document.querySelector('.toc-content'); const activePosition = $activeItem.getBoundingClientRect().top const sidebarScrollTop = $cardToc.scrollTop if (activePosition > (document.documentElement.clientHeight - 100)) { $cardToc.scrollTop = sidebarScrollTop + 150 } if (activePosition < 100) { $cardToc.scrollTop = sidebarScrollTop - 150 } } document.addEventListener('pjax:send', function () { if ($('.toc').length) { tocbot.destroy(); } }); document.addEventListener('pjax:complete', function () { if ($('.toc').length) { tocbot.init(option); mobileTocClick(); } }); // 手机端toc按钮点击出现目录 const mobileTocClick = function () { const $cardTocLayout = document.getElementsByClassName('toc-aside')[0]; const $cardToc = $cardTocLayout.getElementsByClassName('toc-content')[0]; let right = '45px'; if (window.innerWidth >= 551 && window.innerWidth <= 992) { right = '100px' } const mobileToc = { open: () => { $cardTocLayout.style.cssText = 'animation: toc-open .3s; opacity: 1; right: ' + right }, close: () => { $cardTocLayout.style.animation = 'toc-close .2s' setTimeout(() => { $cardTocLayout.style.cssText = "opacity:''; animation: ''; right: ''" }, 100) } } document.getElementById('toc-mobile-btn').addEventListener('click', () => { if (window.getComputedStyle($cardTocLayout).getPropertyValue('opacity') === '0') mobileToc.open() else mobileToc.close() }) $cardToc.addEventListener('click', (e) => { if (window.innerWidth < 992) { // 小于992px的时候 mobileToc.close() } }) } </script> <style> .is-position-fixed { position: sticky !important; top: 74px; } .toc-main ul { counter-reset: show-list; } .toc-main ul li::before { content: counter(item)"."; display: block; position: absolute; left: 12px; top: 0; } </style> <!-- 设置导航背景 --> <script> let setHeaderClass = () => { const headerMenuTransparent = true; if (!headerMenuTransparent) { return; } const nav = $('#navHeader'); const navTop = nav.outerHeight(); const winTop = $(window).scrollTop(); if(winTop > navTop) { nav.addClass('header-bg-color'); } else { nav.removeClass('header-bg-color'); } }; let scrollCollect = () => { return bamboo.throttle(function (e) { setHeaderClass(); }, 200)() } let initHeaderBg = () => { setHeaderClass(); } setHeaderClass(); window.addEventListener('scroll', scrollCollect); document.addEventListener('pjax:send', function () { window.removeEventListener('scroll', scrollCollect) }) document.addEventListener('pjax:complete', function () { window.addEventListener('scroll', scrollCollect); setHeaderClass(); }) </script> <!-- 渲染issues标签里的内容 --> <script> function loadIssuesJS() { if ($(".post-detail").find(".issues-api").length == 0) { return; } loadScript('/js/issues/index.js'); }; $(function () { loadIssuesJS(); }); document.addEventListener('pjax:complete', function () { if (typeof IssuesAPI == "undefined") { loadIssuesJS(); } }) </script> <!-- 输入框打字特效 --> <!-- 输入框打字特效 --> <script src="/js/activate-power-mode.js"></script> <script> POWERMODE.colorful = true; // 打开随机颜色特效 POWERMODE.shake = false; // 关闭输入框抖动 document.body.addEventListener('input', POWERMODE);//监听打字事件 </script> <!-- markdown代码一键复制功能 --> <link rel="stylesheet" href="https://eoss.laowangcn.com/fe/v-plugs-ayu@0.4.4/lib/ayu.css"> <script src="https://eoss.laowangcn.com/fe/v-plugs-ayu@0.4.4/lib/ayu.umd.min.js"></script> <script src="/js/clipboard/clipboard.min.js"></script> <div id="appCopy"> </div> <script data-pjax> var vm = new Vue({ el: '#appCopy', data: { }, computed: { }, mounted() { const that = this; var copy = '复制'; /* code */ var initCopyCode = function () { var copyHtml = ''; copyHtml += '<button class="btn-copy" data-clipboard-snippet="" style="position:absolute;top:0;right:0;z-index:1;">'; copyHtml += '<i class="fas fa-copy"></i><span>' + copy + '</span>'; copyHtml += '</button>'; $(".post-detail pre").not('.gutter pre').wrap("<div class='codeBox' style='position:relative;width:100%;'></div>") $(".post-detail pre").not('.gutter pre').before(copyHtml); new ClipboardJS('.btn-copy', { target: function (trigger) { return trigger.nextElementSibling; } }); } initCopyCode(); $('.btn-copy').unbind('click').bind('click', function () { doSomething(); }) $(document).unbind('keypress').bind('keypress', function (e) { if (e.ctrlKey && e.keyCode == 67) { doSomething(); } }) function doSomething() { that.$notify({ title: "成功", content: "代码已复制,请遵守相关授权协议。", type: 'success' }) } }, methods: { }, created() { } }) </script> <!-- 图片懒加载 --> <script defer src="https://npm.elemecdn.com/vanilla-lazyload@17.1.0/dist/lazyload.min.js"></script> <script> // https://www.npmjs.com/package/vanilla-lazyload // Set the options globally // to make LazyLoad self-initialize window.lazyLoadOptions = { elements_selector: ".lazyload", threshold: 0 }; // Listen to the initialization event // and get the instance of LazyLoad window.addEventListener( "LazyLoad::Initialized", function (event) { window.lazyLoadInstance = event.detail.instance; }, false ); document.addEventListener('DOMContentLoaded', function () { lazyLoadInstance.update(); }); document.addEventListener('pjax:complete', function () { lazyLoadInstance.update(); }); </script> <!-- 卡片滚动动画 --> <!-- 评论所需js --> <!-- 鼠标点击特效 --> <!-- 爱心点击 --> <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" data-pjax></script> <!-- pjax --> <!-- pjax --> <script src="/js/pjax@0.2.8/index.js"></script> <!-- 样式位于:source/css/_third-party/pjaxanimate.styl --> <div class="pjax-animate"> <div class="loading-circle"><div id="loader-circle"></div></div> <script> window.ShowLoading = function() { $(".loading-circle").css("display", "block"); }; window.HideLoading = function() { $(".loading-circle").css("display", "none"); } </script> <script> document.addEventListener('pjax:complete', function () { window.HideLoading(); }) document.addEventListener('pjax:send', function () { window.ShowLoading(); }) document.addEventListener('pjax:error', function () { window.HideLoading(); }) </script> </div> <script> var pjax = new Pjax({ elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([no-pjax])', // 拦截正常带链接的 a 标签 selectors: ["#pjax-container","title"], // 根据实际需要确认重载区域 cacheBust: false, // url 地址追加时间戳,用以避免浏览器缓存 timeout: 5000 }); document.addEventListener('pjax:send', function (e) { try { var currentUrl = window.location.pathname; var targetUrl = e.triggerElement.href; var banUrl = [""]; if (banUrl[0] != "") { banUrl.forEach(item => { if(currentUrl.indexOf(item) != -1 || targetUrl.indexOf(item) != -1) { window.location.href = targetUrl; } }); } } catch (error) {} $(window).unbind('resize'); $(window).unbind('scroll'); $(document).unbind('scroll'); $(document).unbind('click'); $('body').unbind('click'); }) document.addEventListener('pjax:complete', function () { $('script[data-pjax], .pjax-reload script').each(function () { $(this).parent().append($(this).remove()); }); }); document.addEventListener('pjax:error', function (e) { window.location.href = e.triggerElement.href; }) // 刷新不从顶部开始 document.addEventListener("DOMContentLoaded", function () { history.scrollRestoration = 'auto'; }) </script> </body> </html>