在本地运行 fyne 官网
简介
要深入学习和理解一个框架,官方文档是必须要仔细阅读的。fyne 官网有非常系统和详尽的文档。官方网站:https://fyne.io/。有时候我们会有这样一个需求——离线查看文档。我经常乘坐高铁来往杭州、上海两地,地铁、高铁上通常网络比较差,甚至没有网络。为此我特地去研究了一番怎样搭建 fyne 离线文档。
首先,我找到了 fyne 官方网站的 GitHub 仓库,网址为https://github.com/fyne-io/developer.fyne.io。很快我发现 fyne 官网是采用 jekyll 构建的。jekyll 是采用 ruby 语言编写的静态网页工具。jekyll 常用于搭建个人博客。它支持使用 markdown 语法编写文章,然后自动生成相应的静态页面托管在远程主机上供用户访问。为了能本地运行文档,我们必须先安装 ruby + jekyll 环境。
Windows
在 Windows 平台上,我们可以从https://rubyinstaller.org/downloads/下载 RubyInstaller 直接双击安装。这里我们下载 Ruby+Devkit 2.6.6-1(x64)。
这会同时安装 ruby 基本环境和 MSYS2 开发环境(用来编写和编译 C 扩展)。
默认会将可执行程序所在目录加入 PATH 中:
MSYS2 开发环境默认也是安装的:
ruby 安装完成之后会使用 ridk 安装 MSYS2 开发环境:
安装完成之后,打开 cmd,输入ruby -v
。如果输出正确的 ruby 版本信息,说明安装成功。如果提示命令找不到,则未安装成功,或环境变量设置不正确:
成熟的编译语言通常都有相应的包管理工具,用于下载和管理依赖。正如 node 有 npm,python 有 pip,rust 有 cargo,ruby 也有它的 gem。gem 需要独立下载安装。下载地址https://rubygems.org/pages/download。我们可以直接下载压缩包 TGZ/ZIP,或者 GEM 文件,或者使用 git 从 GitHub 仓库克隆。
- 下载压缩包之后,解压;
- cd 到解压之后的目录;
- 执行 ruby setup.rb 安装。
安装完成之后,打开 cmd,输入gem -v
。如果输出正确的 gem 版本信息,说明安装成功。如果提示命令找不到,则安装失败,或环境变量设置不正确:
Mac
在 Mac 上可以直接使用 brew 安装 ruby 和 gem。
安装 jekyll
gem 安装完成之后,安装 jekyll 就很简单了。只需要执行gem install jekyll
等待安装完成。
clone 官网仓库
我们使用 git 将官网仓库 clone 到本地计算机上:
$ git clone git@github.com:fyne-io/developer.fyne.io.git
安装依赖
cd到developer.fyne.io
目录,使用gem
安装该网站的所有依赖:
$ gem install -g
gem 安装依赖的速度取决于你的网速,耐心等待~
本地运行网站
一切准备就绪,接下来只需要输入下面的指令网站就在本地运行起来了:
$ jekyll serve
一般会出现下面的错误:
这是应该有个依赖的版本问题,我们可以使用错误提示中的命令bundle
启动:
$ bundle exec jekyll serve
运行成功:
这时,我们就可以在浏览器中输入:http://localhost:4000
就可以在本地随意浏览官网了。
总结
本文介绍如何搭建 fyne 离线文档,大家可以触类旁通~
参考
- fyne.developer.io GitHub:https://github.com/fyne-io/developer.fyne.io
- Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib
- 黑客真的会毁了比特币吗?
- Java实现Http的Post、Get、代理访问请求
- MySQL(一)之MySQL简介与安装
- 无人值守,检测程序正常运行,遇故障则重启服务
- JS魔法堂:jsDeferred源码剖析
- JavaSE(八)之集合概述
- 浅谈PHP开发与Java开发的优劣势,还不知道学习方向的可以来看看
- KVM+Qemu+Libvirt实战
- 内核级虚拟化技术
- tomcat配置ROOT目录和多站点
- IntelliJ IDEA使用(一)基本设置与类、方法模板设置
- JS魔法堂:从void 0 === undefined说起
- Maven(三)在Eclipse中使用Maven与Maven坐标
- Nginx多站点设置及负载均衡
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【排序】堆排序
- redis灵魂拷问:怎样搭建一个哨兵主从集群
- 是时候给你的鼠标指针更换样式换下风格体验了!如何卸载与安装鼠标指针?
- Linux设置虚拟内存
- SSM 单体框架 - 教育平台后台管理系统:接口文档
- java学习应用篇|使用环境变量做一些工具
- 【Java8新特性】06 新的日期和时间:LocalDate LocalTime LocalDateTime
- UNSAFE和Java 内存布局
- 【玩转Redis面试第1讲】Redis数据结构和常用命令速记
- SSM 单体框架 - 教育平台后台管理系统:课程模块
- 【玩转Redis面试第2讲】面试官再问Redis事务把这篇文章扔给他
- SSM 单体框架 - 教育平台后台管理系统:Maven 进阶使用
- SSM 单体框架 - 教育平台后台管理系统:广告和用户模块开发
- 杀死进程
- SSM 单体框架 - 教育平台后台管理系统:权限模块开发