2016/1/27 11:55:14

我是怎么开发一个小型java在线学习网站的

一直想做一个自己的网站(非博客),但是又不知道做什么内容的好,又一次看到了w3schools,就萌发了开发一个在线java学习的网站,
最好可以像w3schools网站一样可以在线执行,想法是很好,就是要填的坑有点多。

技术选择

使用过wordpress和jekyll两个工具。wordpress是需要php的支持,由于没有php开发经验的,没有很强烈的使用意愿。

jekyll是使用ruby开发的静态博客生成系统,阅读完官网上的文档之后开始搭建环境,过程还是很顺利,但是在使用jekyll
提供的功能开发模板的时候感觉不是很顺手,又开始了漫无目的的搜索。

搜索“static website generator” 意外的发现了两个比jekyll更新更潮流的静态网站生成器,一个是hexo,一个是hugo。

hexo台湾人使用nodejs开发的,hugo是外国人使用go语言开发的,两者都很轻量级,由于最近买了一本《深入浅出node.js》
对nodejs比较熟, 就先试验hexo,发现确实很好用, hexo的插件系统很方便就能编写自己的插件,由于代码写的不是很成熟,
这里就不贴了。

hexo比jekyll是简单方便很多,但是从源码和文档两方面看都不算特别成熟的项目,加上开发者只有一个人,功能更新方面也很慢,
执行速度比jekyll是块了很多,用来生成博客基本是可以了,但是我的计划是网站最少也有几千页面,还是想找一个更快的工具,
而且heox运行不太稳定,会有些意料之外的错误(sorry,具体错误没有记录下来)。

hugo号称是速度最快的静态网站生成器,只能把希望寄托在hugo上面。 就开始了阅读hugo文档, 看过几页文档之后心想————这就是我要
找的东西。

hugo比jekyll安装方便,执行速度快,功能上略少点,但是稳定性,更新速度,文档丰富程度都算的上很优秀。
虽然出现时间差不多,但是hugo比hexo成熟很多,原因就是 hugo是一个大神开发的,而且是真正开源,不是只开放源代码。

怎么编辑java?

最简单的方式就是使用editarea,但是界面太丑陋了,又上网搜索,发现了一个叫aceeditor的在线代码编辑器,支持嵌入到任何网页,
支持多大几十种编程语言以及几十种语法高亮主题。
开源的东西也很强大啊,多探索总是会有意外的收获。

怎么执行java?

像js,css,html这种技术,在线编辑和展现都很简单,但是java在线执行就要复杂很多。
查找很多网站,只发现几个可以在线编译和执行java的网站,有一个ideone的网站提供api可以远程调用,传入源码,返回java
代码执行结果, 但是每一个月只有1000次的免费调用次数。目前用的就是ideone的api。

网站模板

几个关键问题解决之后,剩下的就是怎么组织和展现网站内容了, 网站样式的话由于不熟悉前端,就偷懒使用了laravel的文档页面的
样式。

网站内容这块,引文静态网站生成和动态网站一样支持模板, 只需要编写几个模板文件就大功告成。
参考了一下hugo官网提供的主题源码之后, 就会写了。现在考虑要不要放到github上面去。

最后贴下hugo生成的这个网站: 免费教程

想学习hugo的同学可以参考我前几天发了一个hugo的安装教程, 参考 hugo - 最好用的静态网站生成器

我是怎么开发一个小型java在线学习网站的的更多相关文章

  1. Python3学习之路~8.6 开发一个支持多用户在线的FTP程序-代码实现

    作业: 开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...

  2. 初学者福音——10个最佳APP开发入门在线学习网站

    根据Payscale的调查显示,现在的APP开发人员的年薪达到:$66,851.这也是为什么那么多初学的开发都想跻身到APP开发这行业的主要原因之一.每当你打开App Store时候,看着琳琅满目的A ...

  3. 我是如何开发一个连锁企业的信息系统的,NO.1

    我是如何开发一个连锁企业的信息系统的,NO.1 连锁企业的信息系统的开发,一半要经历系统分析.系统设计.系统实施.系统评价和系统维护等五个阶段, 而在每个实施阶段中又具体划分出许多阶段性目标和实施步骤 ...

  4. python 开发一个支持多用户在线的FTP

    ### 作者介绍:* author:lzl### 博客地址:* http://www.cnblogs.com/lianzhilei/p/5813986.html### 功能实现 作业:开发一个支持多用 ...

  5. HTML5初学者福利!11个在线学习网站推荐

    HTML5初学者福利!11个在线学习网站推荐 HTML5的强大及流行趋势,让更多的人想要系统的对它进行学习.而大多数人获取HTML5知识的重要途径都是网络,不过面对五花八门的搜索结果,是不是觉得摸不着 ...

  6. 前端在线学习网站W3School

    W3School在线学习网站 http://www.w3school.com.cn/ W3School是因特网上最大的WEB开发者资源,是完全免费的,是非营利性的, 一直在升级和更新,是W3C中国社区 ...

  7. 基于Java在线学习系统设计与实现

                 Spring+SpringMVC+MyBatis+Bootstrap+Vue开发在线学习系统 本课题的主要内容是开发基于Java EE的在线学习平台,使用MVC经典开发模式. ...

  8. IT在线学习网站总结

    以下是我自己做软件过程中发现的一些不错的IT学习网站,个人感觉比较受用,故总结出来以供IT爱好者一起学习: www.maiziedu.com  麦子学院 www.jikexueyuan.com 极客学 ...

  9. IT主要在线学习网站

    大的模式来说,目前做编程学习网站的大概有两种.一种是视频模式,如优才,麦可,开课吧等,一种是非视频模式如计蒜客(泡面吧),实验楼和他们汇智网等.其中多数产品的创新也都是在“视频+交互式学习”模式上.要 ...

随机推荐

  1. C#获取HTML文件指定DIV内容

    最近自己找了一个开源的博客网站,放到阿里云上,方便自己发布博客. 我一般把文章发布到博客园和QQ空间,家了这个网站后又要多发布一次,为了省事就做了一个从博客园读取文章的功能: 输入链接URL地址点击提 ...

  2. Python HeapSort

    __author__ = 'student' print 'hello world hello python' ''' heap sort root leftchild 2n+1 rightchild ...

  3. [转]How to insert a row between two rows in an existing excel with HSSF (Apache POI)

    本文转自:http://stackoverflow.com/questions/5785724/how-to-insert-a-row-between-two-rows-in-an-existing- ...

  4. RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础

    Abstract: 贡献主要有两点1:可以将卷积神经网络应用region proposal的策略,自底下上训练可以用来定位目标物和图像分割 2:当标注数据是比较稀疏的时候,在有监督的数据集上训练之后到 ...

  5. selenium读取txt文件的几种方式

    1.用java读取txt文件 public static String readFJ(String path) { path = "D:/workspace/hetong.txt" ...

  6. 2014 Super Training #9 E Destroy --树的直径+树形DP

    原题: ZOJ 3684 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3684 题意: 给你一棵树,树的根是树的中心(到其 ...

  7. NYOJ----1124数量

    数量 时间限制:200 ms  |  内存限制:65535 KB 难度:0 描述 HJS大牛想去街上吃饭,街道旁边拴着很多狗,他想我堂堂......(省略n个字)岂会被狗咬,所以他很牛的从狗的面前经过 ...

  8. Java开发和运行环境的搭建

    Java开发需要准备的东西? JDK+Eclipse 其中JDK的意思是Java开发工具包,Eclipse是进行用于做Java程序开发的工具(当然你也可以用记事本什么的去做). 其他开发工具:JCre ...

  9. 第11章 Windows线程池(1)_传统的Windows线程池

    第11章 Windows线程池 11.1 传统的Windows线程池及API (1)线程池中的几种底层线程 ①可变数量的长任务线程:WT_EXECUTELONGFUNCTION ②Timer线程:调用 ...

  10. java10-2 toString()方法

    public String toString():返回该对象的字符串表示. Integer类下的一个静态方法: public static String toHexString(int i):把一个整 ...