使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

  • 使用gitlab的CI/CD实现logseq笔记自动发布为单页应用
    • 如何实现将logseq的笔记发布成网站
    • 使用 logseq-publish-docker 实现手动发布
    • 使用gitlab的CI/CD实现自动发布
    • 过程中的问题及解决
    • 参考资料

使用gitlab的CI/CD实现logseq笔记自动发布为单页应用

如何实现将logseq的笔记发布成网站

Logseq 是一个侧重于隐私的知识管理和协作的平台。可以实现笔记的完全本地化存储。并且可以基于Git实现多人协作。logseq官网的帮助网站,内容看起来是logseq编写的,并且实现了网站的发布。本文将介绍如何实现logseq笔记的网站发布。
在这里插入图片描述

使用 logseq-publish-docker 实现手动发布

logseq-publish-docker这个docker镜像,可以实现将logseq图谱发布成单页应用Single Page Application (SPA),灵感来自官方解决方案Logseq发布spa。可以在支持docker的服务器上将Logseq图谱发布成单页应用,无需配置开发环境。

1、在转换前要将logseq图谱中的笔记设置为发布状态

在这里插入图片描述

2、拉取镜像

$ docker pull ghcr.io/l-trump/logseq-publish-spa:latest

3、使用镜像将logseq知识图谱转换为单页应用

$ docker run -v ./graph:/graph:ro -v ./out:/out \-e PUB_THEME=light -it ghcr.io/l-trump/logseq-publish-spa:latest
  • “./graph” 是logseq图谱的位置
  • “./out” 是转换完的单页应用的存储位置

这是我自己测试时的指令

$ docker run -v /home/root/logseq-test-graph:/graph:ro -v /home/root/out:/out \ -e PUB_THEME=light -it ghcr.io/l-trump/logseq-publish-spa:latest

在这里插入图片描述

4、使用nginx发布,“.out” 目录下的文件

使用gitlab的CI/CD实现自动发布

为了保证图谱的隐私性,选择使用本地部署的gitlab来实现logseq图谱的多人协作,同时实现自动的发布。
1、配置logseq图谱的gitlab远程仓库
2、编写自动发布的“.gitlab-ci.yml” 文件

image:name: ghcr.io/l-trump/logseq-publish-spa:latestentrypoint: ["/bin/sh", "-c", "ln -snf /bin/bash /bin/sh && /bin/bash -c $0" ]stages:- deploypages:only:- masterstage: deployenvironment: livevariables:THEME: lightACCENT_COLOR: bluescript:- pwd- mkdir -p public- node /opt/logseq-publish-spa/publish_spa.mjs $CI_PROJECT_DIR/public --static-directory /opt/logseq-static --directory $CI_PROJECT_DIR --theme-mode $THEME --accent-color $ACCENT_COLORartifacts:paths:- public

3、注册项目的gitlab-runner

# 执行注册指令
$ gitlab-runner register
Please enter the gitlab-ci coordinator URL:
# 第一个参数输入 settings -> CI/CD -> Runners settings -> Setup a specific Runner manually 中的 第二个参数
Please enter the gitlab-ci token for this runner:
# 第二个参数输入 settings -> CI/CD -> Runners settings -> Setup a specific Runner manually 中的 第三个参数
Please enter the gitlab-ci description for this runner:
# 第三个参数输入执行器的名称
Please enter the gitlab-ci tags for this runner:
# 第四个参数输入执行器的标签
Whether to run untagged builds [true/false]:
# 第五个参数,是否执行无标签的构建选择 true
Whether to lock Runner to current project[true/false]:
# 第六个参数,是锁定执行器到当前项目选择 true
Please enter the executor:docker,docker-ssh,parallels,shell,viritualbox,docker+machine,kubernetes,ssh,docker-ssh+machine:
# 第七个参数,输入执行器,输入 docker
Please enter the default Docker image
# 第八个参数,输入默认docker镜像,输入ghcr.io/l-trump/logseq-publish-spa:latest

注册成功后,会在 /etc/gitlab-runner/config.toml 文件中会增加一个执行器
在这里插入图片描述

注册成功后,在gitlab中会显示刚注册的执行器
在这里插入图片描述

logseq图谱提交到gitlab中就可以触发自动构建实现logseq图谱的自动发布

过程中的问题及解决

  • 1、由于gitlab服务器在内网,无法拉取 logseq-publish-spa 镜像,即使开通外网访问权限也无法拉取镜像报Error response from daemon: manifest for ghcr.io/l-trump/logseq-publish-spa: 错误。

    在这里插入图片描述

    解决方法:使用Nexus构建本地docker Image 镜像仓库,将“logseq-publish-spa” 镜像下载后推送至本地的Nexus docker Image 镜像仓库中。“.gitlab-ci.yml” 文件中使用本地镜像。

  • 2、在执行自动发布的时报 “sh: 1: set: Illegal option -o pipefail”错误
    在这里插入图片描述

    解决方法:在 “.gitlab-ci.yml”文件中的 entrypoint 中增加 “ln -snf /bin/bash /bin/sh && /bin/bash -c $0” 参数,改为最终的形式, entrypoint: [“/bin/sh”, “-c”, “ln -snf /bin/bash /bin/sh && /bin/bash -c $0” ]

参考资料

官方发布项目
https://github.com/L-Trump/logseq-publish-docker - Docker image of this repository. This repository can be used with GitLab.
logseq-publish-docker
Gitlab-Runner注册

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[AIGC] 常用的OLAP数据库:为数据分析提供强大的支持

导语:在大数据时代,数据分析成为了企业决策的重要依据。为了高效地处理和分析海量的数据,OLAP数据库应运而生。本文将介绍几种常用的OLAP数据库,为数据分析提供强大的支持。 一、Snowflake Snowflake是一种云原生的OLAP数据库&a…

win10和mac之间如何共享文件夹

我用的mac版本是 macOS Ventura ,其他版本的操作可能略有不同 在 macOS Ventura 上设置共享文件夹 打开“系统设置”:点击屏幕左上角的苹果菜单 () > 系统设置。选择“通用”:在左侧边栏中找到并点击“通用”。选择“共享”&#xff1…

第二届重庆国际渔业博览会

The 2th Chongqing International Fisheries & Seafood Expo 时间:2024年10月25-27日 地点:重庆国际博览中心 同期举办:第十六届中国(重庆)火锅美食文化节暨第九届中国(重庆)国际火锅产业博览会 展会规模: 展出…

利用Java的`java.util.concurrent`包优化多线程性能

利用Java的java.util.concurrent包优化多线程性能 一、引言 在Java的多线程编程中,性能优化是一个永恒的话题。随着多核CPU的普及和计算任务的日益复杂,多线程编程已经成为提高应用程序性能的重要手段。然而,多线程编程也带来了一系列的问题…

(论文版)深度学习 | 基于 VGG16-UNet 语义分割模型的猫狗图像提取研究

Hi,大家好,我是半亩花海。本实验本项目基于 VGG16-UNet 架构,利用 Labelme 标注数据和迁移学习,构建高效准确的猫狗图像分割模型。通过编码器-解码器结构(特征提取-上采样)提升分割精度,适应不同…

VBA数据库解决方案第十二讲:如何判断数据库中数据表是否存在

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

第11章 规划过程组(11.6规划进度管理)

第11章 规划过程组(二)11.6规划进度管理,在第三版教材第385页;#软考中级##中级系统集成项目管理师# 文字图片音频方式 第一个知识点:主要输出 1、进度管理计划 准确度 定义活动持续时间估算的可接受区间&#xff0…

第二周:计算机网络概述(下)

一、计算机网络性能指标(速率、带宽、延迟) 1、速率 2、带宽 3、延迟/时延 前面讲分组交换的时候介绍了,有一种延迟叫“传输延迟”,即发送一个报文,从第一个分组的发送,到最后一个分组的发送完成的这段时…

机器学习算法 —— 决策树

🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 目录 背景描述数据说明数据来源决策树的介绍和应用决策树的介绍决策树的优点决策树的缺点决策树的应用实战演示导入模块训练模型数据和模型可视化(需要用到graphviz可视化库)模型预测基于pengui…

[Spring Boot]Rest服务调用远程Post请求

文章目录 pomconfig类业务类-Post方法调用 pom <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version> </dependency> <dependency><groupId>…

医疗AI革命,为何多模态大模型难以突破?

在人工智能的浪潮中&#xff0c;多模态大模型以其强大的数据处理能力和深度学习算法&#xff0c;被寄予厚望于医疗影像分析、辅助诊断等领域。然而&#xff0c;现实情况却远非如此乐观。本文将带您深入了解多模态大模型在医疗辅助诊断领域的潜力与局限&#xff0c;揭示其面临的…

ue5导航网格设置

AI使用导航网格进行移动&#xff0c;所以&#xff0c;先设置导航网格边界体积 2&#xff0c;使导航网格边界体积覆盖AI所需要的场景&#xff08;绿色区域&#xff09;&#xff0c;x,y&#xff0c;z在这里都扩大到原来的10倍 3&#xff0c;打开actor的“启用tick并开始” 4&…

PHP和phpSpider:如何应对网站反爬虫的JS挑战?

php和phpspider&#xff1a;如何应对网站反爬虫的js挑战&#xff1f; 随着互联网技术的发展&#xff0c;网站对于爬虫脚本的防御也越来越强大。网站常常通过使用Javascript技术来进行反爬虫&#xff0c;因为Javascript可以动态生成页面内容&#xff0c;使得简单的爬虫脚本很难…

MathType8.0最新官方免费版 功能强大的数学公式编辑器

MathType 是款功能强大的数学公式编辑器&#xff0c;可以让用户轻松地在各种文档中插入复杂的数学公式和符号。它支持手写输入公式&#xff0c;方便用户直接通过鼠标或触摸屏操作来创建公式。MathType 的符号丰富&#xff0c;几乎涵盖了所有数学、物理和化学等领域所需的符号。…

128陷阱详解

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

windows下启动redisSentinel

如果已经安装redis的就继续往下看&#xff0c;还没安装redis&#xff0c;先安装一下redis 安装完redis之后&#xff0c;打开redis的目录。 新建一个sentinel.conf文件 # 端口号 port 26379# Sentinel 监控的主节点信息&#xff0c;格式为 <master-name> <ip> &l…

球形气膜:现代娱乐场馆的最佳选择—轻空间

随着科技的发展和人们对高品质生活的追求&#xff0c;娱乐场馆的建设迎来了新的变革。球形气膜结构凭借其独特的优势&#xff0c;逐渐成为现代娱乐场馆建设的最佳选择。轻空间将介绍球形气膜的优势&#xff0c;并探讨其在不同应用场景中的广泛应用。 球形气膜的优势 1. 独特的建…

Nuxt:父传子,将字段作为v-model异常

我们有个需求需要通过父级改变状态&#xff0c;来控制子组件的隐藏/显示。 一开始我们使用Nuxt子父传值参考&#xff1a; 但是在将传过来的值作为 v-model 时候&#xff0c;报错 v-model cannot be used on a prop, because local prop bindings are not writable。 这个错…

Spark性能优化(第22天)

一、Spark性能优化概述 二、Spark性能优化策略 三、理论分析 四、实践案例分析 五、监控与诊断 六、持续优化与改进 文章目录 引言一、Spark性能优化概述二、Spark性能优化策略1.1 开发调优2.1资源调优3.1 数据倾斜调优4.1 Shuffle调优 三、理论分析四、实践案例分析五、监控与…

使用Java构建智能物联网系统

使用Java构建智能物联网系统 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何利用Java构建智能物联网&#xff08;IoT&#xff09;系统&#…