1110搜索
网站导航: 资讯 视频 酷站 下载 上网导航 流量交换
标签: 古诗词半岛十个世界人口将达80亿发动机青岛银行拳皇97大关骗钱的!毛利率算法李云龙IT网站免费收录中石化公安机关世纪大战

Blogger和WordPress的倒序显示

时间:2022-03-15 11:29:14 阅读:655 评论:0

  Blogger和WordPress都可以通过一定的设置,变成一个只供自己查看的私人博客,相当于私人日记本,具体方法是,在博客设置里将其设置为只有作者才能查看,然后将博客设置为在一页内全部显示(比如设置单页文章1千篇),在博客安装一个倒序显示脚本,即可完成日记本的功能,可供导出和打印。


  除了打印,还可以将内容复制到TXT文件里,在邮箱里发送到Kindle邮箱,然后在自己的Kindle上看,相当于看书的体验。



 

  这里面的一个技术问题是如何在Blogger和WordPress里实现按照日期倒序显示(Reverse Post Order)。这里分别给出Blogger和WordPress实现倒序的方法。


  在Blogger中,页脚点击“添加小工具”,添加“HTML/JavaScript”微件,之后在微件内容里插入如下代码:


<!-- Start Post Reversal Code -->

<script type='text/javascript'>

//<![CDATA[

  // -----------------------------------------------------------------------------------------

  // Name   : PRS - Post Reversal Script for Blogger - Version 1.0

  // Author : David Yockey

  // URL    :   techsquirrels.blogspot.com/2012/04/swapping-to-reverse-post-order-on.html

  // -----------------------------------------------------------------------------------------

  // Temp variable used to shorten classname references

  var cn;

  // This function is called as needed in the main program below.

  function ReversePosts(BlogPostContainer,PostClass) {

    // Arguments:

    //    BlogPostContainer -- The node containing the posts to be reversed.

    //    PostClass -- The className of each of the posts in the container to be reversed.

    //                 (may be a single name from among names in the class attribute of the posts)

    // Flag for checking whether any posts are found

    var found=false;

    var BlogPosts = BlogPostContainer.childNodes;  // May include text-nodes containing

                                                   // whitespace in addition to post-nodes

    // Set index variables to top and bottom of BlogPosts list

    var i=0;

    var j=BlogPosts.length-1;

    for( ; ; ) {     // Start Endless Loop

      // Find next Post from the top

      while( (i < j) && (!(cn=BlogPosts[i].className) || !(cn.match(PostClass))) )

        ++i;

      // Find next Post from the bottom

      while( (i < j) && (!(cn=BlogPosts[j].className) || !(found=cn.match(PostClass))) ) // (see Footnote 1)

        --j;

      if( found && i < j ) {

        // Swap Posts (see Footnote 2)

        var tempi = BlogPosts[i].cloneNode(true);           // Store a copy of Post i in tempi

        var tempj = BlogPosts[j].cloneNode(true);           // Store a copy of Post j in tempj

        BlogPostContainer.replaceChild(tempi,BlogPosts[j]); // Replace Post j with Post i in tempi

        BlogPostContainer.replaceChild(tempj,BlogPosts[i]); // Replace Post i with Post j in tempj

      } else {

        // Done

        break;        // Break out of Endless Loop

      }

      ++i; --j;

    }

  }

  // Footnote 1:

  //   If a post is found from one end, then a post must necessarily be found from the other.

  //   So, recording and later checking for a post from one end is sufficient to ensure that

  //   one was found from both.

  //

  // Footnote 2:

  //   At least in Firefox 11.0 on Fedora Linux, replacing a child directly with another child

  //   causes some text-nodes containing whitespace to be deleted. That node deletion messes up

  //   the positions of the posts in the BlogPosts list. This is avoided by cloning both posts

  //   rather than just one and replacing both posts from the cloned copies.

  // *** MAIN POST REVERSAL PROGRAM ***

  // Magic Words

  var BlogWidget             = 'Blog1';

  var BlogPostContainerClass = 'blog-posts';

  var BlogPostClass          = 'date-outer';

  var DatePostContainerClass = 'date-posts';

  var DatePostClass          = 'post-outer';

  var Blog1 = document.getElementById(BlogWidget);

  // Find the node containing the blog posts

  var BlogPostContainer;

  var x=0;

  do {

    BlogPostContainer = Blog1.childNodes[x++];

  } while ( !(cn=BlogPostContainer.className) || !(cn.match(BlogPostContainerClass)) );

  // Reverse different day posts

  ReversePosts(BlogPostContainer,BlogPostClass);

  // Reverse same day posts - Loop thru contents of BlogPostContainer to find each day's posts

  var BlogPosts = BlogPostContainer.childNodes;

  for ( i = 0; i < BlogPosts.length; ++i ) {

    // Check for an actual post-node rather than a text-node or such

    if ( (cn=BlogPosts[i].className) && cn.match(BlogPostClass) ) {

      var DatePostContainer;

      x=0;

      // Find the node containing the posts to be reversed for the current day being processed

      do {

        DatePostContainer = BlogPosts[i].childNodes[x++];

      } while ( !(cn=DatePostContainer.className) || !(cn.match(DatePostContainerClass)) );

      ReversePosts(DatePostContainer,DatePostClass);

    }

  }

//]]>

</script>

<!-- End Post Reversal Code -->


  之后保存,设置“主页上显示的博文数量上限”的数量,然后打开页面即可看到倒序的文章。


  对于WordPress来说,操作起来比较简单,安装一个名为“Chronological Posts”的Plugin即可实现倒序文章。


  从安全性来说,Blogger更为安全一些,谷歌帐号设置两步验证,在谷歌Blogger中写内容,然后设置只有自己只读,安装一个倒序显示脚本,然后复制到TXT文件里,在邮箱里发送到Kindle邮箱,然后在自己的Kindle上看,看完了就删,只要谷歌帐号不泄露,秘密的信息就不会泄漏。


Blogger和WordPress的倒序显示

3.png

免责声明
本网站发布的内容(图片,视频和文字)以原创,转载和分享网络内容为主,如有涉及侵权尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服QQ:1975212473,邮箱:1975212473@qq.com。
本文标签: Blogger   WordPress   倒序   显示  

本文暂无评论 - 欢迎您