21.11.27 버그수정 및 리팩토링

This commit is contained in:
jinia91
2021-11-27 18:00:58 +09:00
parent 8181f5dac9
commit 6f75c1d9c9
12 changed files with 85 additions and 69 deletions

View File

@@ -124,9 +124,9 @@ public class ArticleController {
}
@Transactional
@GetMapping("article/list/tag/{tag}")
@GetMapping("article/list/tag/")
public String getArticlesListByTag(@RequestParam Integer page,
@PathVariable String tag,
@RequestParam String tagName,
Model model) {
CategoryForView categoryForView = CategoryForView.createCategory(categoryService.getCategoryForView());
@@ -140,7 +140,7 @@ public class ArticleController {
Page<ArticleDtoForMain> articleList =
articleService.getArticlesByTag(tag, page)
articleService.getArticlesByTag(tagName, page)
.map(article ->
modelMapper.map(article, ArticleDtoForMain.class));
model.addAttribute("articleList", articleList);
@@ -153,9 +153,9 @@ public class ArticleController {
}
@Transactional
@GetMapping("article/list/search/{keyword}")
@GetMapping("article/list/search/")
public String getArticlesListByKeyword(@RequestParam Integer page,
@PathVariable String keyword,
@RequestParam String keyword,
Model model) {
CategoryForView categoryForView = CategoryForView.createCategory(categoryService.getCategoryForView());
@@ -229,7 +229,11 @@ public class ArticleController {
}
model.addAttribute("metaTags",sb);
String substringContents = articleDtoForDetail.getContent().substring(0, 200);
String substringContents = null;
if(articleDtoForDetail.getContent().length()>200) {
substringContents = articleDtoForDetail.getContent().substring(0, 200);
}
else substringContents = articleDtoForDetail.getContent();
model.addAttribute("metaContents",Jsoup.parse(substringContents).text());
//

View File

@@ -1,9 +1,10 @@
.toastui-editor-contents {
margin: 0;
padding: 0;
font-size: 1.1rem;
font-family: 'Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',
font-family: 'RIDIBatang','Open Sans', 'Helvetica Neue', 'Helvetica', 'Arial', '나눔바른고딕',
'Nanum Barun Gothic', '맑은고딕', 'Malgun Gothic', sans-serif;
z-index: 20;
}
@@ -803,4 +804,10 @@ ul.toolList li:before {
background-repeat: no-repeat;
background-size: contain;
}
.text-block{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}

View File

@@ -1,17 +1,9 @@
/*@font-face {*/
/* font-family: "IM_Hyemin-Bold";*/
/* src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2106@1.1/IM_Hyemin-Bold.woff2") format("woff");*/
/* font-weight: normal;*/
/* font-style: normal;*/
/*}*/
@font-face {
font-family: 'Cafe24SsurroundAir';
src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2105_2@1.0/Cafe24SsurroundAir.woff') format('woff');
font-family: 'RIDIBatang';
src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_twelve@1.0/RIDIBatang.woff') format('woff');
font-weight: normal;
font-style: normal;
}
a {
text-decoration: none;
color: rgb(65, 65, 65);
@@ -34,8 +26,8 @@ a:hover {
body {
background-color: #fcf6f5;
font-family: "Cafe24SsurroundAir";
background-color: #f5f5f4;
font-family: "RIDIBatang";
}
body::-webkit-scrollbar {
@@ -377,12 +369,17 @@ body::-webkit-scrollbar-track {
}
.mainItem:hover {
transform: scale(1.2);
transition: transform 2s;
filter: grayscale(50%);
.main-image{
filter: brightness(70%);
}
/*.mainItem:hover {*/
/* transform: scale(1.2);*/
/* transition: transform 2s;*/
/* filter: grayscale(50%);*/
/*}*/
.searchBox {
position: relative;
}
@@ -435,3 +432,7 @@ body::-webkit-scrollbar-track {
}
.categoryBox .fw-bold{
color: #1f70de !important;
}

View File

@@ -18,7 +18,6 @@ function InfinityScroll() {
}
}
}
function makeNextPage() {
@@ -38,6 +37,8 @@ function makeNextPage() {
console.log(list);
if(list.length === 0) return;
// 다음 페이지 작성
const nextPage = document.createElement('div');
nextPage.setAttribute("id", "articlePage-" + pageNum++);

View File

@@ -10,5 +10,5 @@ function searchKeyword() {
}
location.href = "/article/list/search/" +keyword+"?page=1";
location.href = "/article/list/search/?keyword=" +keyword+"&page=1";
}

View File

@@ -56,7 +56,7 @@
<hr class="mb-5">
<div class="row g-0">
<div id="categoryBox" class=" list-group list-unstyled ps-0 d-flex flex-column col-sm mb-5 text-center"><th:block th:each="superCategory : ${category.getCategoryTCountList()}"><button class="list-group-item list-group-item-action list-group-item-light fw-bold"
<div id="categoryBox" class="categoryBox list-group list-unstyled ps-0 d-flex flex-column col-sm mb-5 text-center"><th:block th:each="superCategory : ${category.getCategoryTCountList()}"><button class="list-group-item list-group-item-action list-group-item-light fw-bold"
th:text="|${superCategory.getTitle()}|"
th:id="|superCategory-${superCategory.getId()}|"
onclick="clickCategory(this)"></button><th:block

View File

@@ -46,7 +46,7 @@
<section>
<div style="margin-bottom: 150px"></div>
<div style="margin-bottom: 100px"></div>
<div class="recent-cards mt-5 ms-4 me-4">

View File

@@ -6,25 +6,25 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable = no, initial-scale=1.0"/>
<title th:text="|__${keyword}__ 검색 결과 - Jinia's LOG'|"></title>
<title th:text="|${param.keyword} 검색 결과 - Jinia's LOG'|"></title>
<!-- SEO -->
<meta name="description" th:content="|__${keyword}__ 검색 결과|"/>
<meta name="keyword" th:content="|__${keyword}__, 카테고리, 개발, 테크, IT, 코딩, 알고리즘, 쥬니어, 개발자, 포트폴리오, 블로그, CS, 컴공지식, 컴공, 프로그래밍, 프로그래밍 언어, 비전공, 코딩 테스트, 취업, 취준|"/>
<meta name="description" th:content="|${param.keyword} 검색 결과|"/>
<meta name="keyword" th:content="|${param.keyword}, 카테고리, 개발, 테크, IT, 코딩, 알고리즘, 쥬니어, 개발자, 포트폴리오, 블로그, CS, 컴공지식, 컴공, 프로그래밍, 프로그래밍 언어, 비전공, 코딩 테스트, 취업, 취준|"/>
<meta name="author" content="Jinia"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<!-- OPEN GRAPH(FACEBOOK, LINKEDIN) -->
<meta property="og:type" content="website"/>
<meta property="og:description" th:content="|__${keyword}__ 검색 결과|"/>
<meta property="og:title" th:content="|__${keyword}__ 검색 결과 - Jinia's LOG'|"/>
<meta property="og:description" th:content="|${param.keyword} 검색 결과|"/>
<meta property="og:title" th:content="|${param.keyword} 검색 결과 - Jinia's LOG'|"/>
<meta property="og:image" content="https://github.com/jinia91/blogTest/blob/main/img/a341399c-494f-4a1b-9c03-8d566a3a4097.png?raw=true"/>
<meta property="og:url" content=""/>
<meta property="og:site_name" content="|__${keyword}__ 검색 결과 - Jinia's LOG'|"/>
<!-- twitter -->
<meta property="twitter:card" th:content="|__${keyword}__ 검색 결과|"/>
<meta property="twitter:title" th:content="|__${keyword}__ 검색 결과 - Jinia's LOG'|"/>
<meta property="twitter:description" th:content="|__${keyword}__ 검색 결과|"/>
<meta property="twitter:card" th:content="|${param.keyword} 검색 결과|"/>
<meta property="twitter:title" th:content="|${param.keyword} 검색 결과 - Jinia's LOG'|"/>
<meta property="twitter:description" th:content="|${param.keyword} 검색 결과|"/>
<meta property="twitter:image" content="https://github.com/jinia91/blogTest/blob/main/img/a341399c-494f-4a1b-9c03-8d566a3a4097.png?raw=true"/>
<meta property="twitter:url" content=""/>
<meta property="twitter:creator" content="Jinia"/>
@@ -51,7 +51,7 @@
<div class="recent-cards mt-5 ms-4 me-4">
<div class="cards-container container p-0" id="infiniteScrollBox">
<h1 class="text-center" th:text="|__${keyword}__ 검색 결과|"></h1>
<h1 class="text-center" th:text="|${param.keyword} 검색 결과|"></h1>
<hr>
<div id="articlePage-0">
<div class="card mb-3 recent-card wow fadeInUp" th:each="article :${articleList.getContent()}">
@@ -85,7 +85,7 @@
<ul class="pagination">
<li class="page-item">
<a class="page-link" aria-label="First"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(1))}"
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(1))}"
th:if="${pagingBox.getCurPageNum()}>5">
<span>«</span>
</a>
@@ -93,7 +93,7 @@
<li class="page-item">
<a class="page-link" aria-label="Previous"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(${pagingBox.getCurPageNum()}-5))}"
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(${pagingBox.getCurPageNum()}-5))}"
th:if="${pagingBox.getCurPageNum()}>5">
<span>
< </span>
@@ -103,16 +103,16 @@
<th:block th:each="page : ${#numbers.sequence(pagingBox.getBoxStartNum(), pagingBox.getBoxEndNum())}">
<li th:if="${pagingBox.getCurPageNum()==page}" class="page-item active">
<a th:text="${page}" class="page-link"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(${page}))}"></a>
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(${page}))}"></a>
</li>
<li th:unless="${pagingBox.getCurPageNum()==page}" class="page-item">
<a th:text="${page}" class="page-link"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(${page}))}"></a>
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(${page}))}"></a>
</li>
</th:block>
<li class="page-item">
<a class="page-link" aria-label="Next"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(${pagingBox.getCurPageNum()}+5))}"
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(${pagingBox.getCurPageNum()}+5))}"
th:if="${pagingBox.getCurPageNum()<=pagingBox.getPNumForNextBtn()}"
>
<span aria-hidden="true">></span>
@@ -121,7 +121,7 @@
<li class="page-item">
<a class="page-link" aria-label="Last"
th:href="@{/article/list/tag/{tag}(tag=(__${keyword}__),page=(${pagingBox.getLastPageNum()}))}"
th:href="@{/article/list/tag/(tag=(${param.keyword}),page=(${pagingBox.getLastPageNum()}))}"
th:if="${pagingBox.getCurPageNum()<=pagingBox.getPNumForNextBtn()}"
>
<span aria-hidden="true">»</span>

View File

@@ -6,25 +6,25 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable = no, initial-scale=1.0"/>
<title th:text="|__${tag}__ 검색 결과 - Jinia's LOG'|"></title>
<title th:text="|${param.tag} 검색 결과 - Jinia's LOG'|"></title>
<!-- SEO -->
<meta name="description" th:content="|__${tag}__ 검색 결과|"/>
<meta name="keyword" th:content="|__${tag}__, 카테고리, 개발, 테크, IT, 코딩, 알고리즘, 쥬니어, 개발자, 포트폴리오, 블로그, CS, 컴공지식, 컴공, 프로그래밍, 프로그래밍 언어, 비전공, 코딩 테스트, 취업, 취준|"/>
<meta name="description" th:content="|${param.tag} 검색 결과|"/>
<meta name="keyword" th:content="|${param.tag}, 카테고리, 개발, 테크, IT, 코딩, 알고리즘, 쥬니어, 개발자, 포트폴리오, 블로그, CS, 컴공지식, 컴공, 프로그래밍, 프로그래밍 언어, 비전공, 코딩 테스트, 취업, 취준|"/>
<meta name="author" content="Jinia"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<!-- OPEN GRAPH(FACEBOOK, LINKEDIN) -->
<meta property="og:type" content="website"/>
<meta property="og:description" th:content="|__${tag}__ 검색 결과|"/>
<meta property="og:title" th:content="|__${tag}__ 검색 결과 - Jinia's LOG'|"/>
<meta property="og:description" th:content="|${param.tag} 검색 결과|"/>
<meta property="og:title" th:content="|${param.tag} 검색 결과 - Jinia's LOG'|"/>
<meta property="og:image" content="https://github.com/jinia91/blogTest/blob/main/img/a341399c-494f-4a1b-9c03-8d566a3a4097.png?raw=true"/>
<meta property="og:url" content=""/>
<meta property="og:site_name" content="|__${keyword}__ 검색 결과 - Jinia's LOG'|"/>
<meta property="og:site_name" content="|${param.tag} 검색 결과 - Jinia's LOG'|"/>
<!-- twitter -->
<meta property="twitter:card" th:content="|__${tag}__ 검색 결과|"/>
<meta property="twitter:title" th:content="|__${tag}__ 검색 결과 - Jinia's LOG'|"/>
<meta property="twitter:description" th:content="|__${tag}__ 검색 결과|"/>
<meta property="twitter:card" th:content="|${param.tag} 검색 결과|"/>
<meta property="twitter:title" th:content="|${param.tag} 검색 결과 - Jinia's LOG'|"/>
<meta property="twitter:description" th:content="|${param.tag} 검색 결과|"/>
<meta property="twitter:image" content="https://github.com/jinia91/blogTest/blob/main/img/a341399c-494f-4a1b-9c03-8d566a3a4097.png?raw=true"/>
<meta property="twitter:url" content=""/>
<meta property="twitter:creator" content="Jinia"/>
@@ -51,7 +51,7 @@
<div class="recent-cards mt-5 ms-4 me-4">
<div class="cards-container container p-0" id="infiniteScrollBox">
<h1 class="text-center" th:text="__${tag}__"></h1>
<h1 class="text-center" th:text="${param.tag}"></h1>
<hr>
<div id="articlePage-0">
<div class="card mb-3 recent-card wow fadeInUp" th:each="article :${articleList.getContent()}">
@@ -85,7 +85,7 @@
<ul class="pagination">
<li class="page-item">
<a class="page-link" aria-label="First"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(1))}"
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(1))}"
th:if="${pagingBox.getCurPageNum()}>5">
<span>«</span>
</a>
@@ -93,7 +93,7 @@
<li class="page-item">
<a class="page-link" aria-label="Previous"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(${pagingBox.getCurPageNum()}-5))}"
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(${pagingBox.getCurPageNum()}-5))}"
th:if="${pagingBox.getCurPageNum()}>5">
<span>
< </span>
@@ -103,16 +103,16 @@
<th:block th:each="page : ${#numbers.sequence(pagingBox.getBoxStartNum(), pagingBox.getBoxEndNum())}">
<li th:if="${pagingBox.getCurPageNum()==page}" class="page-item active">
<a th:text="${page}" class="page-link"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(${page}))}"></a>
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(${page}))}"></a>
</li>
<li th:unless="${pagingBox.getCurPageNum()==page}" class="page-item">
<a th:text="${page}" class="page-link"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(${page}))}"></a>
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(${page}))}"></a>
</li>
</th:block>
<li class="page-item">
<a class="page-link" aria-label="Next"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(${pagingBox.getCurPageNum()}+5))}"
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(${pagingBox.getCurPageNum()}+5))}"
th:if="${pagingBox.getCurPageNum()<=pagingBox.getPNumForNextBtn()}"
>
<span aria-hidden="true">></span>
@@ -121,7 +121,7 @@
<li class="page-item">
<a class="page-link" aria-label="Last"
th:href="@{/article/list/tag/{tag}(tag=(__${tag}__),page=(${pagingBox.getLastPageNum()}))}"
th:href="@{/article/list/tag/(tagName=(${param.tag}),page=(${pagingBox.getLastPageNum()}))}"
th:if="${pagingBox.getCurPageNum()<=pagingBox.getPNumForNextBtn()}"
>
<span aria-hidden="true">»</span>

View File

@@ -51,7 +51,7 @@
<div class="main ">
<div class="carousel-inner ">
<div class="carousel-item active" style="cursor: default">
<img th:src="${article.getThumbnailUrl()}" class="w-100 vh-100 cover"
<img th:src="${article.getThumbnailUrl()}" class="w-100 vh-100 cover main-image"
alt="...">
<div class="card-img-overlay text-shadow text-white text-center row justify-content-center align-content-center p-0">
<h1 style="font-size: 2.5rem;" th:text="${article.getTitle()}">아티클 제목</h1>
@@ -121,13 +121,13 @@
<span>카테고리의 다른글</span></div>
<ul class="row row-cols-1 row-cols-sm-2 mt-2 ms-5 me-5 toolList">
<li th:each="list:${articlesSortBycategory}"
th:if="${list.getTitle()} != ${article.getTitle()}" class="col">
th:if="${list.getTitle()} != ${article.getTitle()}" class="col text-block" >
<a th:href="@{/article/view(articleId=${list.getId()})}" th:text="${list.getTitle()}">글목록</a>
</li>
</ul>
<div class="mt-2 ms-5 me-5">
<a class="me-2" th:each="tag: ${article.tags}"
th:href="@{/article/list/tag/{tag}(tag=${tag},page=1)}">
th:href="@{/article/list/tag/(tagName=${tag},page=1)}">
<button class="badge rounded-pill bg-secondary" th:text="${tag}">태그</button>
</a>
</div>

View File

@@ -40,6 +40,8 @@
<link rel="stylesheet" href="/node_modules/bootstrap/dist/css/bootstrap.min.css"/>
<link rel="stylesheet" href="/css/mainCss.css"/>
<link rel="stylesheet" href="/css/login.css"/>
<link rel="stylesheet" href="/node_modules/wow.js/css/libs/animate.css"/>
</head>
<body>
@@ -53,7 +55,7 @@
th:classappend="${num.index}==0? active">
<a th:href="@{/article/view(articleId=${article.getId()})}">
<img th:src="${article.getThumbnailUrl()}"
class="w-100 vh-100 cover" alt="...">
class="w-100 vh-100 cover main-image" alt="...">
<div class="card-img-overlay text-white text-center row justify-content-center align-content-center text-shadow">
<h1 class="" th:text="${article.getTitle()}">첫번째 이미지</h1>
</div>
@@ -75,7 +77,7 @@
</div>
<div class="mt-5 pt-2 popular-card-section">
<div class="mt-5 pt-2 popular-card-section ">
<div class="cards-container container p-0 ">
<div class=" row g-0 row-cols-2 row-cols-md-3">
<div class="col g-1 g-md-4" th:each="article,num : ${popularArticles}">
@@ -125,10 +127,11 @@
</div>
<!-- js -->
<script src="https://kit.fontawesome.com/233840a552.js" crossorigin="anonymous"></script>
<script src="/node_modules/wow.js/dist/wow.js"></script>
<script src="/js/infinityScroll.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.min.js"></script>
<script src="/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="/node_modules/wow.js/dist/wow.js"></script>
<script>new WOW().init()</script>
</section>
</body>

View File

@@ -33,11 +33,11 @@
<!-- offcanvas s -->
<aside class="offcanvas offcanvas-start " data-bs-scroll="true" style="max-width: 300px;" tabindex="-1"
id="offcanvasMenu" aria-labelledby="offcanvasLabel">
<div class="offcanvas-header">
<div class="offcanvas-header bg-light">
<button class="btn btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body bg-white">
<div class="offcanvas-body bg-light">
<div th:replace="layout/sideBar.html :: sideBar"></div>
</div>
</aside>
@@ -48,14 +48,14 @@
<section class="row g-0 row-cols-xxl-2 g-xxl-0 p-0 ">
<!-- sidebar-xxl -->
<div class="bg-white sidebar col-xxl-2 d-none d-xxl-block p-0 overflow-auto">
<div class="p-4 sidebar-inner">
<div class="bg-light sidebar col-xxl-2 d-none d-xxl-block p-0 overflow-auto">
<div class="p-4 sidebar-inner bg-light">
<div th:replace="layout/sideBar.html :: sideBar"></div>
</div>
</div>
<!-- sidebar e -->
<!-- xxl dummy -->
<div class="bg-white col-xxl-2 d-none d-xxl-block p-0">
<div class="bg-light col-xxl-2 d-none d-xxl-block p-0">
</div>
<!-- -->