其它工具

crd-leetcode-cli

背景

当新增 LeetCode 题解时需要手动更新表格, 较为不便。crd-leetcode-cli 提供了更新 leetcode 站点中已 ac 题解的能力。

安装

执行 yarn add crd-leetcode-cli -g, 国内用户可以执行 cnpm install crd-leetcode-cli -g

使用

leetcode download // 增量拉取 AC 题目(若无登录, 则会先执行登录逻辑)
leetcode download -a // 全量拉取 AC 题目
leetcode login // 登录
leetcode logout // 登出

自定义渲染表格

插件提供了自定义渲染 markdown table 的能力。

在项目根目录创建 config.js 文件。

在 config.js 内自定义生成 markdown 的 transform_markdown_table 函数

const transform_markdown_table = (dataArr: QuestionProps[]): string => {}
module.exports = { transform_markdown_table }

QuestionProps 接口定义如下:

名称含义例子
questionId题号
title标题Two Sum
titleSlug标题的另一种模式two-sum
difficulty难度
topicTags题目所属标签

通过自定义 transform_markdown_table 函数, 便可得到如下 markdown table:

技术细节

  • 使用 puppeteer 登录 leetcode 获取 cookie 信息。
  • 获取 cookie 后, 使用 graphql-request 调用 graphql 接口获取题目详情信息。
  • 自定义生成 markdown table。