wordpress+markdown+latex一个解决方式

wordpress+markdown+latex一个解决方式

利用寒假时间租了台服务器,搭建了LAMP环境,用wordpress建设了第一个自己的个人网站。

遇到的问题

markdown支持不强

但在发布文章的时候遇到了很多问题,由于wordpress对markdown的支持不够,在本地写的markdown文件没办法直接像CSDN一样上传到博客,于是乎我采用插件的方式来解决这个问题。

数学公式不支持

但随之新的问题又出现了:插件对于数学公式的支持不够,对于markdown原生的$$....$$$....$并不支持,还需要将他们写成[latex].....[\latex]的形式,这样就很不方便写作

解决方式

随后尝试了各种插件,总是会遇到一些bug,导致公式显示不正常或页面崩溃,最后不得不放弃markdown插件,换另一种思路重新去看待这个问题:

  1. 将markdown文件的编辑转到本地,这样既可以防止由于服务器不稳定,文本丢失,也可以使用更得心应手的编辑器(于我而言是typora)
  2. 继续使用MathJax-LaTeX,但通过阅读说明,不难发现MathJax-LaTeX也是需要使用[latex].....[\latex]形式的公式
  3. 于是就可以在本地利用python脚本正则表达式去匹配markdown文件,将所有的$....$替换为[latex].....[\latex];同时在文件开头添加[mathjax]实现对$$.....$$的支持
  4. 最后,将生成的经过修改的文件复制HTML源码(typora中CTRL + A全选所有字符,编辑 复制为HTML代码),将HTML源码粘贴到wordpress原生编辑器代码编辑区(发布右侧的三个竖点->代码编辑器),即可完成全部操作!

文件下载

下载地址,提取码ut6e

文件由本人亲自用pyinstaller打包,请放心使用!

在本机测试未发现问题,若出现特殊情况,本人一概不负责任!我先叠个甲

使用方式

将你的md文件拖到convert_1.exe中即可执行,会在源md文件路径下生成一个名为output_源文件的输出文件

源代码

最后在文末附上源代码,技术力比较低,见谅!

# -*- coding:utf-8 -*-
import os
import sys
import re
import time
import argparse

def convert(file_path, file_name):
    input_file_path = file_path
    input_file_name = file_name
    output_file_path = os.path.dirname(file_path) + "\\output_" + file_name
    output_file_name = "\\output_" + file_name
    try:
        with open(input_file_path, 'r', encoding='utf8') as fr, open(output_file_path, 'w', encoding='utf8') as fw:
            fw.write("[mathjax]\n")
            data = fr.read()
            pattern1 = r'(?<!\$)\$([^\$]+?)\$(?!\$)'
            data = re.sub(pattern1, lambda x:'[latex]' + re.split('\$',x.group(0))[1] + '[/latex]', data)
            fw.write(data)
            
        time.sleep(0.5)
        print('Sucess!')
    except FileNotFoundError as e:
        print(e)
    
if __name__ == '__main__':

    file_path = sys.argv[1]
    print("文件路径", file_path)
    file_name = os.path.basename(file_path)
    print("文件名", file_name)
    convert(file_path, file_name)
    # print

本文的思路灵感来源于WordPress后台缓慢以及Latex公式乱码的问题-腾讯云开发者社区-腾讯云 (tencent.com)

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值