Skip to content

Commit 9c38ddb

Browse files
author
ML2jinmyoung
committed
[FIX] a tag -> router
1 parent 886fb85 commit 9c38ddb

File tree

9 files changed

+163
-29
lines changed

9 files changed

+163
-29
lines changed

Diff for: .eslintrc.json

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
11
{
2-
"extends": "next/core-web-vitals"
3-
}
2+
"env": {
3+
"browser":true,
4+
"es2021":true,
5+
"node":true
6+
},
7+
"extends":[
8+
"eslint:recommended",
9+
"next",
10+
"next/core-web-vitals",
11+
"plugin:prettier/recommended"
12+
]
13+
}

Diff for: .prettierrc

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"singleQuote": true,
3+
"semi": false,
4+
"useTabs": false,
5+
"tabWidth": 2,
6+
"trailingComma": "all",
7+
"printWidth": 80,
8+
"arrowParens": "always",
9+
"orderedImports": true,
10+
"bracketSpacing": true,
11+
"jsxBracketSameLine": false
12+
}
13+

Diff for: components/GameIndex.js

+23-7
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,43 @@
1+
import { useRouter } from 'next/router'
2+
import button from '../styles/Button.module.scss'
3+
14
const GameIndex = ({ keywords }) => {
25

6+
const router = useRouter()
7+
38
const makeBold = (item, keyword) => {
49
return item.replace(new RegExp('(\\b)(' + keyword.join('|') + ')(\\b)', 'ig'), '$1<b>$2</b>$3');
510
}
611

712
return (
813
<div>
914
<ul>
10-
{/* <p>| 응용하기 |</p> */}
1115
<li>
1216
<details>
1317
<summary dangerouslySetInnerHTML={{ __html: makeBold('part1', keywords) }} ></summary>
14-
<a dangerouslySetInnerHTML={{ __html: makeBold('1. 강화학습을 통한 Snake 학습시키기', keywords) }} href='/posts/game-1intro' ></a> <br></br>
15-
<a dangerouslySetInnerHTML={{ __html: makeBold('1.1 Previous Approaches', keywords) }} href='/posts/game-1.1' ></a> <br></br>
16-
<a dangerouslySetInnerHTML={{ __html: makeBold('1.2 Single-Agent Algorithm in Multi-Snake', keywords) }} href='/posts/game-1.2' ></a>
18+
<button className={button.link} onClick={() => router.replace('/posts/game-1intro')} >
19+
<p dangerouslySetInnerHTML={{ __html: makeBold('1. 강화학습을 통한 Snake 학습시키기', keywords) }}></p>
20+
</button>
21+
<button className={button.link} onClick={() => router.replace('/posts/game-1.1')} >
22+
<p dangerouslySetInnerHTML={{ __html: makeBold('1.1 Previous Approaches', keywords) }}></p>
23+
</button>
24+
<button className={button.link} onClick={() => router.replace('/posts/game-1.2')} >
25+
<p dangerouslySetInnerHTML={{ __html: makeBold('1.2 Single-Agent Algorithm in Multi-Snake', keywords) }}></p>
26+
</button>
1727
</details>
1828
</li>
1929
<li>
2030
<details>
2131
<summary dangerouslySetInnerHTML={{ __html: makeBold('part2', keywords) }} ></summary>
22-
<a dangerouslySetInnerHTML={{ __html: makeBold('2. 학습된 Snake로 Leaderboard 참여하기', keywords) }} href='/posts/game-2intro' ></a> <br></br>
23-
<a dangerouslySetInnerHTML={{ __html: makeBold('2.1 Snake Leaderboard 소개', keywords) }} href='/posts/game-2.1' ></a> <br></br>
24-
<a dangerouslySetInnerHTML={{ __html: makeBold('2.2 Snake Leaderboard 참여 방법', keywords) }} href='/posts/game-2.2' ></a>
32+
<button className={button.link} onClick={() => router.replace('/posts/game-2intro')} >
33+
<p dangerouslySetInnerHTML={{ __html: makeBold('2. 학습된 Snake로 Leaderboard 참여하기', keywords) }}></p>
34+
</button>
35+
<button className={button.link} onClick={() => router.replace('/posts/game-2.1')} >
36+
<p dangerouslySetInnerHTML={{ __html: makeBold('2.1 Snake Leaderboard 소개', keywords) }}></p>
37+
</button>
38+
<button className={button.link} onClick={() => router.replace('/posts/game-2.2')} >
39+
<p dangerouslySetInnerHTML={{ __html: makeBold('2.2 Snake Leaderboard 참여 방법', keywords) }}></p>
40+
</button>
2541
</details>
2642
</li>
2743
</ul>

Diff for: components/LearnIndex.js

+53-17
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,83 @@
1+
import { useRouter } from 'next/router'
2+
import button from '../styles/Button.module.scss'
3+
14
const LearnIndex = ({ keywords }) => {
25

6+
const router = useRouter()
7+
38
const makeBold = (item, keyword) => {
49
return item.replace(new RegExp('(\\b)(' + keyword.join('|') + ')(\\b)', 'ig'), '$1<b>$2</b>$3');
510
}
611

712
return (
813
<div>
914
<ul>
10-
{/* <p>| 배우기 |</p> */}
1115
<li>
1216
<details>
1317
<summary dangerouslySetInnerHTML={{ __html: makeBold('CH1', keywords) }} ></summary>
14-
<a dangerouslySetInnerHTML={{ __html: makeBold('1. Introduction', keywords) }} href='/posts/learn-1intro'></a> <br></br>
15-
<a dangerouslySetInnerHTML={{ __html: makeBold('1.1 Quick review of Single-Agent RL', keywords) }} href='/posts/learn-1.1' ></a> <br></br>
16-
<a dangerouslySetInnerHTML={{ __html: makeBold('1.2 Multi-agent and Game Theory', keywords) }} href='/posts/learn-1.2' ></a> <br></br>
17-
<a dangerouslySetInnerHTML={{ __html: makeBold('1.3 Known Environments in MARL', keywords) }} href='/posts/learn-1.3'></a>
18+
<button className={button.link} onClick={() => router.replace('/posts/learn-1intro')} >
19+
<p dangerouslySetInnerHTML={{ __html: makeBold('1. Introduction', keywords) }}></p>
20+
</button>
21+
<button className={button.link} onClick={() => router.replace('/posts/learn-1.1')} >
22+
<p dangerouslySetInnerHTML={{ __html: makeBold('1.1 Quick review of Single-Agent RL', keywords) }}></p>
23+
</button>
24+
<button className={button.link} onClick={() => router.replace('/posts/learn-1.2')} >
25+
<p dangerouslySetInnerHTML={{ __html: makeBold('1.2 Multi-agent and Game Theory', keywords) }}></p>
26+
</button>
27+
<button className={button.link} onClick={() => router.replace('/posts/learn-1.3')} >
28+
<p dangerouslySetInnerHTML={{ __html: makeBold('1.3 Known Environments in MARL', keywords) }}></p>
29+
</button>
1830
</details>
1931
</li>
2032
<li>
2133
<details>
2234
<summary dangerouslySetInnerHTML={{ __html: makeBold('CH2', keywords) }} ></summary>
23-
<a dangerouslySetInnerHTML={{ __html: makeBold('2. Problems in MARL', keywords) }} href='/posts/learn-2intro' ></a> <br></br>
24-
<a dangerouslySetInnerHTML={{ __html: makeBold('2.1 Problem definition in MARL', keywords) }} href='/posts/learn-2.1'></a> <br></br>
25-
<a dangerouslySetInnerHTML={{ __html: makeBold('2.2 Information in MARL', keywords) }} href='/posts/learn-2.2'></a> <br></br>
26-
<a dangerouslySetInnerHTML={{ __html: makeBold('2.3 Types of MARL Problems', keywords) }} href='/posts/learn-2.3'></a>
35+
<button className={button.link} onClick={() => router.replace('/posts/learn-2intro')} >
36+
<p dangerouslySetInnerHTML={{ __html: makeBold('2. Problems in MARL', keywords) }}></p>
37+
</button>
38+
<button className={button.link} onClick={() => router.replace('/posts/learn-2.1')} >
39+
<p dangerouslySetInnerHTML={{ __html: makeBold('2.1 Problem definition in MARL', keywords) }}></p>
40+
</button>
41+
<button className={button.link} onClick={() => router.replace('/posts/learn-2.2')} >
42+
<p dangerouslySetInnerHTML={{ __html: makeBold('2.2 Information in MARL', keywords) }}></p>
43+
</button>
44+
<button className={button.link} onClick={() => router.replace('/posts/learn-2.3')} >
45+
<p dangerouslySetInnerHTML={{ __html: makeBold('2.3 Types of MARL Problems', keywords) }}></p>
46+
</button>
2747
</details>
2848
</li>
2949
<li>
3050
<details>
3151
<summary dangerouslySetInnerHTML={{ __html: makeBold('CH3', keywords) }} ></summary>
32-
<a dangerouslySetInnerHTML={{ __html: makeBold('3. Emergent Behavior', keywords) }} href='/posts/learn-3intro'></a> <br></br>
33-
<a dangerouslySetInnerHTML={{ __html: makeBold('3.1 Complexity via Competition', keywords) }} href='/posts/learn-3.1'></a> <br></br>
34-
<a dangerouslySetInnerHTML={{ __html: makeBold('3.2 Sparse reward problem', keywords) }} href='/posts/learn-3.2'></a> <br></br>
35-
<a dangerouslySetInnerHTML={{ __html: makeBold('3.3 Opponent selection', keywords) }} href='/posts/learn-3.3'></a> <br></br>
36-
<a dangerouslySetInnerHTML={{ __html: makeBold('3.4 Randomizing environments', keywords) }} href='/posts/learn-3.4'></a>
52+
<button className={button.link} onClick={() => router.replace('/posts/learn-3intro')} >
53+
<p dangerouslySetInnerHTML={{ __html: makeBold('3. Emergent Behavior', keywords) }}></p>
54+
</button>
55+
<button className={button.link} onClick={() => router.replace('/posts/learn-3.1')} >
56+
<p dangerouslySetInnerHTML={{ __html: makeBold('3.1 Complexity via Competition', keywords) }}></p>
57+
</button>
58+
<button className={button.link} onClick={() => router.replace('/posts/learn-3.2')} >
59+
<p dangerouslySetInnerHTML={{ __html: makeBold('3.2 Sparse reward problem', keywords) }}></p>
60+
</button>
61+
<button className={button.link} onClick={() => router.replace('/posts/learn-3.3')} >
62+
<p dangerouslySetInnerHTML={{ __html: makeBold('3.3 Opponent selection', keywords) }}></p>
63+
</button>
64+
<button className={button.link} onClick={() => router.replace('/posts/learn-3.4')} >
65+
<p dangerouslySetInnerHTML={{ __html: makeBold('3.4 Randomizing environments', keywords) }}></p>
66+
</button>
3767
</details>
3868
</li>
3969
<li>
4070
<details>
4171
<summary dangerouslySetInnerHTML={{ __html: makeBold('CH4', keywords) }} ></summary>
42-
<a dangerouslySetInnerHTML={{ __html: makeBold('4. More MDRL Algorithm', keywords) }} href='/posts/learn-4intro'></a> <br></br>
43-
<a dangerouslySetInnerHTML={{ __html: makeBold('4.1 MADDPG', keywords) }} href='/posts/learn-4.1'></a> <br></br>
44-
<a dangerouslySetInnerHTML={{ __html: makeBold('4.2 COMA', keywords) }} href='/posts/learn-4.2'></a>
72+
<button className={button.link} onClick={() => router.replace('/posts/learn-4intro')} >
73+
<p dangerouslySetInnerHTML={{ __html: makeBold('4. More MDRL Algorithm', keywords) }}></p>
74+
</button>
75+
<button className={button.link} onClick={() => router.replace('/posts/learn-4.1')} >
76+
<p dangerouslySetInnerHTML={{ __html: makeBold('4.1 MADDPG', keywords) }}></p>
77+
</button>
78+
<button className={button.link} onClick={() => router.replace('/posts/learn-4.2')} >
79+
<p dangerouslySetInnerHTML={{ __html: makeBold('4.2 COMA', keywords) }}></p>
80+
</button>
4581
</details>
4682
</li>
4783

Diff for: components/ML2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default function ML2() {
77

88
return (
99
<div className={styles.ML2}>
10-
<a href="https://www.kc-ml2.com" target="_blank">
10+
<a href="https://www.kc-ml2.com" target="_blank" rel="noreferrer">
1111
<Image src={logo} alt="logo" width="95" height="95" />
1212
<button className={button.ML2}>ML2 방문하기</button>
1313
</a>

Diff for: package-lock.json

+31
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+3
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010
"dependencies": {
1111
"clsx": "^1.1.1",
1212
"css-loader": "^6.5.1",
13+
"eslint-config-prettier": "^8.3.0",
14+
"eslint-plugin-prettier": "^4.0.0",
1315
"fs": "0.0.1-security",
1416
"gray-matter": "^4.0.3",
1517
"html": "^1.0.0",
1618
"next": "12.0.8",
1719
"path": "^0.12.7",
20+
"prettier": "^2.5.1",
1821
"react": "17.0.2",
1922
"react-custom-scrollbars": "^4.2.1",
2023
"react-dom": "17.0.2",

Diff for: pages/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default function Home() {
1010
<Col>
1111
<h2>Snake Game을 통해 보는</h2>
1212
<h1>멀티에이전트<br></br>강화학습 튜토리얼</h1>
13-
<p>머신러닝 연구소 <a href="https://www.kc-ml2.com" target="_blank">KC-ML2</a>에서 제작한 강화학습 튜토리얼 입니다.</p>
13+
<p>머신러닝 연구소 <a href="https://www.kc-ml2.com" target="_blank" rel="noreferrer">KC-ML2</a>에서 제작한 강화학습 튜토리얼 입니다.</p>
1414
<p>Snake Game과 함께하는 멀티에이전트 강화학습 공부 지금 시작해보세요!</p>
1515
</Col>
1616
</Row>

Diff for: styles/Button.module.scss

+26-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ $btn-round-radius: 30px !default;
1515
$btn-round-radius-sm: 8px !default;
1616

1717

18+
// ML2 방문하기
1819
.ML2{
1920
border: 1px solid $basic;
2021
border-radius: $btn-round-radius-sm;
@@ -34,5 +35,29 @@ $btn-round-radius-sm: 8px !default;
3435

3536
.ML2:active {
3637
border: 1px solid $purple;
37-
outline:0;
38+
outline: none;
3839
}
40+
41+
//post index용 link
42+
.link {
43+
padding: 0;
44+
background-color: transparent;
45+
color: $code;
46+
text-align: start;
47+
border: transparent;
48+
p {
49+
margin: 0;
50+
}
51+
}
52+
53+
.link:hover {
54+
text-decoration: underline;
55+
}
56+
57+
.link:active {
58+
outline: none;
59+
}
60+
61+
.link:focus {
62+
outline: none;
63+
}

0 commit comments

Comments
 (0)