├── requirements.txt
├── hg-app
├── mv.sh
├── public
│ ├── favicon.ico
│ ├── manifest.json
│ ├── index.html
│ └── data.json
├── src
│ ├── assets
│ │ ├── happy.png
│ │ └── hg-logo.png
│ ├── config
│ │ ├── image.ts
│ │ └── selfData.ts
│ ├── index.css
│ ├── index.tsx
│ ├── App.tsx
│ ├── react-app-env.d.ts
│ └── components
│ │ ├── Content
│ │ ├── Content.tsx
│ │ └── Card.tsx
│ │ └── Menu
│ │ └── Menu.tsx
├── .eslintrc
├── config
│ ├── jest
│ │ ├── cssTransform.js
│ │ └── fileTransform.js
│ ├── pnpTs.js
│ ├── modules.js
│ ├── paths.js
│ ├── env.js
│ ├── webpackDevServer.config.js
│ └── webpack.config.js
├── .gitignore
├── tsconfig.json
├── scripts
│ ├── test.js
│ ├── start.js
│ └── build.js
├── README.md
└── package.json
├── assets
├── hg-logo.png
└── font
│ └── MicrosoftYaqiHeiLight-2.ttf
├── script
├── howto.md
└── make_html.py
├── .travis.yml
├── README.md
├── .gitignore
└── blogs.md
/requirements.txt:
--------------------------------------------------------------------------------
1 | requests
2 | Jinja2
--------------------------------------------------------------------------------
/hg-app/mv.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | cd ./build/
3 | mv * ../../
--------------------------------------------------------------------------------
/assets/hg-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloGitHub-Team/GitHubPageHub/HEAD/assets/hg-logo.png
--------------------------------------------------------------------------------
/hg-app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloGitHub-Team/GitHubPageHub/HEAD/hg-app/public/favicon.ico
--------------------------------------------------------------------------------
/hg-app/src/assets/happy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloGitHub-Team/GitHubPageHub/HEAD/hg-app/src/assets/happy.png
--------------------------------------------------------------------------------
/hg-app/src/assets/hg-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloGitHub-Team/GitHubPageHub/HEAD/hg-app/src/assets/hg-logo.png
--------------------------------------------------------------------------------
/assets/font/MicrosoftYaqiHeiLight-2.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HelloGitHub-Team/GitHubPageHub/HEAD/assets/font/MicrosoftYaqiHeiLight-2.ttf
--------------------------------------------------------------------------------
/hg-app/src/config/image.ts:
--------------------------------------------------------------------------------
1 | // logo
2 | import logoImg from '../assets/hg-logo.png';
3 | import happyImg from '../assets/happy.png';
4 |
5 | export const img = {
6 | logoImg: logoImg,
7 | happyImg: happyImg
8 | }
--------------------------------------------------------------------------------
/hg-app/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "standard",
3 | "env": {
4 | "browser": true,
5 | "es6": true,
6 | "node": true
7 | },
8 | "rules": {
9 | "allowShortCircuit": false,
10 | "allowTernary": false
11 | }
12 | }
--------------------------------------------------------------------------------
/hg-app/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/hg-app/config/jest/cssTransform.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // This is a custom Jest transformer turning style imports into empty objects.
4 | // http://facebook.github.io/jest/docs/en/webpack.html
5 |
6 | module.exports = {
7 | process() {
8 | return 'module.exports = {};';
9 | },
10 | getCacheKey() {
11 | // The output is always the same.
12 | return 'cssTransform';
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/hg-app/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 |
13 | # misc
14 | .DS_Store
15 | .env.local
16 | .env.development.local
17 | .env.test.local
18 | .env.production.local
19 |
20 | npm-debug.log*
21 | yarn-debug.log*
22 | yarn-error.log*
23 |
--------------------------------------------------------------------------------
/hg-app/src/index.css:
--------------------------------------------------------------------------------
1 | @import '~antd/dist/antd.css';
2 | body {
3 | margin: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
5 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
13 | monospace;
14 | }
--------------------------------------------------------------------------------
/hg-app/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 |
6 | ReactDOM.render(, document.getElementById('root'));
7 |
8 | // If you want your app to work offline and load faster, you can change
9 | // unregister() to register() below. Note this comes with some pitfalls.
10 | // Learn more about service workers: https://bit.ly/CRA-PWA
11 | // serviceWorker.unregister();
12 |
--------------------------------------------------------------------------------
/hg-app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "forceConsistentCasingInFileNames": true,
15 | "module": "esnext",
16 | "moduleResolution": "node",
17 | "resolveJsonModule": true,
18 | "isolatedModules": true,
19 | "noEmit": true,
20 | "jsx": "preserve"
21 | },
22 | "include": [
23 | "src"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/script/howto.md:
--------------------------------------------------------------------------------
1 | ## 一、提交流程
2 |
3 | 为了增加的大家的参与度和熟悉 GitHub 的贡献规则,我们采用 fork + PR 的方式提交项目。具体步骤如下:
4 |
5 | 1. fork 本项目,你的账号下会有一个 GitHubPageHub 项目
6 | 2. 按照下面的格式,修改你的 GitHubPageHub 项目中 `blogs.md` 文件,增加你的项目
7 | 3. 修改完确认无误后,提交 PR
8 | 4. 关注该 PR 的回复,不论是否收录都会有相关的回复
9 |
10 | ## 二、增加项目的格式
11 |
12 | ### 1. 拷贝下面的内容到 `blogs.md` 文件中
13 |
14 | *注意: 请把新增内容写在最后面,并且不要改动前面的内容*
15 |
16 | ```
17 | begin
18 | url(地址):
19 | name(名称):
20 | description(描述):
21 | tag(标签):
22 | end
23 |
24 | ```
25 |
26 | ### 2. 按照上述提示填写内容(所有项均为必填)
27 | - 描述:不要超过 100 个字符
28 | - 标签可选列表:算法/数据结构|OI/ACM|前端|后端|Android|iOS|人工智能|产品|数据库|服务器|编程语言|区块链|架构|运维|游戏|物联网|安全|云计算/大数据
29 | - 多标签:采用`|`符号分割
30 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | matrix:
2 | include:
3 | - language: node_js
4 | node_js:
5 | - 10.16.0
6 | before_install:
7 | - cd hg-app
8 | install:
9 | - npm install
10 | script:
11 | - npm run build
12 | - sh ./mv.sh
13 | - language: python
14 | python:
15 | - '3.6'
16 | install:
17 | - pip install -r requirements.txt
18 | script: python script/make_html.py
19 |
20 | deploy:
21 | provider: pages
22 | skip_cleanup: true
23 | github_token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
24 | keep_history: true
25 | on:
26 | branch: master
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
欢迎来到 GitHubPageHub 👋
2 |
3 |
4 |
5 |
6 | ## 🏠 [首页](https://hellogithub-team.github.io/GitHubPageHub/)
7 |
8 | ## 简介
9 |
10 | 本项目是一个**不仅限于 GitHub Page 的个人博客展示页**。你可以把你的个人博客提交上来展示。当然我们也希望你能在你的博客中加上一个 [HelloGitHub](https://github.com/521xueweihan/HelloGitHub) 的链接哦!
11 |
12 | 点击[这里](script/howto.md),马上提交你的博客吧!
13 |
14 | ***
15 | :heart: GitHubPageHub
16 |
17 | Maintained by [HelloGitHub-Team](https://github.com/HelloGitHub-Team)
18 |
--------------------------------------------------------------------------------
/hg-app/config/pnpTs.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const { resolveModuleName } = require('ts-pnp');
4 |
5 | exports.resolveModuleName = (
6 | typescript,
7 | moduleName,
8 | containingFile,
9 | compilerOptions,
10 | resolutionHost
11 | ) => {
12 | return resolveModuleName(
13 | moduleName,
14 | containingFile,
15 | compilerOptions,
16 | resolutionHost,
17 | typescript.resolveModuleName
18 | );
19 | };
20 |
21 | exports.resolveTypeReferenceDirective = (
22 | typescript,
23 | moduleName,
24 | containingFile,
25 | compilerOptions,
26 | resolutionHost
27 | ) => {
28 | return resolveModuleName(
29 | moduleName,
30 | containingFile,
31 | compilerOptions,
32 | resolutionHost,
33 | typescript.resolveTypeReferenceDirective
34 | );
35 | };
36 |
--------------------------------------------------------------------------------
/hg-app/src/config/selfData.ts:
--------------------------------------------------------------------------------
1 | export const menuData = [
2 | {
3 | id: 1,
4 | name: '前端'
5 | },
6 | {
7 | id: 2,
8 | name: '算法/数据结构'
9 | }, {
10 | id: 3,
11 | name: 'OI/ACM'
12 | }, {
13 | id: 4,
14 | name: '后端'
15 | }, {
16 | id: 5,
17 | name: 'Android'
18 | }, {
19 | id: 6,
20 | name: 'IOS'
21 | }, {
22 | id: 7,
23 | name: '人工智能'
24 | }, {
25 | id: 8,
26 | name: '产品'
27 | }, {
28 | id: 9,
29 | name: '数据库'
30 | }, {
31 | id: 10,
32 | name: '服务器'
33 | }, {
34 | id: 11,
35 | name: '编程语言'
36 | }, {
37 | id: 12,
38 | name: '区块链'
39 | }, {
40 | id: 13,
41 | name: '架构'
42 | }, {
43 | id: 14,
44 | name: '运维'
45 | }, {
46 | id: 15,
47 | name: '游戏'
48 | }, {
49 | id: 16,
50 | name: '物联网'
51 | }, {
52 | id: 17,
53 | name: '云计算'
54 | }, {
55 | id: 18,
56 | name: '大数据'
57 | }
58 | ]
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | develop-eggs/
12 | dist/
13 | downloads/
14 | eggs/
15 | lib/
16 | lib64/
17 | parts/
18 | sdist/
19 | var/
20 | build/
21 | *.egg-info/
22 | .installed.cfg
23 | *.egg
24 |
25 | # PyInstaller
26 | # Usually these files are written by a python script from a template
27 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
28 | *.manifest
29 | *.spec
30 |
31 | # Installer logs
32 | pip-log.txt
33 | pip-delete-this-directory.txt
34 |
35 | # Unit test / coverage reports
36 | htmlcov/
37 | .tox/
38 | .coverage
39 | .cache
40 | nosetests.xml
41 | coverage.xml
42 |
43 | # Translations
44 | *.mo
45 | *.pot
46 |
47 | # Django stuff:
48 | *.log
49 | *.log.*
50 |
51 | # Sphinx documentation
52 | docs/_build/
53 |
54 | # PyBuilder
55 | target/
56 |
57 |
58 | # Local settings
59 |
60 | # vim
61 | *.swp
62 |
63 | # pycharm
64 | .idea/
65 |
66 | # vscode
67 | .vscode
68 |
69 | # mac os
70 | .DS_Store
71 |
72 | # db file
73 | *.db
74 | db_backup/
75 |
76 | # script file
77 |
--------------------------------------------------------------------------------
/hg-app/src/App.tsx:
--------------------------------------------------------------------------------
1 | import React, { PureComponent } from 'react';
2 | import styled from 'styled-components';
3 | import Menu from './components/Menu/Menu';
4 | import Content from './components/Content/Content';
5 |
6 |
7 | const AppWrapper = styled.div`
8 | &:after {
9 | content: '',
10 | display: block,
11 | clear: both
12 | }
13 |
14 |
15 | .aside {
16 | width: 16%;
17 | position: fixed;
18 | z-index: 200;
19 | top: 0;
20 | left: 0;
21 | bottom: -100px;
22 | background-color: #24243E;
23 | padding: 31px 0;
24 | color: #ccc;
25 | }
26 |
27 | .content {
28 | float: right;
29 | width: 100%;
30 | margin-left: -100px;
31 | max-width: 84%;
32 | }
33 |
34 | .right{
35 | width: 100%;
36 | height:100vh;
37 | overflow:hidden;
38 | background-color: #221F3A;
39 | }
40 | `;
41 | class App extends PureComponent {
42 | render() {
43 | return (
44 |
45 |
46 |
47 |
48 |
53 |
54 | );
55 | }
56 | }
57 |
58 |
59 |
60 | export default App;
61 |
--------------------------------------------------------------------------------
/hg-app/config/jest/fileTransform.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const path = require('path');
4 | const camelcase = require('camelcase');
5 |
6 | // This is a custom Jest transformer turning file imports into filenames.
7 | // http://facebook.github.io/jest/docs/en/webpack.html
8 |
9 | module.exports = {
10 | process(src, filename) {
11 | const assetFilename = JSON.stringify(path.basename(filename));
12 |
13 | if (filename.match(/\.svg$/)) {
14 | // Based on how SVGR generates a component name:
15 | // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6
16 | const pascalCaseFileName = camelcase(path.parse(filename).name, {
17 | pascalCase: true,
18 | });
19 | const componentName = `Svg${pascalCaseFileName}`;
20 | return `const React = require('react');
21 | module.exports = {
22 | __esModule: true,
23 | default: ${assetFilename},
24 | ReactComponent: React.forwardRef(function ${componentName}(props, ref) {
25 | return {
26 | $$typeof: Symbol.for('react.element'),
27 | type: 'svg',
28 | ref: ref,
29 | key: null,
30 | props: Object.assign({}, props, {
31 | children: ${assetFilename}
32 | })
33 | };
34 | }),
35 | };`;
36 | }
37 |
38 | return `module.exports = ${assetFilename};`;
39 | },
40 | };
41 |
--------------------------------------------------------------------------------
/hg-app/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 |
5 | declare namespace NodeJS {
6 | interface ProcessEnv {
7 | readonly NODE_ENV: 'development' | 'production' | 'test';
8 | readonly PUBLIC_URL: string;
9 | }
10 | }
11 |
12 | declare module '*.bmp' {
13 | const src: string;
14 | export default src;
15 | }
16 |
17 | declare module '*.gif' {
18 | const src: string;
19 | export default src;
20 | }
21 |
22 | declare module '*.jpg' {
23 | const src: string;
24 | export default src;
25 | }
26 |
27 | declare module '*.jpeg' {
28 | const src: string;
29 | export default src;
30 | }
31 |
32 | declare module '*.png' {
33 | const src: string;
34 | export default src;
35 | }
36 |
37 | declare module '*.webp' {
38 | const src: string;
39 | export default src;
40 | }
41 |
42 | declare module '*.svg' {
43 | import * as React from 'react';
44 |
45 | export const ReactComponent: React.FunctionComponent>;
46 |
47 | const src: string;
48 | export default src;
49 | }
50 |
51 | declare module '*.module.css' {
52 | const classes: { [key: string]: string };
53 | export default classes;
54 | }
55 |
56 | declare module '*.module.scss' {
57 | const classes: { [key: string]: string };
58 | export default classes;
59 | }
60 |
61 | declare module '*.module.sass' {
62 | const classes: { [key: string]: string };
63 | export default classes;
64 | }
65 |
--------------------------------------------------------------------------------
/hg-app/scripts/test.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // Do this as the first thing so that any code reading it knows the right env.
4 | process.env.BABEL_ENV = 'test';
5 | process.env.NODE_ENV = 'test';
6 | process.env.PUBLIC_URL = '';
7 |
8 | // Makes the script crash on unhandled rejections instead of silently
9 | // ignoring them. In the future, promise rejections that are not handled will
10 | // terminate the Node.js process with a non-zero exit code.
11 | process.on('unhandledRejection', err => {
12 | throw err;
13 | });
14 |
15 | // Ensure environment variables are read.
16 | require('../config/env');
17 |
18 |
19 | const jest = require('jest');
20 | const execSync = require('child_process').execSync;
21 | let argv = process.argv.slice(2);
22 |
23 | function isInGitRepository() {
24 | try {
25 | execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });
26 | return true;
27 | } catch (e) {
28 | return false;
29 | }
30 | }
31 |
32 | function isInMercurialRepository() {
33 | try {
34 | execSync('hg --cwd . root', { stdio: 'ignore' });
35 | return true;
36 | } catch (e) {
37 | return false;
38 | }
39 | }
40 |
41 | // Watch unless on CI or explicitly running all tests
42 | if (
43 | !process.env.CI &&
44 | argv.indexOf('--watchAll') === -1
45 | ) {
46 | // https://github.com/facebook/create-react-app/issues/5210
47 | const hasSourceControl = isInGitRepository() || isInMercurialRepository();
48 | argv.push(hasSourceControl ? '--watch' : '--watchAll');
49 | }
50 |
51 |
52 | jest.run(argv);
53 |
--------------------------------------------------------------------------------
/hg-app/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
22 | GitHubPageHub
23 |
24 |
25 |
26 |
27 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/hg-app/README.md:
--------------------------------------------------------------------------------
1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | ## Available Scripts
4 |
5 | In the project directory, you can run:
6 |
7 | ### `npm start`
8 |
9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `npm test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `npm run build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `npm run eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
--------------------------------------------------------------------------------
/hg-app/public/data.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "url": "https://chungzh.cn/",
4 | "name": "ChungZH's Blog",
5 | "desc": "ChungZH 的小站",
6 | "tags": [
7 | "编程语言",
8 | "算法/数据结构",
9 | "OI/ACM"
10 | ],
11 | "speed": 0.75974
12 | },
13 | {
14 | "url": "https://www.desgard.com/",
15 | "name": "Guardia · 瓜地",
16 | "desc": "冬瓜的博客",
17 | "tags": [
18 | "客户端",
19 | "算法/数据结构",
20 | "iOS"
21 | ],
22 | "speed": 0.547567
23 | },
24 | {
25 | "url": "https://www.jefsky.com",
26 | "name": "程序猿甜品店",
27 | "desc": "代码不一定每天都能写好,但人生每一天都要活好",
28 | "tags": [
29 | "前端",
30 | "数据库",
31 | "后端"
32 | ],
33 | "speed": 0.066244
34 | },
35 | {
36 | "url": "https://ops-coffee.cn/",
37 | "name": "运维咖啡吧",
38 | "desc": "追求技术的道路上,我从不曾停下脚步",
39 | "tags": [
40 | "运维",
41 | "数据库",
42 | "服务器",
43 | "架构"
44 | ],
45 | "speed": 0.547185
46 | },
47 | {
48 | "url": "https://tkstorm.com",
49 | "name": "TK.Storm",
50 | "desc": "死亡即开始,当下即永恒",
51 | "tags": [
52 | "运维",
53 | "服务器",
54 | "算法/数据结构",
55 | "架构",
56 | "编程语言"
57 | ],
58 | "speed": 0.198786
59 | },
60 | {
61 | "url": "https://shizuri.net",
62 | "name": "静之森",
63 | "desc": "致虚极、守静笃。",
64 | "tags": [],
65 | "speed": 3.340723
66 | },
67 | {
68 | "url": "https://www.bitlogs.tech/",
69 | "name": "Cloud Strife",
70 | "desc": "Make The World A Better Place",
71 | "tags": [
72 | "后端"
73 | ],
74 | "speed": 1.677819
75 | },
76 | {
77 | "url": "https://blog.p2hp.com",
78 | "name": "Lenix Blog",
79 | "desc": "记录-交流-分享",
80 | "tags": [
81 | "运维",
82 | "数据库",
83 | "服务器",
84 | "架构",
85 | "后端",
86 | "物联网",
87 | "编程语言",
88 | "前端"
89 | ],
90 | "speed": 0.284414
91 | }
92 | ]
--------------------------------------------------------------------------------
/blogs.md:
--------------------------------------------------------------------------------
1 | begin
2 | url(地址): https://chungzh.cn/
3 | name(名称): ChungZH's Blog
4 | description(描述): ChungZH 的小站
5 | tag(标签): 算法/数据结构|OI/ACM|编程语言
6 | end
7 |
8 | begin
9 | url(地址): https://www.desgard.com/
10 | name(名称): Guardia · 瓜地
11 | description(描述): 冬瓜的博客
12 | tag(标签): iOS|客户端|算法/数据结构
13 | end
14 |
15 | begin
16 | url(地址): https://www.jefsky.com
17 | name(名称): 程序猿甜品店
18 | description(描述): 代码不一定每天都能写好,但人生每一天都要活好
19 | tag(标签): 前端|后端|数据库
20 | end
21 |
22 | begin
23 | url(地址): https://ops-coffee.cn/
24 | name(名称): 运维咖啡吧
25 | description(描述): 追求技术的道路上,我从不曾停下脚步
26 | tag(标签): 数据库|服务器|架构|运维
27 | end
28 |
29 |
30 | begin
31 | url(地址): https://tkstorm.com
32 | name(名称): TK.Storm
33 | description(描述): 死亡即开始,当下即永恒
34 | tag(标签): 服务器|架构|运维|编程语言|算法/数据结构
35 | end
36 |
37 | begin
38 | url(地址): https://shizuri.net
39 | name(名称): 静之森
40 | description(描述): 致虚极、守静笃。
41 | tag(标签): 生活|思考|人生|大学生活
42 | end
43 |
44 | begin
45 | url(地址): https://www.bitlogs.tech/
46 | name(名称): Cloud Strife
47 | description(描述): Make The World A Better Place
48 | tag(标签): 后端
49 | end
50 |
51 | begin
52 | url(地址): https://blog.p2hp.com
53 | name(名称): Lenix Blog
54 | description(描述):记录-交流-分享
55 | tag(标签): 前端|后端|数据库|服务器|编程语言|架构|运维|物联网
56 | end
57 |
58 | begin
59 | url(地址): https://cmcncm.cn/
60 | name(名称): 庄七
61 | description(描述):以善眼望世界
62 | tag(标签): 思考|区块链
63 | end
64 |
65 | begin
66 | url(地址): http://houkensjtu.github.io/
67 | name(名称): Geekhead
68 | description(描述):Be real.
69 | tag(标签):编程语言|人工智能|思考
70 | end
71 |
72 | begin
73 | url(地址): http://chenfeiyang.top
74 | name(名称): Feiyang Chen's Blogs
75 | description(描述): Knowing is owning...
76 | tag(标签): 算法|人工智能|论文笔记
77 | end
78 |
79 | begin
80 | url(地址): http://github.laiczhang.com
81 | name(名称): laic zhang の Blog
82 | description(描述): Do a good thing.
83 | tag(标签): 算法|人工智能|思考
84 | end
85 |
86 | begin
87 | url(地址): https://royce2003.top/
88 | name(名称): Royce's Blog
89 | description(描述): Royce 的小窝
90 | tag(标签): OI/ACM|算法/数据结构|编程语言
91 | end
92 |
93 | begin
94 | url(地址): https://aeilot.github.io/blog
95 | name(名称): Louis Aeilot's Blog
96 | description(描述): Stay Hungry. Stay Foolish.
97 | tag(标签): OI/ACM|算法/数据结构|Android|iOS|编程语言
98 | end
99 |
100 | begin
101 | url(地址): https://blog.pi-dal.com
102 | name(名称): pi-dal-blog
103 | description(描述): pi-dal的个人博客
104 | tag(标签): 前端|后端|iOS|物理|数学|日记
105 | end
106 |
--------------------------------------------------------------------------------
/hg-app/config/modules.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const fs = require('fs');
4 | const path = require('path');
5 | const paths = require('./paths');
6 | const chalk = require('react-dev-utils/chalk');
7 |
8 | /**
9 | * Get the baseUrl of a compilerOptions object.
10 | *
11 | * @param {Object} options
12 | */
13 | function getAdditionalModulePaths(options = {}) {
14 | const baseUrl = options.baseUrl;
15 |
16 | // We need to explicitly check for null and undefined (and not a falsy value) because
17 | // TypeScript treats an empty string as `.`.
18 | if (baseUrl == null) {
19 | // If there's no baseUrl set we respect NODE_PATH
20 | // Note that NODE_PATH is deprecated and will be removed
21 | // in the next major release of create-react-app.
22 |
23 | const nodePath = process.env.NODE_PATH || '';
24 | return nodePath.split(path.delimiter).filter(Boolean);
25 | }
26 |
27 | const baseUrlResolved = path.resolve(paths.appPath, baseUrl);
28 |
29 | // We don't need to do anything if `baseUrl` is set to `node_modules`. This is
30 | // the default behavior.
31 | if (path.relative(paths.appNodeModules, baseUrlResolved) === '') {
32 | return null;
33 | }
34 |
35 | // Allow the user set the `baseUrl` to `appSrc`.
36 | if (path.relative(paths.appSrc, baseUrlResolved) === '') {
37 | return [paths.appSrc];
38 | }
39 |
40 | // Otherwise, throw an error.
41 | throw new Error(
42 | chalk.red.bold(
43 | "Your project's `baseUrl` can only be set to `src` or `node_modules`." +
44 | ' Create React App does not support other values at this time.'
45 | )
46 | );
47 | }
48 |
49 | function getModules() {
50 | // Check if TypeScript is setup
51 | const hasTsConfig = fs.existsSync(paths.appTsConfig);
52 | const hasJsConfig = fs.existsSync(paths.appJsConfig);
53 |
54 | if (hasTsConfig && hasJsConfig) {
55 | throw new Error(
56 | 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.'
57 | );
58 | }
59 |
60 | let config;
61 |
62 | // If there's a tsconfig.json we assume it's a
63 | // TypeScript project and set up the config
64 | // based on tsconfig.json
65 | if (hasTsConfig) {
66 | config = require(paths.appTsConfig);
67 | // Otherwise we'll check if there is jsconfig.json
68 | // for non TS projects.
69 | } else if (hasJsConfig) {
70 | config = require(paths.appJsConfig);
71 | }
72 |
73 | config = config || {};
74 | const options = config.compilerOptions || {};
75 |
76 | const additionalModulePaths = getAdditionalModulePaths(options);
77 |
78 | return {
79 | additionalModulePaths: additionalModulePaths,
80 | hasTsConfig,
81 | };
82 | }
83 |
84 | module.exports = getModules();
85 |
--------------------------------------------------------------------------------
/hg-app/src/components/Content/Content.tsx:
--------------------------------------------------------------------------------
1 | import React, { PureComponent } from 'react';
2 | import styled from 'styled-components';
3 | import { Alert, Row, Col } from 'antd';
4 | import Card from './Card';
5 | import axios from 'axios';
6 |
7 | const ContentWrapper = styled.div`
8 | padding: 10px;
9 |
10 | .contents {
11 | margin-top: 20px;
12 | }
13 | `;
14 |
15 |
16 | class Content extends PureComponent {
17 |
18 | constructor(props: any) {
19 | super(props);
20 | }
21 |
22 |
23 |
24 | componentDidMount() {
25 | console.log('进来了----------------------------');
26 | fetch("https://easy-mock.com/mock/59a90a31e0dc6633419878e6/example/menu/lists", {
27 | method: 'GET',
28 | mode: 'cors',
29 | }) .then(res => res.json())
30 | .then(json => window.localStorage.setItem("data",JSON.stringify(json)));
31 |
32 | console.log('出来了----------------------------');
33 | }
34 |
35 | onClose = (event: any) => {
36 | console.log(event, 'I was closed.');
37 | };
38 |
39 | render() {
40 | let dataArray = null;
41 | let dataArrayString = localStorage.getItem('data');
42 | if (dataArrayString) {
43 | dataArray = JSON.parse(dataArrayString);
44 | }
45 |
46 | console.log(dataArray);
47 | return (
48 |
49 | this.onClose}
55 | />
56 |
57 |
58 | {
59 | dataArray && dataArray.map((item: any, index: any) => {
60 | return (
61 |
62 |
70 |
71 |
72 | );
73 | })
74 | }
75 |
76 |
77 |
78 | );
79 | }
80 | }
81 |
82 | export default Content;
83 |
--------------------------------------------------------------------------------
/hg-app/config/paths.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const path = require('path');
4 | const fs = require('fs');
5 | const url = require('url');
6 |
7 | // Make sure any symlinks in the project folder are resolved:
8 | // https://github.com/facebook/create-react-app/issues/637
9 | const appDirectory = fs.realpathSync(process.cwd());
10 | const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
11 |
12 | const envPublicUrl = process.env.PUBLIC_URL;
13 |
14 | function ensureSlash(inputPath, needsSlash) {
15 | const hasSlash = inputPath.endsWith('/');
16 | if (hasSlash && !needsSlash) {
17 | return inputPath.substr(0, inputPath.length - 1);
18 | } else if (!hasSlash && needsSlash) {
19 | return `${inputPath}/`;
20 | } else {
21 | return inputPath;
22 | }
23 | }
24 |
25 | const getPublicUrl = appPackageJson =>
26 | envPublicUrl || require(appPackageJson).homepage;
27 |
28 | // We use `PUBLIC_URL` environment variable or "homepage" field to infer
29 | // "public path" at which the app is served.
30 | // Webpack needs to know it to put the right