Solo 支持 Hexo/Jekyll 数据导入

本贴最后更新于 1733 天前,其中的信息可能已经水流花落

启动时导入指定目录

Solo v2.2.0 开始将支持对 Hexo/Jekyll 两款静态博客系统的文章导入,具体使用方法如下:

  1. 在 Solo 根目录下放置 markdowns 目录,里面放置待导入的一些 md 文件(可新建目录,方便标识,比如可将 Hexo 的 _posts 文件夹直接拷贝进来)
  2. 重启 Solo,启动后将逐篇进行自动导入,可通过日志查看导入情况
  3. 导入结束后原 md 文件将被重命名为 .md.{时间毫秒} 这样的格式,如不需要,可将这类后缀的文件删除
  4. 导入失败的 md 文件不会被重命名,可将日志和 md 文件反馈给我们,以帮助我们继续改进 💓
  5. 导入完成后会退出进程,需要再次启动 Solo

另外,目前仅支持已发布的 post,不支持 draft、page 等。

运行时通过上传 Markdown Zip 包导入

自 v4.2.0 起支持上传 Markdown Zip 包来导入文章,请在工具 - 其他 - 数据导入中选择上传即可。

技术实现细节

每个 md 文件都会按照 Hexo/Jekyll 定义的头部进行解析,已确定标题、标签等:

  • Hexo 头
  • Jekyll 头
  • 支持头信息中使用 descriptionsummaryabstract 作为文章摘要,如果没有的话将自动截取正文部分
  • 如果没有定义头信息,或者解析失败,则以文件名作为标题、Note 作为标签、当前时间作为发布时间进行导入,这也是导入普通 md 文件的规则

文章导入后为何时间不对?

可能是因为头部中的日期时间没有指定时区导致,可将原 md 文件日期后指定时区 +8,比如 date: 2020-01-01 20:23:03 +8,具体讨论细节请参考这里

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1439 引用 • 10067 回帖 • 492 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 13 关注
  • Jekyll
    5 引用 • 83 回帖 • 1 关注
  • 导入
    2 引用 • 59 回帖
2 操作
88250 在 2020-06-16 18:27:26 更新了该帖
88250 在 2020-05-21 18:41:34 更新了该帖

相关帖子

优质回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 👍

  • alanfans via A3010

    6

  • wuhongxu

    👍 👍 👍

  • scorpion via macOS

    110110110, 我的太少,直接手工搬一下 😈

    1 回复
  • vgm

    😆 👏

  • 你也用静态博客?

    1 回复
  • scorpion

    是啊,我用的 Jekyll

    1 回复
  • 你的内心是向往前端的

    1 回复
  • scorpion

    不,我是白帽子 😏 静态博客不好分类,我都想换了,不想过多折腾插件之类的东西了。现在感觉要有所聚焦,不能啥都去乱,没时间啊

    1 回复
  • 哈哈。来用 solo 呀。准备入坑啥?

    1 回复
  • scorpion

    WordPress 或者 Joomla 选一个

    1 回复
  • 😥

    1 回复
  • scorpion

    PHP 还熟一点,Java 已经荒废了

    1 回复
  • 话说你现在可以发帖了么?

    1 回复
  • scorpion

    等我把头像重新弄一下就可以了

    1 回复
  • 但是感觉你的头像是已经弄过的呀

    1 回复
  • scorpion

    现在可以了

  • linyu 1

    支持一下

  • someone

    很好

  • vinasis

    好啊

  • Blackman99

    @88250 请教, docker 部署方式如何导入 Markdown

    1 回复
  • 88250

    请把要导入的目录挂载到 /opt/solo/markdowns 即可。

    1 回复
  • Blackman99

    如果我没有/opt/solo 文件夹呢,创建就可以吗
    image.png

    1 回复
  • 88250 1

    --volume 待导入目录/:/opt/solo/markdowns/ 这样应该就可以了,其中 待导入目录 是你寄主机上的绝对路径。

    2 回复
  • Blackman99

    感谢,已经完成导入

  • hsowan via macOS

    docker 导入?

    1 回复
  • 88250

    挂载本地目录到 /opt/solo/markdowns 就可以了。

  • hongyuanqiu

    你好,楼主。我有些不明白。

    待导入目录 是寄主机上的绝对路径,是什么意思?是针对啥子的绝对路径?
    楼主,能举一个例子吗?

    1 回复
  • 88250

    就是你宿主机上的绝对路径,比如 /home/d/markdowns

  • hongyuanqiu

    谢谢,楼主;我通过查询 docker volume 查到相关资料,现在我把能成功导入 markdown 的配置粘贴下来,希望能帮到其他人。

    docker run --detach -v /opt/solo/markdowns/:/opt/solo/markdowns/:ro --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="root" \ --env JDBC_PASSWORD="" \ --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ --rm \ --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \ b3log/solo --listen_port=668 --server_scheme=http --server_host=www.xx.site --server_port=666
    2 回复
    1 操作
    hongyuanqiu 在 2019-09-08 14:41:01 更新了该回帖
  • 88250

    XX 是你宿主机要挂载的路径,参数具体格式请参考 Docker 文档。

    1 回复
  • LainNetWork via iPhone

    您好,在手机端浏览文章的代码框的时候,代码框可以上下滑动,但是不能左右滑动,也没有滚动条,请问有什么好点的解决办法吗?

    1 回复
  • 88250

    稍后进行改进,谢谢反馈!

    1 回复
  • LainNetWork 1

    不知道是不是 safari 的原因。。电脑上开手机模式调试时是有的,在 safari 上就变成自动换行了。。

    1 回复
  • 你说的是 Issue #130 · b3log/vditor 这个问题么?

    1 回复
  • 对的,在 iphone 的 safari 上浏览时,代码会换行...但是安卓上看就会有横向滚动条,我觉得这种方式看得更舒服点。我这几天也在试着解决这个问题,但是前端还是太苦手了...😭

    1 回复
  • Vanessa 1 via macOS

    收到,可以关注 Issue #141 · b3log/vditor

    1 回复
  • LF-WEI

    请问每次重启 solo 都要删除容器,重建实例吗?

    1 回复
  • LainNetWork via iPhone

    感谢!

  • LF-WEI
    该回帖仅作者和楼主可见
    1 回复
  • 88250

    你用的是 MySQL 还是 H2?只要注意挂载宿主机磁盘就没问题了。

    1 回复
  • LF-WEI

    最近一直在忙别的项目组,今天重启了一下数据库,发现起不来了,提示
    2019-10-18T18:18:36.462648Z 0 [ERROR] [MY-010326] [Server] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
    2019-10-18T18:18:36.462710Z 0 [ERROR] [MY-010952] [Server] The privilege system failed to initialize correctly. For complete instructions on how to upgrade MySQL to a new version please see the 'Upgrading MySQL' section from the MySQL manual.
    好像是之前动过初始化的 mysql 表,找过很多案例还是没能解决,求助大佬!

  • LF-WEI

    尝试了更改配置文件,从其他目录初始化 mysql 目录复制过去,报错还是没变化。

    1 回复
  • 88250

    你打开数据库看看,看上去是被删库了。

    1 回复
  • LF-WEI
    该回帖仅作者和楼主可见
  • chenruhai

    我想导入

  • chenruhai

    如果是.sql 文件呢?我使用的是 mysql 数据库。

    1 回复
  • 88250

    其他程序的 SQL 导入不了。

    1 回复
  • chenruhai

    就是说不能使用 mysql 进行 solo 博客旧数据的导入了。使用 hexo 的话是怎么样导入的? 是参考这个吗?https://hacpai.com/article/1498490209748

    1 回复
请输入回帖内容 ...