化繁为简,无需后端。巧用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 ...
随机推荐
- ThinkPHP 自动验证与自动填充无效可能的原因
原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇 ...
- python自动开发之(django)第十九天
一.路由系统,URL 1.函数及类 函数:url(r'^index/', views.index), 类:url(r'^home/', views.Home.as_view()), 2.顺序 url( ...
- Day14 HTML补充
一.认识前端 前端开发的核心语言: html - 超文本标记语言 结构 css - 层叠样式表 样式 javascript - 脚本语言 行为 <html></html> 双标 ...
- Java 中 Comparable 和 Comparator 比较(转)
转自http://www.cnblogs.com/skywang12345/p/3324788.html 本文,先介绍Comparable 和Comparator两个接口,以及它们的差异:接着,通过示 ...
- 【java】利用异常机制,往前台写错误信息
有时候,程序可能会报异常,而这些异常,通常需要提示前台操作人员怎么去处理,才能完成业务. 此时,我们只需要在业务层,自己抛出一个异常,自己捕捉之后,调用下类,即可输出到前台. 1.servlet里面可 ...
- HTML/W3C-WHATWG-Differences
Differences between the W3C HTML 5.1 specification and the WHATWG LS The W3C HTML 5.1 specification: ...
- 【Java】Java6 WebService的发布
WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服务的发布方式也有着天壤之别,它们之间没有经验 ...
- IIC协议及其对ACK应答信号的处理
1,SCL一直由Master控制,SDA依照数据传送的方向,读数据时由Slave控制SDA,写数据时由Master控制SDA.当8位数据传送完毕之后,应答位或者否应答位的SDA控制权与数据位传送时相反 ...
- Lowest Common Ancestor in Binary Tree
The problem: Given node P and node Q in a binary tree T. Find out the lowest common ancestor of the ...
- Gold Balanced Lineup(哈希表)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10711 Accepted: 3182 Description Farm ...