Giter Club home page Giter Club logo

letttgaco / elog Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 61.0 3.5 MB

Markdown 批量导出工具、开放式跨平台博客解决方案,随意组合写作平台(语雀/Notion/FlowUs/飞书/我来Wolai)和博客平台(Hexo/Vitepress/Halo/Confluence/WordPress等)

Home Page: https://elog.1874.cool

License: MIT License

JavaScript 3.36% Shell 0.23% TypeScript 96.41%
blog confluence docusaurus docz feishu flowus hexo hugo markdown notion vitepress wordpress yuque

elog's Introduction

Hello, I'm 1874.

a self-taught passionate Frontend developer from China.

About me

  • 💼 Frontend Engineer at SHEIN in GuangZhou, China 🇨🇳

LetTTGACO's github view count stars followers

LetTTGACO's github stats Top Langs

languages and tools

Github Streaks

LetTTGACO

elog's People

Contributors

cyolc932 avatar jasonma0012 avatar letttgaco avatar ql-isaac avatar vannvan avatar ymriri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

elog's Issues

图床功能和hexo及windows平台的兼容性

你当前使用的Elog版本

0.13.2

Elog配置文件

module.exports = {
  write: {
    platform: 'yuque-pwd',
    yuque: {
      token: process.env.YUQUE_TOKEN,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    'yuque-pwd': {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PASSWORD,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: false, // {property: 'status', select: {equals: '已发布'}}
    },
    feishu: {
      type: 'space',
      wikiId: process.env.FEISHU_WIKI_ID,
      folderToken: process.env.FEISHU_FOLDER_TOKEN,
      appId: process.env.FEISHU_APP_ID,
      appSecret: process.env.FEISHU_APP_SECRET,
    },
    flowus: {
      tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
      filter: false, // {property: 'status',value: '已发布'}
    }
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './source/_posts/elogs',
      filename: 'title',
      format: 'markdown',
      frontMatter: {
        enable: true,
        include: [], // 只输出include包含的属性
        exclude: [], // 不输出exclude包含的属性
      },
      catalog: true,
    },
    halo: {
      endpoint: process.env.HALO_ENDPOINT,
      token: process.env.HALO_TOKEN,
      policyName: process.env.HALO_POLICY_NAME,
      rowType: 'html',
      needUploadImage: true,
    },
    confluence: {
      user: process.env.CONFLUENCE_USER,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
      spaceKey: process.env.CONFLUENCE_SPACE_KEY,
      rootPageId: process.env.CONFLUENCE_ROOT_PAGE_ID, // 可选
    },
    wordpress: {
      username: process.env.WORDPRESS_USERNAME,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './source/images/elogs',
      prefixKey: '/source/images/elogs',
      pathFollowDoc: true,
    },
    oss: {
      secretId: process.env.OSS_SECRET_ID,
      secretKey: process.env.OSS_SECRET_KEY,
      bucket: process.env.OSS_BUCKET,
      region: process.env.OSS_REGION,
      host: process.env.OSS_HOST,
      prefixKey: '',
    },
    cos: {
      secretId: process.env.COS_SECRET_ID,
      secretKey: process.env.COS_SECRET_KEY,
      bucket: process.env.COS_BUCKET,
      region: process.env.COS_REGION,
      host: process.env.COS_HOST,
      prefixKey: '',
    },
    qiniu: {
      secretId: process.env.QINIU_SECRET_ID,
      secretKey: process.env.QINIU_SECRET_KEY,
      bucket: process.env.QINIU_BUCKET,
      region: process.env.QINIU_REGION,
      host: process.env.QINIU_HOST,
      prefixKey: '',
    },
    upyun: {
      user: process.env.UPYUN_USER,
      password: process.env.UPYUN_PASSWORD,
      bucket: process.env.UPYUN_BUCKET,
      host: process.env.UPYUN_HOST,
      prefixKey: '',
    },
    github: {
      token: process.env.GITHUB_TOKEN,
      user: process.env.ELOG_GITHUB_USER,
      repo: process.env.ELOG_GITHUB_REPO,
      prefixKey: '',
    }
  }
}

发生了什么?

在windows下使用本地图床(其他target没有测试过)的时候,发现blog的content中图片的格式如下:
image
这会导致hexo在解析的时候使用urlencode转换图片的uri,导致图片无法正确访问
image
而将图片地址改为unix格式以后,hexo可以正常渲染

Elog错误日志

No response

附加信息

No response

删除文章

你当前使用的Elog版本

最新

描述一下此特性

在notion中删除文章,下一次构建时也能删除网站里的文章。

附加信息

No response

我能否使用nextjs结合这个项目呢?

你当前使用的Elog版本

0.14

描述一下此特性

我能否使用nextjs结合这个项目呢?
我想有更强的自定义界面。
仅仅只是将elog当作一个【数据库】

附加信息

No response

部署到wordpress报错DeprecationWarning: OutgoingMessage.prototype._headers is deprecated

你当前使用的Elog版本

0.14.2

Elog配置文件

module.exports = {
  write: {
    platform: 'notion',
    yuque: {
      token: process.env.YUQUE_TOKEN,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    'yuque-pwd': {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PASSWORD,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    notion: {
      token: "secret_*oFzC83eOnW"
,
      databaseId: "aa5f58600b34*492"
,
      filter: false, // {property: 'status', select: {equals: 'Published'}}
    },
    feishu: {
      type: 'space',
      wikiId: process.env.FEISHU_WIKI_ID,
      folderToken: process.env.FEISHU_FOLDER_TOKEN,
      appId: process.env.FEISHU_APP_ID,
      appSecret: process.env.FEISHU_APP_SECRET,
    },
    flowus: {
      tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
      filter: false, // {property: 'status',value: '已发布'}
    },
    wolai: {
      token: process.env.WOLAI_TOKEN,
      pageId: process.env.WOLAI_PAGE_ID,
    }
  },
  deploy: {
    platform: 'wordpress',
    local: {
      outputDir: './docs',
      filename: 'title',
      format: 'markdown',
    },
    halo: {
      endpoint: process.env.HALO_ENDPOINT,
      token: process.env.HALO_TOKEN,
      policyName: process.env.HALO_POLICY_NAME,
      rowType: 'html',
      needUploadImage: true,
    },
    confluence: {
      user: process.env.CONFLUENCE_USER,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
      spaceKey: process.env.CONFLUENCE_SPACE_KEY,
      rootPageId: process.env.CONFLUENCE_ROOT_PAGE_ID, // 可选
    },
    wordpress: {
      username: "ag*",
      password: "*",
      endpoint: "http://*/wp-json",
    }
  },
  image: {
    enable: false,
    platform: 'local',
    local: {
      outputDir: './docs/images',
      prefixKey: '/images',
      pathFollowDoc: false,
    },
    oss: {
      secretId: process.env.OSS_SECRET_ID,
      secretKey: process.env.OSS_SECRET_KEY,
      bucket: process.env.OSS_BUCKET,
      region: process.env.OSS_REGION,
      host: process.env.OSS_HOST,
      prefixKey: '',
    },
    cos: {
      secretId: process.env.COS_SECRET_ID,
      secretKey: process.env.COS_SECRET_KEY,
      bucket: process.env.COS_BUCKET,
      region: process.env.COS_REGION,
      host: process.env.COS_HOST,
      prefixKey: '',
    },
    qiniu: {
      secretId: process.env.QINIU_SECRET_ID,
      secretKey: process.env.QINIU_SECRET_KEY,
      bucket: process.env.QINIU_BUCKET,
      region: process.env.QINIU_REGION,
      host: process.env.QINIU_HOST,
      prefixKey: '',
    },
    upyun: {
      user: process.env.UPYUN_USER,
      password: process.env.UPYUN_PASSWORD,
      bucket: process.env.UPYUN_BUCKET,
      host: process.env.UPYUN_HOST,
      prefixKey: '',
    },
    github: {
      token: process.env.GITHUB_TOKEN,
      user: process.env.ELOG_GITHUB_USER,
      repo: process.env.ELOG_GITHUB_REPO,
      prefixKey: '',
    }
  }
}

发生了什么?

使用了nodejs 20.15
这个警告消息 (node:737361) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated 是 Node.js 发出的,表示 OutgoingMessage.prototype._headers 属性已经被弃用。这个属性用于访问 HTTP 响应头信息,但在较新的 Node.js 版本中已经不推荐使用,并且可能会在未来的版本中被移除。
已下载数 46
正在部署到 WordPress...
(node:782112) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use node --trace-deprecation ... to show where the warning was created)

Elog错误日志

已下载数  46
正在部署到 WordPress...
(node:782112) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `node --trace-deprecation ...` to show where the warning was created)
部署到 WordPress 失败: Cannot read properties of undefined (reading 'rendered')

附加信息

来自gpt:更新代码以使用推荐的替代方法:

使用 OutgoingMessage.getHeaders() 来替代访问 _headers 属性。
检查和更新依赖项:

确保你的项目依赖项(如 Express 或其他 HTTP 相关库)已经更新到最新版本,这些库可能已经修复了对 _headers 属性的使用。
使用 npm outdated 检查哪些依赖项是过时的,然后运行 npm update 进行更新。

同步飞书知识库时 “执行TypeScript脚本 下载出错: Cannot read properties of undefined (reading 'elements')”

你当前使用的Elog版本

0.14.1

Elog配置文件

module.exports = {
  write: {
    platform: 'feishu',
    yuque: {
      token: process.env.YUQUE_TOKEN,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    'yuque-pwd': {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PASSWORD,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: false, // {property: 'status', select: {equals: '已发布'}}
    },
    feishu: {
      type: 'wiki',
      wikiId: process.env.FEISHU_WIKI_ID,
      folderToken: process.env.FEISHU_FOLDER_TOKEN,
      appId: process.env.FEISHU_APP_ID,
      appSecret: process.env.FEISHU_APP_SECRET,
      disableParentDoc:true
    },
    flowus: {
      tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
      filter: false, // {property: 'status',value: '已发布'}
    },
    wolai: {
      token: process.env.WOLAI_TOKEN,
      pageId: process.env.WOLAI_PAGE_ID,
    }
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './docs',
      filename: 'title',
      format: 'markdown',
    },
    halo: {
      endpoint: process.env.HALO_ENDPOINT,
      token: process.env.HALO_TOKEN,
      policyName: process.env.HALO_POLICY_NAME,
      rowType: 'html',
      needUploadImage: true,
    },
    confluence: {
      user: process.env.CONFLUENCE_USER,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
      spaceKey: process.env.CONFLUENCE_SPACE_KEY,
      rootPageId: process.env.CONFLUENCE_ROOT_PAGE_ID, // 可选
    },
    wordpress: {
      username: process.env.WORDPRESS_USERNAME,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './docs/images',
      prefixKey: '/images',
      pathFollowDoc: true,
    },
    oss: {
      secretId: process.env.OSS_SECRET_ID,
      secretKey: process.env.OSS_SECRET_KEY,
      bucket: process.env.OSS_BUCKET,
      region: process.env.OSS_REGION,
      host: process.env.OSS_HOST,
      prefixKey: '',
    },
    cos: {
      secretId: process.env.COS_SECRET_ID,
      secretKey: process.env.COS_SECRET_KEY,
      bucket: process.env.COS_BUCKET,
      region: process.env.COS_REGION,
      host: process.env.COS_HOST,
      prefixKey: '',
    },
    qiniu: {
      secretId: process.env.QINIU_SECRET_ID,
      secretKey: process.env.QINIU_SECRET_KEY,
      bucket: process.env.QINIU_BUCKET,
      region: process.env.QINIU_REGION,
      host: process.env.QINIU_HOST,
      prefixKey: '',
    },
    upyun: {
      user: process.env.UPYUN_USER,
      password: process.env.UPYUN_PASSWORD,
      bucket: process.env.UPYUN_BUCKET,
      host: process.env.UPYUN_HOST,
      prefixKey: '',
    },
    github: {
      token: process.env.GITHUB_TOKEN,
      user: process.env.ELOG_GITHUB_USER,
      repo: process.env.ELOG_GITHUB_REPO,
      prefixKey: '',
    }
  }
}

发生了什么?

使用以下命令 执行同步时 ,报错
npx @elog/cli sync --config elog.config.js --env .elog.env --disable-cache

Elog错误日志

执行TypeScript脚本 下载出错: Cannot read properties of undefined (reading 'elements')
初始化一个TypeScript的Hello World项目 下载出错: Cannot read properties of undefined (reading 'elements')

附加信息

No response

是否考虑一下发布文章撤销的功能

你当前使用的Elog版本

0.13.2

描述一下此特性

目前使用FlowUs+Hexo+Vercel进行部署,在FlowUs中我将文章状态从已发布改成进行中之后,重新sync,发现文章并没有被删除。
write部分配置如下:

  write: {
    platform: 'flowus',
    flowus: {
      tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
      filter: { property: 'status', value: '已发布' }
    }
  },

附加信息

No response

github图床问题

你当前使用的Elog版本

0.13.1

Elog配置文件

上传失败:a4e6d6bb79f6f4f5af7e31d115f6144b.jpeg 请检查图床配置
请求失败  unable to verify the first certificate, PUT https://api.github.com/repos/xinkeji/hexo/contents/71c3ca0f6d6211c
          b427f50ae354471a0.jpeg -1 (connected: true, keepalive socket: false, socketHandledRequests: 1, socketHandledRe
          sponses: 0)
          headers: {}

发生了什么?

已经配置好github变量之后还是上传不了,怎么办呀

Elog错误日志

module.exports = {
  write: {
    platform: 'yuque-pwd',
    "yuque-pwd": {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PWD,
      host: '',
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      linebreak: false
    }
  },
  deploy: {
    platform: "local",
    local: {
      outputDir: "./source/_posts/语雀/",
      filename: "title",
      format: "matter-markdown",
      catalog: true,
      formatExt: "",
    }
  },
  image: {
  enable: true,
  platform: 'github',
  github: {
    user: process.env.LGH_USER,
    token: process.env.GITHUB_TOKEN,
    repo: process.env.LGH_REPO,
    prefixKey: '',
    host: 'cdn.jsdelivr.net'
  
    }
  },
}

附加信息

1

【bug】飞书导出内容不完整

之前就一直催飞书的产品尽快出导出md的功能,没想到看见这个项目。但似乎有一些小问题。
我的飞书内容是:
image
导出是:
image
这里只是简单说了一个地方好些导出内容都不太完整。
image
像这个就完全没导出来
image
不知道是不是自己操作的问题

语雀文档不会删除

你当前使用的Elog版本

0.14

Elog配置文件

语雀文档不会删除未使用的文件夹以及文件,会造成冗余的内容

发生了什么?

语雀文档不会删除未使用的文件夹以及文件,会造成冗余的内容

Elog错误日志

语雀文档不会删除未使用的文件夹以及文件,会造成冗余的内容

附加信息

语雀文档不会删除未使用的文件夹以及文件,会造成冗余的内容

语雀账号密码模式手写frontMatter同步异常

你当前使用的Elog版本

0.12.4

Elog配置文件

module.exports = {
  write: {
    platform: 'yuque-pwd',
    // Token 模式(需要语雀超级会员)
    yuque: {
      token: process.env.YUQUE_TOKEN,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: true,
      onlyPublished: true,
    },
    // 账号密码模式
    "yuque-pwd": {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PASSWORD,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
    }
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './docs/',
      filename: 'title',
      format: 'markdown',
      catalog: true,
      formatExt: './elog.format.js',
      frontMatter: {
        enable: true,
        include: [], // 只输出include包含的属性
        exclude: [], // 不输出exclude包含的属性
      }
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './docs/images',
      pathFollowDoc: true,
    }
  }
}

发生了什么?

使用语雀账号密码模式同步frontMatter出现问题,

Elog错误日志

front-matter解析失败,将返回预定义属性incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line at line 1, column 40:
                                            ... Blogging with Elog<br />classify: 关于Elog<br />description:xxx ...
预定义属性:https://elog.1874.cool/notion/raqyleng501h23p1#预定义属性

附加信息

No response

[特性]求支持同步源文件检查

目前我的博客部署环境在K8s中,容器启动时会自动从git下载hexo博客源码,然后使用elog同步语雀文档,然后执行hexo生成内容并部署网站。由于语雀webhook的缺失,导致整个流程的触发是缺失的。因此有以下一个想法:
启动一个后台进程,定时的去使用类似elog check的功能,对比缓存文件检查文档是否有更新,如果有,则重新部署容器完成博客的重新部署。这样,整个环境的搭建和运行就只有K8s和语雀服务,架构上更简洁。

求评估下这个elog check的特性是否可以支持?

飞书图片下载 api 请求过于频繁导致的错误

你当前使用的Elog版本

0.14.2-beta.0

Elog配置文件

module.exports = {
  write: {
    platform: 'feishu',
    yuque: {
      token: process.env.YUQUE_TOKEN,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    'yuque-pwd': {
      username: process.env.YUQUE_USERNAME,
      password: process.env.YUQUE_PASSWORD,
      login: process.env.YUQUE_LOGIN,
      repo: process.env.YUQUE_REPO,
      onlyPublic: false,
      onlyPublished: true,
    },
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: false, // {property: 'status', select: {equals: '已发布'}}
    },
    feishu: {
      type: 'space',
      wikiId: process.env.FEISHU_WIKI_ID,
      folderToken: process.env.FEISHU_FOLDER_TOKEN,
      appId: process.env.FEISHU_APP_ID,
      appSecret: process.env.FEISHU_APP_SECRET,
    },
    flowus: {
      tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
      filter: false, // {property: 'status',value: '已发布'}
    },
    wolai: {
      token: process.env.WOLAI_TOKEN,
      pageId: process.env.WOLAI_PAGE_ID,
    }
  },
  deploy: {
    platform: 'wordpress',
    local: {
      outputDir: './docs',
      filename: 'title',
      format: 'markdown',
    },
    halo: {
      endpoint: process.env.HALO_ENDPOINT,
      token: process.env.HALO_TOKEN,
      policyName: process.env.HALO_POLICY_NAME,
      rowType: 'html',
      needUploadImage: true,
    },
    confluence: {
      user: process.env.CONFLUENCE_USER,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
      spaceKey: process.env.CONFLUENCE_SPACE_KEY,
      rootPageId: process.env.CONFLUENCE_ROOT_PAGE_ID, // 可选
    },
    wordpress: {
      username: process.env.WORDPRESS_USERNAME,
      password: process.env.WORDPRESS_PASSWORD,
      endpoint: process.env.WORDPRESS_ENDPOINT,
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './docs/images',
      prefixKey: '/images',
      pathFollowDoc: false,
    },
    oss: {
      secretId: process.env.OSS_SECRET_ID,
      secretKey: process.env.OSS_SECRET_KEY,
      bucket: process.env.OSS_BUCKET,
      region: process.env.OSS_REGION,
      host: process.env.OSS_HOST,
      prefixKey: '',
    },
    cos: {
      secretId: process.env.COS_SECRET_ID,
      secretKey: process.env.COS_SECRET_KEY,
      bucket: process.env.COS_BUCKET,
      region: process.env.COS_REGION,
      host: process.env.COS_HOST,
      prefixKey: '',
    },
    qiniu: {
      secretId: process.env.QINIU_SECRET_ID,
      secretKey: process.env.QINIU_SECRET_KEY,
      bucket: process.env.QINIU_BUCKET,
      region: process.env.QINIU_REGION,
      host: process.env.QINIU_HOST,
      prefixKey: '',
    },
    upyun: {
      user: process.env.UPYUN_USER,
      password: process.env.UPYUN_PASSWORD,
      bucket: process.env.UPYUN_BUCKET,
      host: process.env.UPYUN_HOST,
      prefixKey: '',
    },
    github: {
      token: process.env.GITHUB_TOKEN,
      user: process.env.ELOG_GITHUB_USER,
      repo: process.env.ELOG_GITHUB_REPO,
      prefixKey: '',
    }
  }
}

发生了什么?

飞书图片下载 api 请求过于频繁之后会返回一个报错的 json,elog 将这个 json 的内容视为了一张图片,并按照保存图片的逻辑保存了 json,导致出现了问题
image
image

Elog错误日志

没有产生错误日志

附加信息

No response

测试 Issues

你当前使用的Elog版本

0.13.0-beta.4

Elog配置文件

module.exports = {
  write: {
    platform: 'notion',
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: { property: 'status', select: { equals: '已发布' }}
    }
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './source/_posts',
      filename: 'title',
      format: 'markdown',
      catalog: false,
      frontMatter: {
        enable: true,
        include: ['categories', 'tags', 'title', 'date', 'updated', 'permalink', 'cover', 'description'],
      },
      formatExt: './format-image.js',
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './source/images',
      prefixKey: '/images'
    }
  },
}

发生了什么?

测试

Elog错误日志

测试

附加信息

测试

Notion + Elog + github 图床,更新文章后封面图上传图片失败后变成空

你当前使用的Elog版本

0.14.0

Elog配置文件

module.exports = {
  write: {
    platform: 'notion',
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: true, // {property: 'status', select: {equals: '已发布'}}
    },
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './source/_posts',
      filename: 'title',
      format: 'markdown',
      frontMatter: {
        enable: true,
        // include:["status","tags","cover","category","excerpt","index_img","banner_img","archive"],
        exclude:[],
        timeFormat: true,
      },
      formatExt: './format-image.js',
    }
  },
  image: {
    enable: true,
    platform: 'github',
    local: {
      outputDir: './source/images',
      prefixKey: '/image',
      pathFollowDoc: false,
    },
    github: {
      token: process.env.GITHUB_TOKEN,
      user: process.env.ELOG_GITHUB_USER,
      repo: process.env.ELOG_GITHUB_REPO,
      branch: 'cdn',
      prefixKey: 'image',
      host: 'cdn.jsdelivr.net'
    },
  }
}

发生了什么?

新文章图片可能都是新上传github,所以没问题,但是一但修改了文章,同时自定义了 format-image.js, 会导致封面图丢失

format-image.js

const { matterMarkdownAdapter } = require('@elog/cli')
const path = require("path");

/**
 * 自定义文档处理器
 * @param {DocDetail} doc doc的类型定义为 DocDetail
 * @param {any} imageClient 图床下载器
 * @return {Promise<DocDetail>} 返回处理后的文档对象
 */
const format = async (doc, imageClient) => {
  const cover = doc.properties.cover
  // 将 cover 字段中的 notion 图片下载到本地
  if (imageClient)  {
    // 只有启用图床平台image.enable=true时,imageClient才能用,否则请自行实现图片上传
    const url = await imageClient.uploadImageFromUrl(cover, doc)
    // cover链接替换为本地图片
    doc.properties.cover = url ? url.split('danni-cool/my-blog/').join('danni-cool/my-blog@cdn/'): ''
    doc.properties.index_img = doc.properties.cover
    doc.properties.banner_img = doc.properties.cover
  }
  doc.properties.date = doc.properties.publishDate || doc.properties.Created
  doc.properties.update = doc.properties['Last Updated']
  delete doc.properties['Last Updated']
  delete doc.properties.Created
  delete doc.properties.publishDate
  delete doc.properties.Name
  delete doc.properties.urlname
  doc.body = matterMarkdownAdapter(doc);
  return doc;
};


module.exports = {
  format
};

Elog错误日志

下载成功  https://images.unsplash.com/photo-1683114010575-3ead4403180e?ixlib=rb-4.0.3&q=85&fm=jpg&crop=e
          ntropy&cs=srgb
请求失败  {"message":"Invalid request.\n\n\"sha\" wasn't supplied.","documentation_url":"https://docs.gi
          thub.com/rest/repos/contents#create-or-update-file-contents"}
上传失败:00a39c743f39d5bb828f0f7bd5e20a1e.jpg 请检查图床配置

附加信息

Support for Typecho blogging platform

你当前使用的Elog版本

v0.13.3

描述一下此特性

Hello Elog developers, I am very happy to find such an excellent project that makes it easier for everyone to write blogs. However, I found that this project currently does not support publishing articles to typecho, a popular blogging platform.

Typecho is a lightweight blogging platform similar to wordpress. It has a complete documentation and plug-in mechanism and should be well connected with the elog project.

I hope to add new features in elog to output markdown documents to the typecho blog. Thanks in advance!

附加信息

No response

语雀文档的表现不一致

你当前使用的Elog版本

最新

Elog配置文件

最新

发生了什么?

我发现语雀文档里的表现和使用手册里不一致:
1、如果是文本绘图,转换之后直接消失
2、如果是画板,那么转换之后就是图片
在这里完全相反的:https://elog.1874.cool/yuque-pwd/yuque-example

Elog错误日志

No response

附加信息

No response

语雀导出文档数量统计错误

你当前使用的Elog版本

0.12.4

Elog配置文件

No response

发生了什么?

image 如图所示,elog统计出来的文档数量和语雀知识库中的实际数量不一致。 我起初怀疑是yuque的设定的文档导出上限,但是在语雀找了一圈确实没有上限设置。麻烦作者看下这个问题吧 image

Elog错误日志

No response

附加信息

No response

建议: 增加快速列出文章发布状态的命令

我并不想发布草稿, 但语雀又没有明确的提示哪些文章已发布或未发布, 所以需要一个方式来快速查看文章状态

也许可以通过一个命令将文章状态输出; 也许可以在语雀文章标题上加一个前缀表示文章状态;

在导出Notion文章时添加了错误的转义符号

你当前使用的Elog版本

0.14.1

Elog配置文件

module.exports = {
  write: {
    platform: 'notion',
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter:  {property: 'status', select: {equals: '已发布'}},
    }
  },
  deploy: {
    platform: 'local',
    local: {
      outputDir: './src/content/blog',
      filename: 'title',
      format: 'matter-markdown',
      frontMatter: {
        enable : true,
        timeFormat: true, 
        include: ['title', 'pubDatetime', 'description', 'tags'],
      },
      formatExt: 'elog.format.js'
    }
  },
  image: {
    enable: true,
    platform: 'local',
    local: {
      outputDir: './public/images',
      prefixKey: '/images',
      pathFollowDoc: false,
    }
  }
}

发生了什么?

在导出https://polydactyl-kidney-018.notion.site/SpikingJelly-An-open-source-machine-learning-infrastructure-platform-for-spike-based-intelligence-57439434875e4df29c1a330598f18976
这个页面的文章时,elog在大部分公式中错误地添加了反斜杠(如大部分公式中的[]、_前,删除了公式中的\换行或修改为\0)。

Elog错误日志

No response

附加信息

No response

Error: Client network socket disconnected before secure TLS connection was established

C:\WorkSpace\elog>elog sync -e .elog.env
环境变量 已指定读取env文件为:C:\WorkSpace\elog.elog.env
全量更新 未获取到缓存,将全量更新文档
正在获取文档列表,请稍等...

node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: Client network socket disconnected before secure TLS connection was established
    at connResetException (node:internal/errors:720:14)
    at TLSSocket.onConnectEnd (node:_tls_wrap:1655:19)
    at TLSSocket.emit (node:events:529:35)
    at endReadableNT (node:internal/streams/readable:1368:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  code: 'ECONNRESET',
  path: '/api/v2/repos/z*n/ot/toc',
  host: 'www.yuque.com',
  port: 443,
  localAddress: undefined,
  name: 'ResponseError',
  data: undefined,
  status: -1,
  headers: {},
  res: {
    status: -1,
    statusCode: -1,
    statusMessage: null,
    headers: {},
    size: 0,
    aborted: false,
    rt: 244,
    keepAliveSocket: false,
    data: undefined,
    requestUrls: [ 'https://www.yuque.com/api/v2/repos/z*n/ot/toc' ],
    timing: null,
    remoteAddress: '139.224.214.226',
    remotePort: 443,
    socketHandledRequests: 1,
    socketHandledResponses: 0
  }
}

Node.js v18.18.0

Elog最佳实践征集

最佳实践征集,以下条件 3 选 2 即可,正常的我会手动添加到 README,你也可以手动 PR 来添加

  • 公开的配置 Elog 的 Github 仓库地址
  • 个人网站地址
  • 使用/配置 Elog的实践文章

同步flowus报错

你当前使用的Elog版本

0.13.0

Elog配置文件

module.exports = {
    write: {
        platform: 'flowus',
        yuque: {
            token: process.env.YUQUE_TOKEN,
            login: process.env.YUQUE_LOGIN,
            repo: process.env.YUQUE_REPO,
            onlyPublic: false,
            onlyPublished: true,
        },
        'yuque-pwd': {
            username: process.env.YUQUE_USERNAME,
            password: process.env.YUQUE_PASSWORD,
            login: process.env.YUQUE_LOGIN,
            repo: process.env.YUQUE_REPO,
            onlyPublic: false,
            onlyPublished: true,
        },
        notion: {
            token: process.env.NOTION_TOKEN,
            databaseId: process.env.NOTION_DATABASE_ID,
            filter: false, // {property: 'status', select: {equals: '已发布'}}
            catalog: true,
        },
        feishu: {
            type: 'space',
            wikiId: process.env.FEISHU_WIKI_ID,
            folderToken: process.env.FEISHU_FOLDER_TOKEN,
            appId: process.env.FEISHU_APP_ID,
            appSecret: process.env.FEISHU_APP_SECRET,
        },
        flowus: {
            // tablePageId: process.env.FLOWUS_TABLE_PAGE_ID,
            // 用此id报错,用其他账号的tablePageId是可以的
            tablePageId: '43928f20-296b-4db9-b7bb-af11fbb27e85',
            filter: {property: 'status', value: '已发布'},
            catalog: true,
        }
    },
    deploy: {
        platform: 'local',
        local: {
            outputDir: './docs/mds',
            // filename: 'urlname',
            filename: 'title',
            format: 'markdown',
            catalog: true,
            frontMatter: {
                enable: true,
                exclude: ['cover'] // 文档属性排除 cover 字段
            }
        },
        halo: {
            endpoint: process.env.HALO_ENDPOINT,
            token: process.env.HALO_TOKEN,
            policyName: process.env.HALO_POLICY_NAME,
            rowType: 'html',
            needUploadImage: true,
        },
        confluence: {
            user: process.env.CONFLUENCE_USER,
            password: process.env.WORDPRESS_PASSWORD,
            endpoint: process.env.WORDPRESS_ENDPOINT,
            spaceKey: process.env.CONFLUENCE_SPACE_KEY,
            rootPageId: process.env.CONFLUENCE_ROOT_PAGE_ID, // 可选
        },
        wordpress: {
            username: process.env.WORDPRESS_USERNAME,
            password: process.env.WORDPRESS_PASSWORD,
            endpoint: process.env.WORDPRESS_ENDPOINT,
        }
    },
    image: {
        enable: true,
        platform: 'local',
        local: {
            outputDir: './docs/public/images',
            prefixKey: '/images',
            pathFollowDoc: false,
        },
        oss: {
            secretId: process.env.OSS_SECRET_ID,
            secretKey: process.env.OSS_SECRET_KEY,
            bucket: process.env.OSS_BUCKET,
            region: process.env.OSS_REGION,
            host: process.env.OSS_HOST,
            prefixKey: '',
        },
        cos: {
            secretId: process.env.COS_SECRET_ID,
            secretKey: process.env.COS_SECRET_KEY,
            bucket: process.env.COS_BUCKET,
            region: process.env.COS_REGION,
            host: process.env.COS_HOST,
            prefixKey: '',
        },
        qiniu: {
            secretId: process.env.QINIU_SECRET_ID,
            secretKey: process.env.QINIU_SECRET_KEY,
            bucket: process.env.QINIU_BUCKET,
            region: process.env.QINIU_REGION,
            host: process.env.QINIU_HOST,
            prefixKey: '',
        },
        upyun: {
            user: process.env.UPYUN_USER,
            password: process.env.UPYUN_PASSWORD,
            bucket: process.env.UPYUN_BUCKET,
            host: process.env.UPYUN_HOST,
            prefixKey: '',
        },
        github: {
            user: process.env.GITHUB_USER,
            token: process.env.GITHUB_TOKEN,
            repo: process.env.GITHUB_REPO,
            prefixKey: '',
        }
    }
}

发生了什么?

image

Elog错误日志

No response

附加信息

No response

点赞

文档写得真好,加油加油

关于语雀与halo同步时封面图片链接未被替换的问题

你当前使用的Elog版本

0.14.0

Elog配置文件

发生了什么?

语雀的文档可以设置封面图片
image
image
在同步到halo平台的时候,封面图片仍然是语雀的连接
image
这导致图片不显示。

Elog错误日志

No response

附加信息

No response

点赞

通过阮一峰博客看到作者的项目,我在使用语雀的时候也有类似的想法,借助一个成熟的软件实现跨平台数据同步,不过目前只做了语雀的导出。语雀的token权限从一开始的普通用户到专业会员用户再到现在的超级会员才有,虽然我也是深度使用者但觉得他格局越来越小了。
所以我自己开发了一个无需token的导出工具,看作者要不要考虑一下我的思路,同时采用语雀自己的导出操作可以很好的解决#6 这个问题。

https://github.com/vannvan/yuque-tools

你好,当notion作为write时,导出文件至本地时,notion内的Callout模块内容,存在异常情况

你当前使用的Elog版本

0.14.0

Elog配置文件

notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: { property: 'status', select: { equals: 'Published' }},
      catalog: {
        enable: true,
        property: "categories"
      }
    },

发生了什么?

你好,当notion作为write时,导出文件至本地时,notion内的Callout模块内容,存在异常情况。

Elog错误日志

附加信息

notion文档内容
CleanShot 2024-05-14 at 01 52 33@2x

导出文件,生成hexo博客后的展示效果
CleanShot 2024-05-14 at 01 53 10@2x

期待更多的template

你当前使用的Elog版本

0.14.0

描述一下此特性

RT,期待更多模板。
本人期望的工作流是 语雀 + hexo,模板是语雀 +vitepress。
本来仿照一个已经成熟的配置:https://github.com/lidelong-0201/next-yuque-elog ,但是无奈尝试后也没有成功。

感觉配置还是稍显复杂和绕
模板丰富后可能有利于后续推广。

附加信息

此外,本人不是前端工作者,有可能是知识欠缺导致。
如果作者没有兴趣开发 语雀 + hexo 的模板,请随意关闭此issue

建议:提供开箱即用的部署支持,将会吸引更多新用户尝试【已提供开箱配置,详情见 readme 开箱配置示例】

虽然通过一些配置可做到 Notion编辑->自动拉取->自动更新,但是这个配置的过程依然会耗费一些时间,以及有一定的学习门槛。这阻止了很多想先浅尝一下的用户。

可以参考NotionNext的配置方式:直接 github fork 模版仓库->连接到一个新的 Vercel,配置一下id到环境变量即可直接使用。只需点两三下按钮,非常快速且方便。

捐赠渠道

你当前使用的Elog版本

描述一下此特性

附加信息

感谢作者更新,请问有捐赠渠道吗,想请一杯奶茶。虽然还没开始使用,但真觉得是宝藏项目。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.