diff --git a/action.yml b/action.yml index f59fc90..e0dad3a 100644 --- a/action.yml +++ b/action.yml @@ -4,19 +4,34 @@ description: | 支持自动将图片迁移到 aliyun oss inputs: token: # id of input - description: 'notion api token' + description: notion app token,建议最好放到 Action Secret 中 required: true database_id: required: true + description: | + notion 中的数据库 id + - 假设你的数据库页面链接是 `https://www.notion.so/you-name/0f3d856498ca4db3b457c5b4eeaxxxxx` + - 那么 `database_id=0f3d856498ca4db3b457c5b4eeaxxxxx` status_name: - description: 'notion page prop status name' + description: notion database 状态字段的字段名,支持自定义 default: "status" status_published: - description: 'notion page prop published status value' + description: notion database 文章已发布状态的字段值 default: "已发布" status_unpublish: - description: 'notion page prop unpublish status value' + description: | + notion database 文章待发布状态的字段值 + 触发 action 后会自动拉去所有该状态的文章,成功导出之后会把这篇文章的状态修改为上面设置的已发布状态 default: "待发布" + migrate_image: + description: | + 是否迁移图片到 aliyun oss + 注意: 如果不迁移图片默认导出图片链接是 notion 的自带链接,有访问时效 + 目前支持迁移图片到 aliyun oss 中 + default: "true" + output: + required: false + description: 输出的文件夹路径 access_key_id: description: aliyun access_key_id required: true @@ -32,8 +47,7 @@ inputs: default: oss-cn-hangzhou prefix: description: "file dir, e.g. image/" - output: - required: false + runs: using: 'node16' main: 'dist/index.js' \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index d00e11d..884cc38 100644 --- a/dist/index.js +++ b/dist/index.js @@ -216519,6 +216519,7 @@ const { format } = __nccwpck_require__(89653); let config = { notion_secret: "", database_id: "", + migrate_image: true, aliyun: { accessKeyId: "", accessKeySecret: "", @@ -216570,7 +216571,7 @@ async function sync() { console.log(`[${i + 1}]: ${page.properties.title.title[0].plain_text}`); let file = await download(page); - await migrateImages(file); + if(config.migrate_image) await migrateImages(file); published(page); } if (pages.length == 0) @@ -230640,6 +230641,7 @@ const core = __nccwpck_require__(95127); let config = { notion_secret: core.getInput("notion_secret"), database_id: core.getInput("database_id"), + migrate_image: core.getInput("migrate_image") === "true", aliyun: { accessKeyId: core.getInput("access_key_id"), accessKeySecret: core.getInput("access_key_secret"), diff --git a/docs/app-sec.jpg b/docs/app-sec.jpg new file mode 100644 index 0000000..6abb84c Binary files /dev/null and b/docs/app-sec.jpg differ diff --git a/docs/database_tpl.jpg b/docs/database_tpl.jpg new file mode 100644 index 0000000..71d79ad Binary files /dev/null and b/docs/database_tpl.jpg differ diff --git a/readme.md b/readme.md index b7bfea0..6123960 100644 --- a/readme.md +++ b/readme.md @@ -5,20 +5,69 @@ - 使用 notion 导出接口,支持图片、表格、callout 等格式 - 支持迁移图片到置顶文件夹 -## 说明 +## 使用说明 -database template: https://mohuishou.notion.site/3999b0ae72364a4b99a87f7d9d0a52be?v=1df90fd8110541679dc48866b80031ee +### Notion -### notion +- 使用 [database 模板](https://mohuishou.notion.site/3999b0ae72364a4b99a87f7d9d0a52be?v=1df90fd8110541679dc48866b80031ee) 创建一个数据库 + ![](docs/database_tpl.jpg) +- 参考 [Notion 官方教程](https://developers.notion.com/docs/getting-started#step-1-create-an-integration) 创建一个应用,并获取到 token + ![](./docs/app-sec.jpg) +- 将之前创建好的页面分享给刚刚创建的应用,[教程](https://developers.notion.com/docs/getting-started#step-2-share-a-database-with-your-integration) -通过 notion 导出 markdown 文件 api 下载 md 文件 +### Github Action -### migrate +#### 参数说明 -使用 notion-to-md 导出 markdown 文件,并且支持了 `callout`,以及 front matter -迁移导出 md 文件中的图片资源到指定文件夹,支持属性字段含有图片的情况 - -## 使用示例 +```yaml +inputs: + token: # id of input + description: notion app token,建议最好放到 Action Secret 中 + required: true + database_id: + required: true + description: | + notion 中的数据库 id + - 假设你的数据库页面链接是 `https://www.notion.so/you-name/0f3d856498ca4db3b457c5b4eeaxxxxx` + - 那么 `database_id=0f3d856498ca4db3b457c5b4eeaxxxxx` + status_name: + description: notion database 状态字段的字段名,支持自定义 + default: "status" + status_published: + description: notion database 文章已发布状态的字段值 + default: "已发布" + status_unpublish: + description: | + notion database 文章待发布状态的字段值 + 触发 action 后会自动拉去所有该状态的文章,成功导出之后会把这篇文章的状态修改为上面设置的已发布状态 + default: "待发布" + migrate_image: + description: | + 是否迁移图片到 aliyun oss + 注意: 如果不迁移图片默认导出图片链接是 notion 的自带链接,有访问时效 + 目前支持迁移图片到 aliyun oss 中 + default: "true" + output: + required: false + description: 输出的文件夹路径 + access_key_id: + description: aliyun access_key_id + required: true + access_key_secret: + description: aliyun access_key_secret + required: true + bucket: + description: aliyun bucket + required: true + area: + description: "aliyun area: oss-cn-hangzhou" + required: true + default: oss-cn-hangzhou + prefix: + description: "file dir, e.g. image/" +``` + + #### 配置示例 ```yaml on: [repository_dispatch, watch] @@ -48,7 +97,7 @@ jobs: run: | git config --global user.email "1@lailin.xyz" git config --global user.name "mohuishou" - + - name: update blog run: | git add source diff --git a/src/index.js b/src/index.js index 5714d6b..292ecdd 100644 --- a/src/index.js +++ b/src/index.js @@ -4,6 +4,7 @@ const core = require("@actions/core"); let config = { notion_secret: core.getInput("notion_secret"), database_id: core.getInput("database_id"), + migrate_image: core.getInput("migrate_image") === "true", aliyun: { accessKeyId: core.getInput("access_key_id"), accessKeySecret: core.getInput("access_key_secret"), diff --git a/src/notion.js b/src/notion.js index 8f7322c..fdc32cb 100644 --- a/src/notion.js +++ b/src/notion.js @@ -13,6 +13,7 @@ const { format } = require("prettier"); let config = { notion_secret: "", database_id: "", + migrate_image: true, aliyun: { accessKeyId: "", accessKeySecret: "", @@ -64,7 +65,7 @@ async function sync() { console.log(`[${i + 1}]: ${page.properties.title.title[0].plain_text}`); let file = await download(page); - await migrateImages(file); + if(config.migrate_image) await migrateImages(file); published(page); } if (pages.length == 0)