专栏首页GoUpUp在本地运行 fyne 官网

在本地运行 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 仓库克隆。

  1. 下载压缩包之后,解压;
  2. cd 到解压之后的目录;
  3. 执行 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

安装依赖

cddeveloper.fyne.io目录,使用gem安装该网站的所有依赖:

$ gem install -g

gem 安装依赖的速度取决于你的网速,耐心等待~

本地运行网站

一切准备就绪,接下来只需要输入下面的指令网站就在本地运行起来了:

$ jekyll serve

一般会出现下面的错误:

这是应该有个依赖的版本问题,我们可以使用错误提示中的命令bundle启动:

$ bundle exec jekyll serve

运行成功:

这时,我们就可以在浏览器中输入:http://localhost:4000就可以在本地随意浏览官网了。

总结

本文介绍如何搭建 fyne 离线文档,大家可以触类旁通~

参考

  1. fyne.developer.io GitHub:https://github.com/fyne-io/developer.fyne.io
  2. Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib

本文分享自微信公众号 - GoUpUp(GoUp-Up),作者:大俊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Go 每日一库之 zerolog

    每个编程语言都有很多日志库,因为记录日志在每个项目中都是必须的。前面我们介绍了标准日志库log、好用的logrus和上一篇文章中介绍的由 uber 开源的高性能...

    用户7731323
  • Go 每日一库之 jsonrpc

    在上一篇文章中我们介绍了 Go 标准库net/rpc的用法。在默认情况下,rpc库内部使用gob格式传输数据。我们仿造gob的编解码器实现了一个json格式的。...

    用户7731323
  • Go 每日一库之 rpcx

    在之前的两篇文章rpc和json-rpc中,我们介绍了 Go 标准库提供的rpc实现。在实际开发中,rpc库的功能还是有所欠缺。今天我们介绍一个非常优秀的 Go...

    用户7731323
  • php实现通过stomp协议连接ActiveMQ操作示例

    本文实例讲述了php实现通过stomp协议连接ActiveMQ操作。分享给大家供大家参考,具体如下:

    砸漏
  • 【机器学习】Kmeans

    本文介绍了K-means聚类算法。首先介绍了K-means算法是一种原型聚类算法,其类表示为类中心点,常用欧式距离作为相似性度量。然后由类内紧致准则给出了Kme...

    yuquanle
  • 交换机基本配置与ios命令使用

    泽阳
  • RedTigers Hackit SQL 注入题解

    今天在一个QQ群看到有同学做http://redtiger.labs.overthewire.org/上的题目。随手做了几题,发现还有点意思,有的题目我也一时想...

    用户1631416
  • 03-STM32+ESP8266+AIR202/302终端管理篇-服务器配置GET,POST接口(PHP版)(Linux系统)

    https://mnif.cn/PHP/php_get.php?username=yang&password=11223344

    杨奉武
  • Python 黑魔法之属性拦截

    我们在昨天的文章(Python 黑魔法之内存优化)讲了一种黑魔法,今天我们来讲另一种:「属性拦截」。当我们访问某个类或者是实例属性的时候,如果它不存在的话,就会...

    Rocky0429
  • 降维打击(序列化)的流行手段

    上次介绍了message pack,一种非常有潜力的数据格式,市面上还有其他的格式比如json,xml,bson,甚至一些标记语言(html,markdown...

    Jean

扫码关注云+社区

领取腾讯云代金券