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. Oracle SQL Developer连接报错(ORA-12505)

    Oracle SQL Developer连接报错(ORA-12505) 之前我的Oracle数据库出现问题,费大波周折终于弄好了,今天又创建了一个DBA管理员的连接方式出现问题,本人现在把解决方案分享 ...

  2. System.nanoTime()的使用

    纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之一,即等于10的负9次方秒.常用作 内存读写速度的单位. 1纳秒=0.000001 毫秒 1纳秒=0.00000 0001秒 ja ...

  3. JavaScript Patterns 4.4 Self-Defining Functions

    If you create a new function and assign it to the same variable that already holds another function, ...

  4. "ORA-12154: TNS:could not resolve the connect identifier specified"的解决办法

    添加环境变量解决: 变量名:TNS_ADMIN 变量值:D:\Ocl\product\11.2.0\dbhome_1\NETWORK\ADMIN tnsnames.ora所在的路径

  5. c# 进程间通信 IPC

    最近在调试一个算法,想通过改变算法的参数看看结果有什么变化. 碰到一个麻烦的事情是,从磁盘加载.构建数据需要15分钟.这就比较讨厌了,也就是说我每次调一个参数前都要等15分钟启动时间? 于是我就想,能 ...

  6. 使用TRACE时 输出 _CrtDbgReport: String too long or IO Error

    在VS2010中使用MFC,使用UNICODE 调用TRACE,输出_CrtDbgReport: String too long or IO Error 可尝试使用OutputDebugString函 ...

  7. HBase 高性能加入数据 - 按批多“粮仓”式解决办法

    摘要:如何从HBase中的海量数据中,以很快的速度的获取大批量数据,这一议题已经在<HBase 高性能获取数据>(http://www.cnblogs.com/wgp13x/p/42451 ...

  8. PHP实战-文章发布系统学习记录

    跟随大师的步伐,一步一步向前行进,PHP学习之路中的历程. 如果图片不能正常查看请访问云笔记链接 http://note.youdao.com/share/?id=3c25d8c03ef946d9c6 ...

  9. 【VB超简单入门】三、开始编程

    接下来要进入正题了!同学们要认真看咯~ 第一步:安装VB开发IDE 在这里我推荐大家安装的是VB迷你版,现在大多数同学使用win7,这个版本可以在win7上运行的妥妥的~ 下载链接:http://pa ...

  10. Legends-ggplot2图例的一些操作

    移除图例 require(ggplot2) b = qplot(Sepal.Length,Petal.Length,data=iris,geom="point",colour = ...