化繁为简,无需后端。巧用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 ...
随机推荐
- YII 登陆时 session持久化
在YII框架中,session持久化方法只需要调用login()方法就行了 class loginAction extends CAction{ function run(){ $model=new ...
- Cobar介绍及配置
from:http://code.alibabatech.com/wiki/display/cobar/Home Skip to end of metadata Page restrictions ...
- 使用windows live writer 编辑博客日志
使用Windows Live Writer 编辑日志 一 意义 写博客日志是个需要坚持的好习惯.使用Windows Live Writer,能不受网页自带编辑器限制. Markdown支持.安装mar ...
- duplicate symbols for architecture arm64 (Xcode error)
比如 duplicate symbol _NewBase64Encode_soomla in: /Users/UnityGame/Libraries/Plugins/iOS/Soomla/libSoo ...
- Recovery和Charger模式下屏幕旋转180度[转]
如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度 解决方法: 1.在bootable\recovery\minui\Graphics.c 文件找到gr_fli ...
- win平台下, 检测网络是否连接最好的办法
[Delphi]检查URL是否有效的函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 function CheckUr ...
- 协程coroutine
协程(coroutine)顾名思义就是“协作的例程”(co-operative routines).跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程 ...
- zabbix 部分item采集间隔调整
- Building a Space Station(kruskal,说好的数论呢)
Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3820 Accepted: 1950 Description You a ...
- -_-#【CSS3】CSS3 gradient transition with background-position
CSS3 gradient transition with background-position <!DOCTYPE html> <html> <head> &l ...