jekyll在windows上使用和调试

GitHub Pages 静态网站部署全指南:路径、baseurl 与 Jekyll 构建原理 静态网站托管是前端开发者和开源作者的基础能力,其核心在于理解‘构建+分发’机制而非简单文件上传。GitHub Pages 并非传统服务器,而是基于 Git 版本控制、Jekyll 自动构建与全球 CDN 分发的闭环系统。掌握 baseurl 的真实语义(子路径前缀而非根目录)、资源路径必须通过 relative_url 过滤器动态生成,是解决 404 和样式丢失的关键。该方案特别适合技术文档、个人博客、项目官网等纯静态内容场景,兼顾零运维、强版本一致性与 GitHub 原生安全。本文聚焦真实部署中高频卡点, 阅读详情

1. Windows 上调试

1.1. 解决中文文件名问题

1.1.1. 修改ruby 库 URI::escape
  • 修改文件: ruby-2.1.7-x64-mingw32\lib\ruby\2.1.0\uri\common.rb
  • 修改: 在 escape 方法中 添加 us.encode!(“utf-8”)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    def escape(str, unsafe = @regexp[:UNSAFE])
      unless unsafe.kind_of?(Regexp)
        # perhaps unsafe is String object
        unsafe = Regexp.new("[#{Regexp.quote(unsafe)}]", false)
      end
      str.gsub(unsafe) do
        us = $&
        tmp = ''
        ### ### fix chinese folder name becomes illegible in jekyll 2017-07-13
        us.encode!("utf-8")
        ### ###
        us.each_byte do |uc|
          tmp << sprintf('%%%02X', uc)
        end
        tmp
      end.force_encoding(Encoding::US_ASCII)
    end
1.1.2. webrick 中文支持

webrick\httpservlet\filehandler.rb 的 prevent_directory_traversal 函数中

1
2
3
4
5
6
7
  ### ### wi-start @ 2017-07-17 
  # delete below
  #path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
  # add this
  #      this cause illegible characters in path, files in chinese folder 404
  path = req.path_info.dup.force_encoding("utf-8").encode("gbk")
  ### ### @ 2017-07-17

1.2. Windows 上报错 “Missing dependency: RedCloth”

1
2
3
4
5
6
7
8
9
10
11
12
13
>bundle exec jekyll build
Configuration file: D:/documentation-theme-jekyll/_config.yml
            Source: D:/documentation-theme-jekyll
       Destination: D:/documentation-theme-jekyll/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
You are missing a library required for Textile. Please run:
  $ [sudo] gem install RedCloth
  Conversion error: Jekyll::Converters::Textile encountered an error while converting 'hello.textile':
                    Missing dependency: RedCloth
             ERROR: YOUR SITE COULD NOT BE BUILT:
                    ------------------------------------
                    Missing dependency: RedCloth
1.2.1. 解决方法
1
2
3
4
5
6
7
8
> bundle list RedCloth
D:\ruby-2.1.7-x64-mingw32\lib\ruby\gems\2.1.0\gems\RedCloth-4.3.2\ext

> cd D:\ruby-2.1.7-x64-mingw32\lib\ruby\gems\2.1.0\gems\RedCloth-4.3.2\ext

> mkdir 2.1

> xcopy /E redcloth_scan\* 2.1\

1.3. build 时,报错: Invalid GBK character

1
jekyll 3.5.1 | Error:  Liquid error (line 77): Invalid GBK character "\xE2" on line 108
1.3.1. scssfiy 时出问题,utf-8 的 scss 文件被误认为 GBK

原因

sass 处理 “@import” 时读取文件,使用 File.read 是该方法默认使用 Windows 中文环境的 GBK 编码。

改不了内建的 File.read ,就只能改 Sass 了,例如:

  • \sass-3.5.1\lib\sass\importers\filesystem.rb
  • Sass::Importers::_find
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module Sass
  module Importers
    class Filesystem
      def _find(dir, name, options)
        full_filename, syntax = Sass::Util.destructure(find_real_file(dir, name, options))
        return unless full_filename && File.readable?(full_filename)

        # TODO: this preserves historical behavior, but it's possible
        # :filename should be either normalized to the native format
        # or consistently URI-format.
        full_filename = full_filename.tr("\\", "/") if Sass::Util.windows?

        options[:syntax] = syntax
        options[:filename] = full_filename
        options[:importer] = self
        ### ### 
        # remove
        #Sass::Engine.new(File.read(full_filename), options)
        # add
        Sass::Engine.new(File.read(full_filename, :encoding => "utf-8"), options)
        ### ###
      end
    end
  end
end
1.3.2. 解决 link tag 参数出现中文文件名时,报错:incompatible character encodings
  • 报错信息
    1
    format_error: incompatible character encodings: UTF-8 and GBK (Encoding::CompatibilityError)
    
  • 解决方法
    ruby-2.3.3-x64-mingw32\lib\ruby\gems\2.3.0\gems\jekyll-3.3.1\lib\jekyll\liquid_renderer.rb

    1
    2
    3
    4
    5
    6
    7
    8
    def file(filename)
        # 解决 link tag 参数出现中文文件名时,报错:
        #   `format_error': incompatible character encodings: UTF-8 and GBK (Encoding::CompatibilityError)
        # 加入一句代码
        filename.encode!("utf-8")
          
        ...
    end
    

1.4. drafts 草稿模式使用 liquid link tag 无法找到文件,导致无法运行

  • 问题描述
    drafts 草稿模式使用 liquid link tag 无法找到文件,这些文件放在 _posts 里面,无法在草稿模式找到。

  • 解决方法
    修改 link tag 的源码,只是警告提醒,而不中止编译。

    ruby-2.3.3-x64-mingw32\lib\ruby\gems\2.3.0\gems\jekyll-3.3.1\lib\jekyll\tags\link.rb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  def render(context)
    site = context.registers[:site]

    site.each_site_file do |item|
      return item.url if item.relative_path == @relative_path
      # This takes care of the case for static files that have a leading /
      return item.url if item.relative_path == "/#{@relative_path}"
    end

    # 找不到文档,只提醒,不报错而导致build中止。
    # 使用 drafts 的时候可能无法找到link的文档
    # 删除这一句
    #raise ArgumentError, <<eos
    # 添加这句话
    Jekyll.logger.warn "WARNING:", <<eos
    
Could not find document '#{@relative_path}' in tag '#{self.class.tag_name}'.

Make sure the document exists and the path is correct.
eos
  end

2. 附录

2.1. 找到当前 webrick 代码目录

1
2
3
shell> irb
irb> require "webrick/httpservlet"
irb> WEBrick::HTTPServlet::FileHandler.instance_method(:set_filename).source_location
Git Hook 自动化部署 Jekyll 博客:零手动发布实践 静态博客生成器(如 Jekyll)依赖 Ruby 运行时,通过 Git 触发构建流程是实现自动化部署的核心范式。其原理在于利用 Git 的 post-receive 钩子作为轻量级 CI,结合 rbenv 管理可复现的 Ruby 环境,在服务器端完成 jekyll build 并同步至 nginx 根目录。该方案规避了 GitHub Pages 的环境不可控与 CI 工具的过度复杂,以最小技术栈达成‘提交即上线’的确定性交付。适用于技术博客、团队文档等静态站点的生产部署场景,尤其解决内容创作者面临的发布延迟 阅读详情

相关推荐

windows下安装jekyll

ruby -v 1),运行安装包并解压缩至某文件夹,如 C:\DevKit 2),通过初始化来创建 config.yml 文件。在命令行窗口内,输入下列命令: cd “C:\DevKit” ruby dk.rb init notepad config.yml 3),在打开的记事本窗口中,于末尾添加新的一行- C:\Ruby200-x64,保存文件并退出。 4),回到命令行窗口内,审查(非必须)并安装。 ruby dk.rb review ruby dk.rb install 具体来说,步骤如下 1.下载证书。有的证书好像太早了,不起作用。我用了的是这个http://curl.haxx.se/docs/caextract.html,在这个界面下载cacert.pem就可以了,这个就是证书了。 2.然后将证书放在合适的位置。一般是ruby或者rails安装地方的根目录下,例如我的:E:\Ruby200\cacert.pem 3.设置环境变量,在命令行(cmd)里,输入 set SSL_CERT_FILE=E:\Ruby200\cacert.pem,这只是临时的环境变量。如果要是固定的环境变量,转下一步。 4.置固定环境变量。win7下 控制面板->系统和维护->系统->高级系统设置(或者 改变设置->高级),进入环境变量,选择系统变量,新建。输入如下 gem -v gem install jekyll

Windows上搭建Jekyll本地测试环境

jekyll 是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如disqus。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。medesky.me是我用jekyll搭建在GitHub上的另一个博客,仅仅是用来发布原创作...

diaoxu9717的博客 538

佳能C3025打印机扫描方法

佳能C3025彩色打印机扫描方法 步骤一、如果打印机处于休眠状态,可按图中标记的按钮唤醒打印机; 然后点击屏幕上的【扫描】 步骤二、扫描类型选择【文件】 步骤三、点击屏幕上的【地址簿】 步骤四、此时屏幕胡看到名字,如果看不到自己的名字,可往下滑动直到看到自己的名字,然后点击自己的名字,再点击右下角的【应用】 步骤五、点击【发送设置】,可看到文件格式为PDF,点击可以选择JPEG的图片格式。...

weixin_46019317的博客 2万+

windows环境搭建Jekyll本地服务器环境及Jekyll建站指南

Jekyll基于Ruby语言编写,需配置Ruby环境,参考:在Windows上安装Jekyll参考B站这个Up模板站链接

芸兮的博客 1058

AXI VIP配置全指南:从报错到成功仿真的完整流程(Vivado 2023版)

本文详细解析了在Vivado 2023环境中配置AXI Verification IP(VIP)进行协议仿真的完整流程。针对常见的include和import报错问题,提供了具体的解决方案和代码示例,指导用户从IP核创建、参数化配置,到构建可工作的仿真测试平台,最终实现成功仿真。

gpt4scribbler的博客 233

别再混淆了!深入浅出图解四元数姿态控制中的‘误差四元数’(附四种定义对比与仿真)

本文深入解析四元数姿态控制中的误差四元数定义差异,对比四种常见定义(如Q₀∘Q⁻¹与Q⁻¹∘Q₀)及其对PD控制性能的影响。通过刚体动力学仿真验证,揭示定义二(Q⁻¹∘Q₀)在无人机和航天器控制中的最优性能,提供工程实践建议与参数整定技巧,帮助开发者避免常见陷阱并提升控制效率。

weixin_42528191的博客 277

Ruby x Jekyll 本地调试环境搭建

笔记链接: 点击打开链接

Szh 507

AI人工智能与TensorFlow的教育科技应用

随着科技的飞速发展,AI人工智能在各个领域都展现出了巨大的潜力,教育领域也不例外。本文章的目的在于深入探讨AI人工智能与TensorFlow在教育科技中的具体应用,包括智能教学系统的开发、学生学习情况的评估与预测等方面。范围涵盖了从基础概念到实际项目应用的各个层面,旨在为教育科技工作者和相关研究者提供全面且深入的技术指导。本文将首先介绍AI人工智能和TensorFlow的核心概念及其联系,让读者对相关技术有基本的了解。接着详细讲解核心算法原理和具体操作步骤,并结合数学模型和公式进行深入分析。

AI智能探索者的博客 1693

使用jekyll本地调试可以访问静态资源,但是上传至GitHub无法访问的问题

jekyll模板地址 1. 可能是_site文件被忽略,检查.gitignore文件 .gitignore文件有可能将_site文件添加为忽略文件,以至于git add . 等后续操作将该文件忽略,从而无法上传至远程仓库的问题。 如下,是我下载jekyll模板后,存在的内容,可以看到_site文件以及.sass-cache文件都被忽略了。 _site .DS_Store *.swp .sass-cache *~ 解决:检查远程仓库是否有_site文件,将.gitignore文件中...

HO1_K的博客 1206

PMOS缓启动电路设计实战:用LTspice优化上电时序,把60A冲击降到15A

本文通过一个实战案例,深入解析了PMOS缓启动电路如何有效抑制上电冲击电流。文章指出,低ESR电容是导致冲击电流飙升的元凶,并详细阐述了利用LTspice仿真工具,通过优化栅极电阻和栅源电容等参数,将高达60A的冲击电流成功降至15A的设计与优化过程,为电源开关电路设计提供了可复用的方法论。

onion的博客 896

2.6 SST的核心性能指标体系

本文构建了固态变压器(SST)的核心性能指标体系,涵盖电气性能、可靠性、经济性和环境适配性四大类指标。电气性能指标包括运行效率(≥97%)、功率密度(≥900kVA/m³)、谐波畸变率(≤3%)等关键参数;可靠性指标设定MTBF≥43800h、年均故障率≤1.2次/年等标准;经济性指标对比分析了初始购置成本(45-55万元)和全生命周期成本(48-55万元);环境适配性指标则明确了温度、海拔等工况要求。该体系采用量化公式和国标限值,为SST的性能测试、选型和优化提供了统一标准。

技术工作者 597

GitHub Jekyll博客本地Win开发环境搭建

在Windows系统上搭建Jekyll博客本地开发环境的完整步骤

handsomestWei的博客 533

GaussDB本地安装手册(主备模式)

如果实例状态是Normal,则安装成功。三节点集中式配置文件。

Sebastien23的博客 2633

Windows 端安装jekyll

github中的page功能支持将代码库中的文件以静态网站的形式展示。支持jekyll框架下的网站转换。jekyll有很多网站模板,点击进入jekyll主题网站,选好主题模板后,只需要修改post里的文章即可在主页上看到文章了。post里的文件支持html格式,也支持makrdonwn格式。本篇是用makrdown写的。我的github的地址https://yybingyybing.github.io/ 在写完文章后,文章里多少可能会有问题,防止上传到github后出错,反复调试麻烦,可以在本地搭一个jek

yybing的专栏 640

微信公众号 - 最新详细实现H5网页接入微信支付功能,开发移动端、PC端网站集成使用微信支付流程及示例代码,公众号网页利用JS-SDK/JSAPI/H5支付授权唤起微信支付,可脱离微信环境支付或内置浏

微信公众号,微信支付,网页,移动端,h5,扫码支付,二维码付款,手机网页,电脑pc网页生成支付二维码,js-sdk,jsapi,外部浏览器调起微信支付,脱离微信环境,在微信内置浏览器如何进行微信支付,前端H5微信支付,web网站,vue2,vue3,nuxt2,nuxt3,jquery,微信公众号h5支付流程,如何实现,怎么做,回调报错,redirect_uri参数错误,必须部署才能调试吗,怎么不打包发布就能在本机测试,微信H5支付能力,uniapp微信支付,h5页面调起支付,支付没反应,无效,失败,H5页

🏆 前端领域优质创作者 6102

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jekyll and github.io搭建博客遇到的问题

博客地址可以参见https://xisynotz.xyz/ 1.调试时,页面修改不能反映 这是因为浏览器(chrome)缓存的缘故。 1.可以在调试前清除浏览器缓存,或ctrl+shift+delete。 2.强制刷新页面,使用ctrl+shift+r强制刷新,不使用浏览器缓存来刷新页面。 3.也可以设置浏览器,在调试页面中勾选Disable cache。 2.在windows下安装jeky...

saber_jk的博客 966

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Windows下Jekyll配置过程详解

Jekyll 是一个简单的网站静态页面生成工具。由于是用Ruby语音编写的,所以在Windows系统上配置起来还是稍微有点繁琐的。具体过程如下: 安装Ruby:在Windows系统上当然使用rubyinstaller了, 猛击我下载 (笔者使用的版本是:Ruby 1.9.3-p545)安装Ruby DevKit: 猛击我下载安装Jekyll安装Python: 猛击我下载安装Pygments

请叫我小明 (坐标:西安) 794

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Jekyll安装教程

windows环境下安装 1. 安装 Ruby 官网:http://rubyinstaller.org/downloads/ 测试:Ruby是否安装成功,执行命令ruby -v 注意:勾选 “Add Ruby executables to your PATH”,安装路径不能包含空格 2. 安装 DevKit 官网:http://rubyinstaller.org/d

huapro_vip的博客 377

win下jekyll调试博客不方便,不妨用手机试试吧!

win下jekyll调试博客不方便,还有很多错误。而博客每次写完或调试完需要重复git add, git commit, git push,即使有了github desktop,一样是很不方便。而在jekyll官网上我们知道jekyll博客支持本地调试,麻烦的是搭建环境,相比于windows,Linux下的环境搭建就方便的多了,本文就介绍怎么用安卓手机来搭建环境本地调试博客程序。旧手机搞他,再做个...

weixin_44235031的博客 420

在Windows下安装Jekyll

1)首先安装ruby:https://rubyinstaller.org/downloads/ 这里要注意,不要安装最新的版本,安装有配套DevKit的版本,如2.3.3(x64) 同时下载DevKit,解压到自己的目录,比如D:/DevKit 2)从启动ruby的命令行,Start Command Prompt with Ruby 执行如下命令: >cd D:/DevKit >rub

波粒二象性的专栏 742

完善本地搭建的jekyll环境(Windows)

序:上篇文章虽然在本地搭建好了jekyll环境,但是却存在一些问题,如通过jekyll new创建的站点无法正常跑起来、中文编码有问题。这说明之前搭建的环境有不周之处。 PS:因之前自己搭建环境时并未做过多记录,现在写起文章来需要在模拟几次安装,所以本文写的有点慢,毕竟不像当初只是为了安装,现在是为了弄清楚安装。立足点不同,需要做的事情也不同,这次需要做许多确认工作。 一、语法...

weixin_30458043的博客 177

#打开cmd指定路径_CMD

也就是windows系统里的命令提示符说白了或者准确的来说也就是可以运行代码的一个程序Cmd如果没有安装其他东东,直接就可以运行windows内置的一些代码比如说来项目一IP地址,发送一个测试数据包,或者取消和某个主机的连接都是通过cmd来敲对应的命令像我们聊到的Jekyll博客引擎,也是要通过cmd来进行本地调试也就是打开cmd之后,通过CD命令到指定目录(也就是CD加目录路径)然后...

weixin_35793357的博客 381

jekyll+GithubPage搭建一个免费的个人网站

虽然也可以直接不搭建本地环境,直接在githubpage上操作看效果。但在本地调试更有效率。然后就可以进入网页了。,检查是否成功安装。

weixin_42968757的博客 935

Jekyll Compose与编辑器集成:配置Atom、VSCode等编辑器自动打开

Jekyll Compose是一个强大的Jekyll插件,专门为内容创作者和博客作者设计,旨在**简化Jekyll写作流程**,提供一系列命令行工具来管理文章、草稿和页面。通过**编辑器自动打开功能**,你可以实现创建内容后立即在喜欢的编辑器中开始写作,极大提升工作效率。本文将详细介绍如何配置Jekyll Compose与Atom、VSCode等流行编辑器的集成,让你的Jekyll写作体验更加流畅

gitblog_00293的博客 397

踩坑记录丨记Jekyll + Github Pages搭建个人博客时遇到的各种问题

踩坑之一:Windows下搭建失败,不支持therubyracer。踩坑之二:Linux下jekyll本地调试可以访问静态资源,但是上传至GitHub无法访问

AXYZdong的博客 1793

Jekyll Postfiles 插件使用教程

Jekyll Postfiles 插件使用教程 1. 项目介绍 jekyll-postfiles 是一个 Jekyll 插件,旨在简化与 Markdown 帖子关联的静态文件(如图片、PDF 等)的管理。通常,Jekyll 建议将这些文件放在一个全局的 assets/ 或 downloads/ 文件夹中,但这可能会导致文件管理变得复杂和繁琐。jekyll-postfiles 插件允许你将这些文件与...

gitblog_00073的博客 560
上一篇: 使用 android adb命令 录像 screenrecord 和 截屏 screencap
下一篇: 使用 git alias (pushall) 将branch 向所有 remote push
NetMicrobe
博客等级 码龄22年 27粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值