绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

mdnice是一款将markdown格式转公众号/知乎/掘金格式的在线小工具, 但最近官方版本越来越难用了.

难用1

在线工具域名从mdnice.com 转到 editor.mdnice.com , 我这种喜欢直接在浏览器地址栏敲域名的人, 要多敲7个字母(我太懒了,一个字母都不想多敲).

难用2

复制转换格式时, 会默认发到mdnice社区, 而且输入焦点会默认跳转到题目栏, 想要修改复制后的markdown后, 需要手动点击焦点到左侧编辑器的位置

难用3

mdnice需要强制登录才能使用, 虽然这样可以保存历史记录, 但并不是每个人都需要, 本来登录是一个可选项, 但官方把它搞成了必选项, 嫌麻烦的人感觉很难受.

难用4

我非常喜欢mdnice的样式, 写邮件也经常使用mdnice, 但公司内部邮件内容是不能公开的, 而mdnice每次复制, 就自动发布内容到社区的操作, 让我必须放弃mdnice官方版

难用5

我非常喜欢mdnice的前端之巅主题, 但前端之巅的小山图标会时不时的加载不出来, 然后会出现一个缺失图片的标识, 这个真的非常影响体验, 但作者一直没有修复.

好在mdnice是开源的, 如果将mdnice私有化部署, 不用登陆即可使用, 变成一个纯粹好用的在线工具

mdnice开源地址 https://github.com/mdnice/markdown-nice

部署步骤1: 下载mdnice官方包

https://github.com/mdnice/markdown-nice/archive/refs/heads/master.zip

解压后是这样的

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
image

我们需要运行以下命令,构建它(需要系统中提前安装了node.js环境)

# 安装依赖包
npm i
# 编译软件, 获得可直接部署的项目文件夹
npm run build

编译完成的文件夹压缩包下载地址: https://zhaoolee.lanzoui.com/iZqoQnqrt9e

部署步骤2: 将mdnice放到自己服务器的特定目录

示例目录/usr/share/nginx/v2fy.com/mdnice

部署步骤3: 在域名托管商处, 添加子域名解析

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
v2fy.com添加子域名解析mdnice.v2fy.com

部署步骤4: 在Nginx中添加解析信息

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
image
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
image
server {
  listen 80;
  server_name mdnice.v2fy.com;
  charset  utf-8;

  location / {
	root /usr/share/nginx/mdnice.v2fy.com;
	index index.html index.htm;
  }
}

部署步骤5: 重启Nginx

# 测试配置文件
nginx -t
# 重启nginx
systemctl restart nginx

部署完成

部署完成的私有化地址: http://mdnice.v2fy.com/

小结(要升华!):

为什么要开源? 因为开源提供了私有化部署的选项, 如果有一天, 你喜欢的软件变得不那么好用, 你可以私有化部署它, 让它以最佳的版本为你提供持续稳定的服务.

当然, 我们也不应以白嫖为荣, 软件开发者维护项目也很辛苦, 我们可以关注作者的公主号, 点点公众号文章底部的小广告,每次点击, 开发者就能获得大概5毛钱的收入, 软件开发者有了收益, 维护工具也会变得积极主动, 我们也能用到更好用的工具, 用户和开发者也就实现了真正的双赢.

使用 docker 部署 mdnice

Intro

最近 mdnice 的在线版使用开始需要登录才能访问,一方面我觉得我的文章会被保存的他们的服务器上,使用他们的平台就能轻松拿到很多文章的数据,他们甚至是可以直接拿到 markdown 原始内容去别的平台分享转发,另外一方面也是觉得以后如果加了别的限制就没有办法使用,所以还是打算自己部署一下好了,前两天看到“老法师昭昭”发的一个私有化部署的教程,可以参考前两天转发的文章 绕开登录限制,私有化部署Markdown转公众号格式神器mdnice ,感觉挺好的与我的想法不谋而合,但是我的应用都是 docker 部署的,不想再通过文件的形式拷来拷去的,不方便移植,部署也不方便,于是就打算打包一个 docker 镜像来用

Docker

mdnice 本身并没有提供 docker 的支持,于是我 Fork 了一份增加了 docker 的支持,为了方便别的小伙伴做自定义和参考,给 mdnice 提了一个 PR,可以参考:https://github.com/mdnice/markdown-nice/pull/268

Dockerfile 如下:

FROM node:12-alpine AS builder
WORKDIR /app
# install and cache app dependencies
COPY package.json .
RUN yarn
COPY . .
RUN yarn run build
FROM nginx:alpine

COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx""-g""daemon off;"]

Dockerfile 本身并不复杂,使用 node 编译项目,拿到打包后的静态资源,放在 nginx 目录下,由 nginx 对外提供服务,这里的 Dockerfile 有一些小技巧可以参考,在 build 的时候先拷贝 package.json 进行 npm 包的还原,这样如果 package.json 不发生变化就会使用镜像缓存就不会重新还原 npm 包了

打包 docker 镜像,有了 dockerfile,打包 docker 镜像就是一个很简单的事情了

docker build -t mdnice .

就可以打包一个镜像名字是 mdnice 的 docker 镜像了

使用 docker 部署

有了 docker 镜像就可以比较简单的使用,可以使用下面的命令进行部署

docker run -d --name mdnice -p 9000:80 mdnice

如果不想自己 build docker 镜像,可以使用我 build 好的镜像

docker run -d --name mdnice -p 9000:80 weihanli/mdnice

9000 是我随便定义的一个端口号,你可以根据需要修改成自己想要的端口号

部署效果如下:

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

More

如果你想进一步修改源代码,就要修改后进行再进行打包了

希望能够帮到你~~

References

  • https://github.com/mdnice/markdown-nice/pull/268

 

作为一名程序员,相信大家都关注了很多技术大佬的公众号,其中不乏文章样式看起来特别舒服的。之前也有读者朋友问我,我的公众号文章是用什么工具排版的,看起来很舒服!今天给大家推荐一下我经常使用的排版工具 MdNice,支持多达20种样式,总有一款适合你!

使用Markdown写文章

作为程序员,我们经常会写一些开发文档,Markdown作为一种轻量级标记语言,非常容易学习和使用。看看Github上面的开源项目文档,很多都是用它来写的,就知道它有多流行了!

所以我们选择使用它来写文章,准没错!使用Markdown写文章需要一个编辑器,这里我个人推荐使用下面两个。

使用IDEA来写,IDEA不愧为神器,自带Markdown支持,用来写文章也是很不错的。

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

使用Typora来写,使用Typora来写最大的好处是所见即所得,Typora的用法具体可以参考《神器 Typora !》

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

使用Markdown写的文章,支持的样式比较单一,所以我们需要一个排版工具,将Markdown转化为HTML,并添加好看的样式,如果发到公众号上去的话,还需要支持微信的样式,此时就要使用到MdNice了。

MdNice简介

Markdown Nice(简称MdNice)是一款样式丰富的 Markdown 编辑器,同时支持微信公众号、知乎和稀土掘金等平台的文章排版(能用富文本编辑器写文章的平台基本都支持)。

MdNice支持多达20种样式,总有一款适合你,接下来我们来看看有哪些样式!

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

看完这些样式是不是有种似曾相识的感觉,很多技术大佬的文章都是用MdNice排版的!

本地部署

作为一名程序员,我们不仅要会使用工具,自己动手部署一下也是很有必要的!接下来我们本地部署下,来体验一下吧!

  • 首先我们需要把项目下载到本地并导入到IDEA,项目地址:https://github.com/mdnice/markdown-nice
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
  • 接下来我们需要使用yarn命令安装项目所有依赖;
yarn
  • 然后再使用如下命令启动项目;
yarn start
  • 项目启动后即可访问,访问地址:http://localhost:3000
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
  • 此时我们会发现没有主题可以选择,需要在项目的srcjson目录下添加localThemeList.json用于定义主题,文件地址(数据太长,这里只提供格式):https://github.com/macrozheng/mall-learning/blob/master/document/json/localThemeList.json
[
  {
    "themeId""1",
    "itemId"null,
    "name""橙心",
    "cover""https://files.mdnice.com/pic/9322d897-85d5-4be1-9c9d-c392d4d39bff.png",
    "css""很长的css样式代码",
    "article""",
    "html"null,
    "exampleHtml"null,
    "authorName""zhning12",
    "authorEmail"null,
    "description""橙心的作者很懒,暂时没有描述",
    "sort"null,
    "checked"true,
    "userThemeId"21231,
    "userThemeType"0,
    "fixThemeId"null,
    "price"null,
    "tmpPrice"null,
    "isPublic"true,
    "createTime""2020-04-04T09:57:55.000+0000",
    "updateTime""2020-11-21T23:11:44.000+0000"
  }
]
  • 然后修改项目的srccomponentMenuLeftTheme.js文件,主要是导入localThemeList.json和将获取远程主题改为从本地获取;
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
  • 修改完主题之后,我们可以发现已经有20种主题可供选择了:
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程
  • 最后通过右上角的复制按钮,即可将Markdown转化为对应主题的HTML了,然后复制到公众号的编辑器中即可,是不是很方便!
绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

在线使用

当然,如果你觉得本地搭建有点麻烦,也可以直接在线使用,在线使用地址:https://www.mdnice.com/

总结

刚开始做公众号的时候,一直在寻找一款合适的排版工具,最后找到了MdNice。样式丰富,使用方便,想要使用Markdown写文章的朋友可以尝试下!

项目地址

https://github.com/mdnice/markdown-nice


微信8.0将好友放开到了一万,小伙伴可以加我大号了,先到先得,再满就真没了

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

绕开登录限制,私有化部署Markdown转公众号格式神器mdnice教程

暂无评论

暂无评论...