化繁为简,无需后端。巧用Yql+rss,搭建我的个人网站
【本文含有大量的心理描写,没耐心的看官直接跳转到末尾即可】
前言:
最近做好了个人网站。很多人都喜欢用WordPress弄一个自己的博客之类的,但其实我觉得没这个必要,Lofter的功能、界面神马的于我而言足矣,加上CSDN单作为技术博客,GitHub作为开源仓库。自己重写这些内容在我看来没甚意义:独立的个人博客只能带给我孤独,技术文章放到互联网的某个偏僻的角落跟没公开没啥两样,开源Git仓库更不用说了,GitHub已是上上之选。所以我的需求就很简单咯:就是把我常用的几个个人主页整合起来。顺带获取我最新的文章动态,放在网站首页,ok。
正文开始:
首先,拿什么来建站?WordPress被我首先排除了,庞大臃肿+php。Ghost,嗯,别忘了我并不想做博客。想来想去,鉴于我简单的需求,还是从基础写起比较快。初期的预想是Bootstrap写前端界面,Flask负责后端处理,nginx做夹层。
那么先写界面咯。Bootstrap之前只大略看过,但仍然很快的完成了任务。因为,这玩意儿真心简单好用啊。
那么该写后端咯。等等,重点来了,我好像有更好的解决方案了!!!
先回顾需求,我并不想在个人网站上发布博客文章,个人网站就是个人网站,它不该成为个人博客、个人主页!!!我的文章仍然发表在Lofter!那么,个人网站上的文章就并不需要也不应该从服务器来获取,难道说我每发表一篇文章还得自己在服务器放一份?于是,我想到了RSS。多么美妙啊,我在Lofter上,借助现成的文本编辑器写文章,然后通过RSS来取得我的Lofter的文章概览,然后把它们转到网站里,就辣么简单!
好,现在事情很明确了,我并不需要后端,我只是需要从Lofter的RSS源拉取我的文章,把它们呈现给用户。这里就涉及到一个老大难问题了:跨域访问。第一想到的解决方法当然是由服务器访问Lofter,把数据返还给浏览器。等等,好像不太对!不是说好了不从服务器获取文章吗?这样还不如把文章预存到服务器呢。唉,没办法,谁教浏览器不允许跨域获取数据呢,不然直接让浏览器自己从Lofter获取rss源多好。等等,好像错过了什么!我跨域访问并不是想做坏事啊,不是我窃取数据,而是rss本就是为了共享数据而诞生的啊!那么,就一定有好的解决方案可以让我简单的获取到它。于是,想起了早已被墙了N久的jGFeed,于是,想到了是否有替代jGFeed的东东。于是我发现了它——雅虎的Yql。话说感觉雅虎在中国混得挺惨啊,但没关系,这关我毛事呢,毕竟在国外它仍然是一个大公司不是,它的产品为嘛不用呢。关键是,雅虎没有被墙!没有被墙!没有被墙!
事情就这么愉快的解决了。看了这么久的文字的诸君,我知道你们等的重点是这句代码:
$.getJSON('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D"' + 'http://zhengxiaoyao0716.lofter.com/rss' + '"&format=json&diagnostics=true&callback=?', function(data) { [处理你的rss数据吧] });
需要注意的是,这样做好处是服务端完全没压力,坏处是,雅虎虽然没有被墙,但毕竟在国外,访问速度会比较慢。
最后,让最近一直写Python、Java的对坑放松警惕的我吐槽一下js的满地坑:尼玛啊,for in的坑真心烦人啊有木有,别人for in数组拿到的是值,尼玛for in拿到的是角标,劳资查了一晚上的bug就tm因为这个啊啊啊!!!(旁白,在js里,for in与for each in是两个概念。前者只是普通for语句的简化,后者才是我们喜闻乐见的迭代器遍历,然而后者却并不是ECMAScript的一部分)
我的个人网站的链接:http://xiaoyao.zheng0716.com
化繁为简,无需后端。巧用Yql+rss,搭建我的个人网站的更多相关文章
- 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3
Web GIS系列: 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 使用GeoServer+QGIS发布WMTS服务 使用GeoSe ...
- Web 如何搭建自己的个人网站
如何搭建自己的个人技术博客网站 学习目标 1.[了解]搭建网站需要的web构件和网站运行原理 2.[掌握]如何搭建个人博客网站 学习前言 大家都是学习开发的,相信都接触过百度,新浪,淘宝,京东...等 ...
- Flask搭建个人博客网站(1)—项目规划--李渣渣(lizaza.cn)
Flask搭建个人博客网站(1)—项目规划--李渣渣(lizaza.cn) 发布时间:2020-05-2413次浏览 前言 现在市面上又许多比较成熟的博客平台,例如:CSDN,博客园,新浪博客等!对于 ...
- 无需编译、快速生成 Vue 风格的文档网站
无需编译.快速生成 Vue 风格的文档网站 https://docsify.js.org/#/#coverpage https://github.com/QingWei-Li/docsify/
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 阿里云+wordpress搭建个人博客网站
[正文] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识 ...
- 如何搭建个人博客网站(Mac)
一直以为自己记忆力很好,毕业之后才发现,之前需要看一遍就能记住的东西,现在看两三遍才能有印象.而搞技术的,如果不及时的记录下当时的情景,过后很容易就忘记.所以,再次萌生了搭博客.写文章的想法(之前用D ...
- Linux_基于Docker快速搭建个人博客网站
时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Doc ...
- ubuntu 搭建简易的https网站
ubuntu 搭建简易的https网站 环境:ubuntu 12.04.5 openssl (1)创建一个ssl的保存路径 sudo mkdir /opt/nginx/ssl (2)生存密钥sudo ...
随机推荐
- 【Linux】常用命令
一.文件结构 /: 根目录 /bin: 系统所需要的那些命令位于此目录. /boot: Linux的内核及引导系统程序所需要的文件目录,GRUB或LILO系统引导管理器也 ...
- 为什么使用"use strict"可以节约你的时间
转: http://ourjs.com/detail/52f572bf4534c0d806000024 "use strict"是JavaScript中一个非常好的特性,而且非常容 ...
- Java多线程:常用的实现多线程的两种方式
之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程池的内容,我们以后会详细介绍;现在,先对的Thread和Runnable进行了解.本章内 ...
- python global 全局变量
http://blog.csdn.net/mldxs/article/details/8559973 __author__ = 'dell' def func(): global x print 'x ...
- 总结iOS 8和Xcode 6的各种坑
模拟器的路径从之前的~/Library/Application Support/iPhone Simulator移动到了~/Library/Developer/CoreSimulator/Device ...
- google yeoman
Yeoman是Google的团队和外部贡献者团队合作开发的,他的目标是通过Grunt(一个用于开发任务自动化的命令行工具)和Bower(一个HTML.CSS.Javascript和图片等前端资源的包管 ...
- Borg Maze poj 3026
Description The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of ...
- VS2012中使用编译的Qt-5.1.1静态库开发程序
1. 安装qt-vs-addin-1.2.2-opensource.exe,安装之后,vs2012菜单栏就会出现QT5菜单. 2. 在qt-vs-addin添加Qt5静态库: QT5->Qt O ...
- bzoj3668
noi水题,直接推出来每一位上取什么值才能取1直接搞就可以了 ..] of longint; x,n,i,j,k,t,m,ans:longint; fl:boolean; s:string; ch:c ...
- POJ-3261-Milk Patterns(后缀数组)
题意: 给定一个字符串,求至少出现k 次的最长重复子串,这k 个子串可以重叠. 分析: 先二分答案,然后将后缀分成若干组. 不同的是,这里要判断的是有没有一个组的后缀个数不小于k. 如果有,那么存在k ...