Jekyll博客拓展--支持Latex图片加速

2024-02-18 10:32

本文主要是介绍Jekyll博客拓展--支持Latex图片加速,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


layout: post
title: Jekyll博客拓展–支持Latex&&图片加速
date: 2021-08-21 13:19:24.000000000 +09:00
categories: [环境配置]
tags: [博客, Jekyll]
mathjax: true


  • 前言
  • Mathjax支持
  • 图床迁移
    • 构建Github仓
    • 获取CDN转换规则
    • 通过PicGo上传图片
    • 直接通过git自动上传

前言

对前文博客构建的扩展支持:基于Jekyll搭建博客

Mathjax支持

添加 mathjax 支持包括两个部分:添加 mathjax 依赖;添加 mathjax 开关。 添加 _includes/mathjax_support.html :

<div id="mathjax"></div><script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [ ["$","$"]],skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],processEscapes: true}});
MathJax.Hub.Queue(function() {var all = MathJax.Hub.getAllJax();for (var i = 0; i < all.length; ++i)all[i].SourceElement().parentNode.className += ' has-jax';});
</script><script src="https://cdn.bootcdn.net/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>

添加 mathjax 开关,在 _layouts/post.html 添加:

{/% if page.mathjax %}
<span>{/% include mathjax_support.html %}
</span>
{/% endif %}

上述配置下,在page中添加 mathjax: true 开关,支持markdown格式的内联,显示结果如下:

测试内联公式: KaTeX parse error: Undefined control sequence: \* at position 8: \frac{N\̲*̲C}{G\*K\*K}

测试换行公式:

N ∗ C G ∗ K ∗ K \frac{N*C}{G*K*K} GKKNC

图床迁移

可采用的图床方案: 基于github的图床拓展 当前流行的其他图床方案 搭建个人专用图床

当前采用基于Github的图床,主要步骤为:

  • 构建Github仓用于图片保存
  • 基于jsdelivr进行CDN加速
  • 通过PicGo上传图片

构建Github仓

Github 上创建一个公开仓,用于存储博客需要的图片,本人采用的目录结构如下:

├── Imgs_blog
│   ├ Blog1
│   │   ├── 1.png
│   │   ├── 2.png
│   │   ├── 3.png
│   │   └── 4.png
│   ├ Blog2
│   │   ├── 1.jpg
│   │   ├── 2.jpg
│   │   ├── 3.jpg
│   │   ├── 4.jpg
│   │   ├── 5.jpg
│   │   ├── 6.jpg
│   │   ├── 7.jpg
│   │   └── 8.png

创建Token: Setting-->Developer settings-->Personal access tokens-->New personal access token-->copy token: img

获取CDN转换规则

通过jsdelivr进行CDN加速:

img

本人的repo仓内某张图片为: https://github.com/ZhengWG/Imgs_blog/Blog1/1.png

所以,转换后的url为: https://cdn.jsdelivr.net/gh/ZhengWG/Imgs_blog/Blog1/1.png

通过PicGo上传图片

PicGo可以将图片上传到图床(当然也可以直接通过git python工具进行自动化上传),首先需要配置,github配置:

img

创建对应文件夹然后进行图片上传(目前看不支持中文编码):

img

上传后,插入转换后的图片即可: https://cdn.jsdelivr.net/gh/ZhengWG/Imgs_blog/Blog1/1.png

直接通过git自动上传

本人采用自动化上传的方案,可以通过python的git模块:

from git import Repolocal_repo = 'https://github.com/ZhengWG/Imgs_blog/raw/master/'
repo = Repo(local_repo)# upload files
if repo.untracker_files:index = repo.indexindex.add(['*'])upload_filename = os.path.basename(local_dir)mes_commit = 'add imgs for {}'.format(upload_filename)index.commit(mes_commit)remote = self.repo.remote()remote.push()

这篇关于Jekyll博客拓展--支持Latex图片加速的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720869

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod