Logseq 插件開發實戰四:發布到官方插件市場

🚩系列回顧

  • 初識插件機制并實現自動壓縮粘貼的圖片
  • 國際化 I18N 與配置多語言
  • 自定義斜線命令 SlashCommand
  • 發布到官方插件市場

開源地址:logseq-plugin-image-tiny,歡迎來?。


🐞 插件上線問題記錄

問題描述
本地插件開發完成后,我打包package.jsonindex.jslogo.png文件到另一臺電腦(未聯網),結果發現插件加載失敗,從控制臺上看,是因為無法從互聯網下載所需要的依賴(lsplugin.user.min.js)。

解決辦法

經過一番探索,發現每個插件其實都是一個iframe加載對應的index.html(如果插件本身沒有此文件,logseq 會自動創建)。而我的插件沒有用到打包工具,發布時沒有打包@logseq/libs依賴,所以需要從互聯網下載,導致了上述的問題。

所以解決方案就很明了啦,一是增加打包配置,二是手動依賴。這里我果斷選擇后者,等之后有時間再研究怎么配置打包工具。

index.html 內容如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>logseq-image-tiny</title><script src="lsplugin.user.min.js"></script>
</head><body><script type="module" src="index.js"></script>
</body></html>

📦 插件市場

logseq 插件開發完成后,我們可以發布到官方插件市場。之后,用戶在 logseq 內可以檢索并安裝我們的插件(想想就滿滿的成就感😎)。

此時,我們需要安裝官方教程進行配置。

? 發布流程

  1. Fork this repo to your Github account.
  2. Create a package directory under ./packages root based on your plugin name.
  3. Write a manifest.json file to the package root. Valid fields as follows:
    • title- A title for plugin list item display.
    • description- A short description about your plugin.
    • author- The author’s name.
    • repo- The GitHub repository identifier, like {user}/{repo}.
    • icon- [optional] A logo for better recognition. default: ""
    • theme- [optional] A theme plugin? default: false
    • sponsors - [optional] Sponsor external links. default: []
    • web - [optional] Whether the web browser platform is supported. default: false
    • effect - [optional] Whether the sandbox is running under the same origin with host. default: false
    • unsupportedGraphType - [optional] Flag to indicate that which graph type does not to be supported. value: file | db
  4. Make a Github Pull Request 😃

🚀 發布自己的插件

Fork官方插件市場倉庫




這樣我們就能修改倉庫內容啦。

編寫插件信息

我們在./packages目錄下新建插件同名目錄,并添加manifest.json文件,內容如下:

{"title": "Image Auto Tiny","description": "粘貼圖片到筆記時,自動轉換為 WebP/AVIF 格式。A plugin that automatically converts images to webp/avi format to reduce image storage volume.","author": "0604hx/集成顯卡","repo": "0604hx/logseq-plugin-image-tiny","icon": "./icon.png","effect": true
}

配置工作流

logseq 插件需要配置一個有效的 github CI 工作流,我們在項目根目錄下創建文件.github/workflows/main.yml,內容如下(根據實際情況填寫):

# This is a basic workflow to help you get started with Actionsname: Releaseenv:PLUGIN_NAME: logseq-image-tiny# Controls when the workflow will run
on:push:tags:- "*" # Push events to matching any tag format, i.e. 1.0, 20.15.10# Allows you to run this workflow manually from the Actions tabworkflow_dispatch:# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:release:# The type of runner that the job will run onruns-on: ubuntu-latest# Steps represent a sequence of tasks that will be executed as part of the jobsteps:# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it- uses: actions/checkout@v2- uses: actions/setup-node@v2with:node-version: "14.x"- name: Buildid: buildrun: |mkdir ${{ env.PLUGIN_NAME }}cp README.md package.json logo.png lsplugin.user.min.js index.js ${{ env.PLUGIN_NAME }}zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }}lsecho "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)"- name: Create Releaseid: create_releaseuses: actions/create-release@v1env:GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}VERSION: ${{ github.ref }}with:tag_name: ${{ github.ref }}release_name: ${{ github.ref }}draft: falseprerelease: false- name: Upload zip fileid: upload_zipuses: actions/upload-release-asset@v1env:GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}with:upload_url: ${{ steps.create_release.outputs.upload_url }}asset_path: ./${{ env.PLUGIN_NAME }}.zipasset_name: ${{ env.PLUGIN_NAME }}-${{ steps.build.outputs.tag_name }}.zipasset_content_type: application/zip

提交時出現如下錯誤:

refusing to allow a Personal Access Token to create or update workflow `.github/workflows/main.yml` without `workflow` scope

是因為我們的 token 沒有相應權限,請到TOKEN管理頁添加對應權限即可。

提交Pull Request

插件信息填寫完成后,提交(commit)變動到 github,然后發起一個 Pull Request,接著等待官方的審核(通常需要幾天)。

發布版本


官方同意 PR 后,就能通過插件市場檢索到我們的插件啦🎉。

溫馨提示
插件應該填寫README.md,清晰描述插件的功能及使用方式,最好有英文噢。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90069.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90069.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[netty5: ByteToMessageCodec MessageToByteEncoder ByteToMessageDecoder]-源碼分析

ByteToMessageCodec ByteToMessageCodec 是一個結合了 ByteToMessageDecoder 和 MessageToByteEncoder 的編解碼器&#xff0c;可以實時地將字節流編碼或解碼為消息&#xff0c;反之亦然。 public abstract class ByteToMessageCodec<I> extends ChannelHandlerAdapter {…

Ubuntu20.04安裝mujoco210, mujoco-py時的報錯處理

參考 Ubantu 20.04 安裝 Mujoco210、mujoco-py、gym及報錯解決 安裝 mujoco210 創建 .mujoco 文件夾 mkdir ~/.mujoco親測必須是 .mujoco 文件夾&#xff0c;不然會報錯&#xff01; 下載 mujoco210-linux-x86_64.tar.gz 并解壓到 .mujoco 文件夾 mojoco下載地址 測試 mojo…

全志T507 音頻ALSA核心層注冊流程分析

一.ALSA核心層注冊流程分析 驅動目錄&#xff1a;kernel-4.9/sound/core/sound.c struct file_operations snd_fops {.owner THIS_MODULE,.open snd_open, (inode, file)---->struct snd_minor *mptr snd_minors[minor];---->file->f_op fops_get(mptr->f_ops…

評論區實現 前端Vue

根據后端部分定義評論區功能實現 golang后端部分-CSDN博客&#xff0c;重點需要實現三個部分&#xff0c;1.當前用戶發起新根評論請求&#xff1b;2.評論區展示部分&#xff1b;3.某一根評論的子評論展示以及回復組件顯示。 整體流程解釋 數據從后端接收&#xff0c;整體在in…

差分定位技術:原理、分類與應用場景

文章目錄 簡介基本概念位置差分偽距差分載波相位 差分定位技術精密單點定位&#xff08;PPP&#xff09;差分全球定位系統&#xff08;DGPS&#xff09;實時動態定位&#xff08;RTK&#xff09; 應用場景總結 簡介 差分定位&#xff08;Differential Positioning&#xff09;是…

tomcat的tar包轉換成rpm包的保姆級教程

環境說明 &#xff1a;centos 71. 安裝打包工具&#xff1a;yum install -y rpm-build rpmdevtools2. 創建 RPM 打包環境&#xff1a;rpmdev-setuptree?輸入之后是下面的結果~/rpmbuild/ ├── BUILD ├── RPMS ├── SOURCES ├── SPECS └── SRPMS?準備 Tomcat 源碼…

【牛客算法】小美的數組刪除

文章目錄 一、題目介紹二、解題思路三、解題算法實現四、算法分析4.1 代碼邏輯4.2 逆向遍歷求MEX的設計精妙之處4.2.1 逆向遍歷:解決MEX更新的連續性4.2.2 利用MEX的單調性4.2.3 空間復用與狀態壓縮4.2.4 與問題特性的完美契合4.2.5 總結:為什么說這個設計“妙”?五、算法復…

MyBatisPlus-01-環境初始化及簡單應用

文章目錄【README】【1】springboot集成mybatis-plus配置【1.1】目錄結構【相關說明】【1.2】代碼示例【pom.xml】【application.properties】【MybatisPlusNoteController】【UserAppService】【UserMapper】【UserPO】【建表語句】【2】演示【README】 本文代碼參見&#xf…

Web爬蟲編程語言選擇指南

剛學爬蟲的小伙伴常常為選擇那種語言來寫爬蟲而煩惱&#xff0c;今天我將總結幾種語言的優劣勢&#xff0c;然后選擇適合編寫 Web爬蟲 的編程語言。這就需要我們考慮開發效率、生態庫支持、并發性能等因素。以下是主流選擇及特點跟著一起看看吧&#xff1a; 1. Python&#xff…

學習日志06 python

加油&#xff0c;今天的任務是學習面向對象編程&#xff0c;設計一個簡單的寵物管理系統&#xff08;寵物類、貓 / 狗子類&#xff09;&#xff0c;先做5道題目開啟學習狀態吧&#xff01;1 setdefault()在 Python 中&#xff0c;setdefault() 是字典&#xff08;dict&#xff…

基于Java+springboot 的車險理賠信息管理系統

源碼、數據庫、包調試源碼編號&#xff1a;S595源碼名稱&#xff1a;基于springboot 的車險理賠信息管理系統用戶類型&#xff1a;多角色&#xff0c;用戶、事故調查員、管理員數據庫表數量&#xff1a;14 張表主要技術&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven運…

MyDockFinder 綠色便攜版 | 一鍵仿Mac桌面,非常簡單

如果你既不想升級到Win11&#xff0c;又想體驗Mac桌面的高級感&#xff0c;那么MyDockFinder將是你的最佳選擇。這是一款專為Windows系統設計的桌面美化工具&#xff0c;能夠將你的桌面轉變成MacOS的風格。它提供了類似Dock欄和Finder的功能&#xff0c;讓你在不更換操作系統的…

Babylon.js 材質克隆與紋理共享:你可能遇到的問題及解決方案

在 Babylon.js 中&#xff0c;材質&#xff08;Material&#xff09;和紋理&#xff08;Texture&#xff09;的克隆行為可能會影響渲染性能和內存管理&#xff0c;尤其是在多個材質共享同一紋理的情況下。本文將探討&#xff1a;PBRMetallicRoughnessMaterial 的克隆機制&#…

信息素養復賽模擬1和模擬2的編程題標程

信息素養復賽模擬 11&#xff1a;樓層編號 #include<bits/stdc.h> using namespace std; int main(){int n, t;cin >> n >> t;int res 0;for(int i 1; i < n; i ){int x i;bool ok true;while(x){if(x % 10 t){ok false;}x / 10;}res ok;} cout &l…

Hadoop高可用集群搭建

Hadoop高可用(HA)集群是企業級大數據平臺的核心基礎設施&#xff0c;通過多主節點冗余和自動故障轉移機制&#xff0c;確保系統在單點故障時仍能正常運行。本文將詳細介紹如何基于CentOS 7搭建Hadoop 3.X高可用集群&#xff0c;涵蓋環境準備、組件配置、集群啟動及管理的全流程…

Next.js 實戰筆記 1.0:架構重構與 App Router 核心機制詳解

Next.js 實戰筆記 1.0&#xff1a;架構重構與 App Router 核心機制詳解 上一次寫 Next 相關的東西都是 3 年前的事情了&#xff0c;這 3 年里 Next 也經歷了 2-3 次的大版本變化。當時寫的時候 Next 是 12 還是 13 的&#xff0c;現在已經是 15 了&#xff0c;從 build 到實現…

Pillow 安裝使用教程

一、Pillow 簡介 Pillow 是 Python 圖像處理庫 PIL&#xff08;Python Imaging Library&#xff09;的友好分支&#xff0c;是圖像處理的事實標準。它支持打開、編輯、轉換、保存多種圖像格式&#xff0c;常用于圖像批量處理、驗證碼識別、縮略圖生成等應用場景。 二、安裝 Pi…

SQL Server從入門到項目實踐(超值版)讀書筆記 20

9.4 數據的嵌套查詢所謂嵌套查詢&#xff0c;就是在一個查詢語句中&#xff0c;嵌套進另一個查詢語句&#xff0c;即&#xff0c;查詢語句中可以使用另一個查詢語句中得到的查詢結果&#xff0c;子查詢可以基于一張表或者多張表。子查詢中常用的操作符有ANY、SOME、ALL、IN、EX…

【MySQL\Oracle\PostgreSQL】遷移到openGauss數據出現的問題解決方案

【MySQL\Oracle\PostgreSQL】遷移到openGauss數據出現的問題解決方案 問題1&#xff1a;序列值不自動刷新問題 下面SQL只針對單庫操作以及每個序列只綁定一張表的情況 -- 自動生成的序列&#xff0c;設置序列值 with sequences as (select *from (select table_schema,table_…

【Maven】Maven命令大全手冊:28個核心指令使用場景

Maven命令大全手冊&#xff1a;28個核心指令使用場景 Maven命令大全手冊&#xff1a;28個核心指令深度解析一、構建生命周期核心命令1. mvn clean2. mvn compile3. mvn test4. mvn package5. mvn install6. mvn deploy二、依賴管理命令7. mvn dependency:tree8. mvn dependency…