Skip to content

Commit

Permalink
Merge pull request #3 from lexmin0412/f-20240422-full-block
Browse files Browse the repository at this point in the history
F 20240422 full block
  • Loading branch information
lexmin0412 authored Apr 22, 2024
2 parents 7fe5085 + 9842514 commit b7bed5a
Show file tree
Hide file tree
Showing 23 changed files with 605 additions and 12 deletions.
2 changes: 2 additions & 0 deletions .readue/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ module.exports = {
list: [
"@readue/block-base_info",
"@readue/block-packages",
"@readue/block-tree",
"@readue/block-env_requirement",
"@readue/block-star_history",
]
}
Expand Down
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,48 @@ README 生成器。
|[@readue/api](https://www.npmjs.com/package/@readue/api)|![version](https://img.shields.io/npm/v/@readue/api) ![downloads-month](https://img.shields.io/npm/dm/@readue/api)|Readue Node API|
|[@readue/app](https://www.npmjs.com/package/@readue/app)|![version](https://img.shields.io/npm/v/@readue/app) ![downloads-month](https://img.shields.io/npm/dm/@readue/app)|Readue App, 提供 Readue 的可视化界面|
|[@readue/block-base_info](https://www.npmjs.com/package/@readue/block-base_info)|![version](https://img.shields.io/npm/v/@readue/block-base_info) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-base_info)|Readue 基础信息块插件|
|[@readue/block-env_requirement](https://www.npmjs.com/package/@readue/block-env_requirement)|![version](https://img.shields.io/npm/v/@readue/block-env_requirement) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-env_requirement)|Readue 环境要求块插件。|
|[@readue/block-packages](https://www.npmjs.com/package/@readue/block-packages)|![version](https://img.shields.io/npm/v/@readue/block-packages) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-packages)|Readue Monorepo 子包信息块|
|[@readue/block-star_history](https://www.npmjs.com/package/@readue/block-star_history)|![version](https://img.shields.io/npm/v/@readue/block-star_history) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-star_history)|Readue Star History 块插件|
|[@readue/block-techstack](https://www.npmjs.com/package/@readue/block-techstack)|![version](https://img.shields.io/npm/v/@readue/block-techstack) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-techstack)|Readue 技术栈块插件。|
|[@readue/block-tree](https://www.npmjs.com/package/@readue/block-tree)|![version](https://img.shields.io/npm/v/@readue/block-tree) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-tree)|Readue 文件树块插件。|
|[@readue/cli](https://www.npmjs.com/package/@readue/cli)|![version](https://img.shields.io/npm/v/@readue/cli) ![downloads-month](https://img.shields.io/npm/dm/@readue/cli)|Readue 命令行接口|
|[@readue/config](https://www.npmjs.com/package/@readue/config)|![version](https://img.shields.io/npm/v/@readue/config) ![downloads-month](https://img.shields.io/npm/dm/@readue/config)|Readue 的配置包|
|[@readue/docs](https://www.npmjs.com/package/@readue/docs)|![version](https://img.shields.io/npm/v/@readue/docs) ![downloads-month](https://img.shields.io/npm/dm/@readue/docs)|Readue 文档|

## 项目结构

```bash
readue
├── CHANGELOG.md
├── README.md
├── changelog.config.js
├── lerna-debug.log
├── lerna.json
├── package.json
├── packages
│ ├── api
│ ├── app
│ ├── block-base_info
│ ├── block-env_requirement
│ ├── block-packages
│ ├── block-star_history
│ ├── block-techstack
│ ├── block-tree
│ ├── cli
│ ├── config
│ └── docs
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── tsconfig.json
```

## 环境要求

- node >=14.0.0

- pnpm >=8.0.0


## Star History

Expand Down
11 changes: 9 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"test": "echo \"Error: no test specified\" && exit 1",
"build": "pnpm --filter=@readue/* run build",
"dev:app": "pnpm --filter=@readue/app run dev",
"dev:docs": "pnpm --filter=@readue/docs run dev",
"dev:docs": "pnpm --filter=@readue/docs run dev",
"ts": "ts-node src/",
"ci:version": "lerna version patch --yes --conventional-commits",
"ci:publish": "lerna publish from-package --yes"
Expand All @@ -25,6 +25,10 @@
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
},
"engines": {
"node": ">=14.0.0",
"pnpm": ">=8.0.0"
},
"repository": {
"type": "git",
"url": "git+https://github.com/lexmin0412/readue.git"
Expand All @@ -42,7 +46,10 @@
},
"dependencies": {
"@readue/block-base_info": "workspace:*",
"@readue/block-env_requirement": "workspace:*",
"@readue/block-packages": "workspace:*",
"@readue/block-star_history": "workspace:*"
"@readue/block-star_history": "workspace:*",
"@readue/block-techstack": "workspace:*",
"@readue/block-tree": "workspace:*"
}
}
3 changes: 3 additions & 0 deletions packages/block-env_requirement/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lib
es
node_modules
5 changes: 5 additions & 0 deletions packages/block-env_requirement/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# @readue/block-env_requirement

Readue 环境要求块插件。

![version](https://img.shields.io/npm/v/@readue/block-env_requirement) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-env_requirement)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

const blockEnvRequirement = require('..');
const assert = require('assert').strict;

assert.strictEqual(blockEnvRequirement(), 'Hello from blockEnvRequirement');
console.info('blockEnvRequirement tests passed');
52 changes: 52 additions & 0 deletions packages/block-env_requirement/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"name": "@readue/block-env_requirement",
"version": "0.2.4",
"description": "Readue 环境要求块插件。",
"keywords": [
"readue"
],
"author": "lexmin0412 <[email protected]>",
"homepage": "https://github.com/lexmin0412/readue#readme",
"license": "ISC",
"main": "./lib/index.js",
"directories": {
"lib": "lib",
"test": "__tests__"
},
"files": [
"es",
"lib"
],
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"repository": {
"type": "git",
"url": "git+https://github.com/lexmin0412/readue.git"
},
"scripts": {
"test": "node ./__tests__/block-env_requirement.test.js",
"build:commonjs": "rimraf lib && tsc --target es5 --outDir lib --module commonjs --declaration",
"build:es": "rimraf es && tsc --target es6 --outDir es --module es6",
"build": "npm run build:commonjs && npm run build:es",
"ts": "ts-node src/",
"prepublishOnly": "npm run build"
},
"bugs": {
"url": "https://github.com/lexmin0412/readue/issues"
},
"devDependencies": {
"@types/node": "^20.12.7",
"rimraf": "^5.0.5",
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
},
"types": "./lib/index.d.ts",
"jsnext:main": "./es/index.js",
"module": "./es/index.js",
"dependencies": {
"@readue/config": "workspace:*",
"pkg-types": "^1.1.0"
}
}
20 changes: 20 additions & 0 deletions packages/block-env_requirement/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import type { PackageJson } from 'pkg-types'
import { ReadueConfig } from '@readue/config'

export default function generate(_readueConfig: ReadueConfig, pkgJson: PackageJson) {

const content: string[] = [
'## 环境要求',
]

if (pkgJson.engines) {
for (const key in pkgJson.engines) {
content.push('', `- ${key} ${pkgJson.engines[key]}`)
}
}

return {
name: 'EnvRequirement',
content
}
}
14 changes: 14 additions & 0 deletions packages/block-env_requirement/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"compilerOptions": {
"moduleResolution": "node",
"lib": [
"es6"
],
"alwaysStrict": true,
"strictNullChecks": true,
"noImplicitAny": true
},
"includes": [
"src/*"
]
}
10 changes: 7 additions & 3 deletions packages/block-packages/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,13 @@ export default function (_readueConfig: ReadueConfig, pkgJson: PackageJson, opti
const subPkgJson = JSON.parse(
fs.readFileSync(path.resolve(subDir, "package.json")).toString()
);
content.push(
`|[${subPkgJson.name}](https://www.npmjs.com/package/${subPkgJson.name})|![version](https://img.shields.io/npm/v/${subPkgJson.name}) ![downloads-month](https://img.shields.io/npm/dm/${subPkgJson.name})|${subPkgJson.description}|`
);
if (subPkgJson.private) {
content.push(`|${subPkgJson.name}|私有包, 未发布|${subPkgJson.description}|`)
} else {
content.push(
`|[${subPkgJson.name}](https://www.npmjs.com/package/${subPkgJson.name})|![version](https://img.shields.io/npm/v/${subPkgJson.name}) ![downloads-month](https://img.shields.io/npm/dm/${subPkgJson.name})|${subPkgJson.description}|`
);
}
});

return {
Expand Down
3 changes: 3 additions & 0 deletions packages/block-techstack/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lib
es
node_modules
5 changes: 5 additions & 0 deletions packages/block-techstack/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# @readue/block-techstack

Readue 技术栈块插件。

![version](https://img.shields.io/npm/v/@readue/block-techstack) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-techstack)
7 changes: 7 additions & 0 deletions packages/block-techstack/__tests__/block-techstack.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

const blockTechstack = require('..');
const assert = require('assert').strict;

assert.strictEqual(blockTechstack(), 'Hello from blockTechstack');
console.info('blockTechstack tests passed');
48 changes: 48 additions & 0 deletions packages/block-techstack/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"name": "@readue/block-techstack",
"version": "0.2.4",
"description": "Readue 技术栈块插件。",
"keywords": [
"readue"
],
"author": "lexmin0412 <[email protected]>",
"homepage": "https://github.com/lexmin0412/readue#readme",
"license": "ISC",
"main": "./lib/index.js",
"directories": {
"lib": "lib",
"test": "__tests__"
},
"files": [
"es",
"lib"
],
"repository": {
"type": "git",
"url": "git+https://github.com/lexmin0412/readue.git"
},
"scripts": {
"test": "node ./__tests__/block-techstack.test.js",
"build:commonjs": "rimraf lib && tsc --target es5 --outDir lib --module commonjs --declaration",
"build:es": "rimraf es && tsc --target es6 --outDir es --module es6",
"build": "npm run build:commonjs && npm run build:es",
"ts": "ts-node src/",
"prepublishOnly": "npm run build"
},
"bugs": {
"url": "https://github.com/lexmin0412/readue/issues"
},
"devDependencies": {
"@types/node": "^20.12.7",
"rimraf": "^5.0.5",
"ts-node": "^10.9.2",
"typescript": "^5.4.5"
},
"types": "./lib/index.d.ts",
"jsnext:main": "./es/index.js",
"module": "./es/index.js",
"dependencies": {
"@readue/config": "workspace:^",
"pkg-types": "^1.1.0"
}
}
73 changes: 73 additions & 0 deletions packages/block-techstack/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { ReadueBlockFunction } from "@readue/config";

const generate: ReadueBlockFunction = function (readueConfig, pkgJson) {
const BASE_LIBS = [
{
name: "用户界面框架",
list: ["react", "vue", "svelte", "angular"],
},
{
name: "用户界面UI库",
list: ["antd", "element-ui", "bootstrap", "tailwindcss"],
},
{
name: "路由",
list: ["react-router", "vue-router"],
},
{
name: "状态管理",
list: [
"redux",
"react-redux",
"zustand",
"recoil",
"mobx",
"vuex",
"pinia",
],
},
{
name: "构建工具",
list: ["webpack", "rollup", "vite", "esbuild", "swc", "rsbuild"],
},
{
name: "请求库",
list: ["axios", "ahooks"],
},
{
name: "测试",
list: ["jest", "cypress", "playwright", "puppeteer", "vitest"],
},
{
name: "类型系统",
list: ["typescript", "flow"],
},
];

const content: string[] = [
'## 技术栈'
];

// 读取 pkgJson 的依赖
const dependencies = pkgJson?.dependencies || {};
const devDependencies = pkgJson?.devDependencies || {};
const allDependencies = { ...dependencies, ...devDependencies };

BASE_LIBS.forEach((libType) => {
const matchedDeps: string[] = []
Object.keys(allDependencies).forEach((dep) => {
if (libType.list.includes(dep)) {
matchedDeps.push(`${dep}`);
}
});
const itemContent = matchedDeps?.length ? matchedDeps.join("、") : '未知'
content.push('', `- ${libType.name}: ${itemContent}`);
});

return {
name: "Techstack",
content,
};
};

export default generate;
14 changes: 14 additions & 0 deletions packages/block-techstack/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"compilerOptions": {
"moduleResolution": "node",
"lib": [
"es6"
],
"alwaysStrict": true,
"strictNullChecks": true,
"noImplicitAny": true
},
"includes": [
"src/*"
]
}
3 changes: 3 additions & 0 deletions packages/block-tree/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lib
es
node_modules
5 changes: 5 additions & 0 deletions packages/block-tree/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# @readue/block-tree

Readue 文件树块插件。

![version](https://img.shields.io/npm/v/@readue/block-tree) ![downloads-month](https://img.shields.io/npm/dm/@readue/block-tree)
7 changes: 7 additions & 0 deletions packages/block-tree/__tests__/block-tree.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

const blockTree = require('..');
const assert = require('assert').strict;

assert.strictEqual(blockTree(), 'Hello from blockTree');
console.info('blockTree tests passed');
Loading

0 comments on commit b7bed5a

Please sign in to comment.