Markdown 转换微信公众号文章内容

前言

使用微信公众号编辑器有一个十分头疼的问题 —— 粘贴出来的代码,格式错乱,而且特别丑。markdown-weixin 是一款让 Markdown 转微信公众号内容的神器,能让 Markdown 内容,无需作任何调整就能一键复制到微信公众号使用,而且特别针对代码展示做了优化。

项目构建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 拉取源代码
$ git clone https://github.com/rqh656418510/markdown-weixin.git

# 进入源代码目录
$ cd markdown-weixin

# 安装依赖
$ npm install

# 构建项目
$ npm run build

# 查看构建生成的文件(docs目录可直接部署到Web服务器)
$ ls -al docs

演示效果

markdown-weixin-demo

使用 Docker

1
2
3
4
5
# 构建镜像
# docker build -f Dockerfile -t clay/markdown-weixin:latest .

# 启动容器
# docker run -d -p 8080:80 clay/markdown-weixin:latest

Docker 容器运行起来之后,打开浏览器访问 http://127.0.0.1:8080 即可,完整的 Dockerfile(基于 Debian 9 + Tengine) 如下:

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
FROM node:14-stretch

MAINTAINER clay<clay@gmail.com>

# 创建用户
RUN groupadd tengine && useradd -g tengine tengine

# 更换软件源
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib" > /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/debian-security stretch/updates main" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib" >> /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib" >> /etc/apt/sources.list

# 安装依赖
RUN apt-get -y update && apt-get -y upgrade && \
apt-get -y install vim tree htop apt-utils net-tools telnet wget curl && \
apt-get -y install autoconf git build-essential libpcre3 libpcre3-dev zlib1g zlib1g.dev openssl libssl-dev && \
apt-get -y autoclean && apt-get -y autoremove

# 定义Tengine的版本号
ENV VERSION 2.2.3

# 下载并解压文件
RUN mkdir -p /usr/local/src/
ADD http://tengine.taobao.org/download/tengine-$VERSION.tar.gz /usr/local/src
RUN tar -xvf /usr/local/src/tengine-$VERSION.tar.gz -C /usr/local/src/

# 创建安装目录
ENV TENGINE_HOME /usr/local/tengine
RUN mkdir -p $TENGINE_HOME

# 进入解压目录
WORKDIR /usr/local/src/tengine-$VERSION

# 编译安装
RUN ./configure \
--user=tengine \
--group=tengine \
--prefix=$TENGINE_HOME \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_concat_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_upstream_consistent_hash_module \
&& make \
&& make install

# 设置环境变量
ENV PATH $PATH:$TENGINE_HOME/sbin

# 定义APP目录
ENV APP_HOME $TENGINE_HOME/html

# 编译APP项目
RUN mkdir -p /tmp/markdown-weixin \
&& git clone https://github.com/rqh656418510/markdown-weixin /tmp/markdown-weixin \
&& cd /tmp/markdown-weixin \
&& npm config set registry https://registry.npm.taobao.org \
&& npm install \
&& npm run build

# 拷贝APP项目编译后的文件
RUN mkdir -p $APP_HOME \
&& rm -rf $APP_HOME/* \
&& cp -R -rf /tmp/markdown-weixin/docs/* $APP_HOME

# 清理文件
RUN rm -rf /usr/local/src && rm -rf /tmp/markdown-weixin

# 设置默认工作目录
WORKDIR $APP_HOME

# 暴露端口
EXPOSE 80
EXPOSE 443

CMD $TENGINE_HOME/sbin/nginx -g 'daemon off;' -c $TENGINE_HOME/conf/nginx.conf