20.12.18 게시판 사이트 프로젝트(댓글 유틸(disqus) 추가,검색엔진 등록, 구글 애널리틱스 적용, 구글 ad 추가 등)
2020. 12. 18. 19:15ㆍJAVA/Blog 사이트 프로젝트
<BuildService.java>
// 게시판 별 게시물 상세페이지 생성
private void buildArticleDetailPages() {
List<Board> boards = articleService.getBoards();
for (Board board : boards) {
List<Article> articles = articleService.getBoardArticlesByCodeForPrint(board.code);
int articlesSize = articles.size();
if (articlesSize <= 0) {
continue;
}
int beforeArticleIndex = 0;
int x = beforeArticleIndex;
int beforeArticleId = articles.get(x).id;
String head = getHeadHtml("article_detail");
String foot = Util.getFileContents("site_template/foot.html");
String template = Util.getFileContents("site_template/detail.html");
System.out.println("= article 상세페이지 생성 =");
for (Article article : articles) {
StringBuilder html = new StringBuilder();
html.append(head);
StringBuilder body = new StringBuilder();
body.append("<div class=\"article-detail-cell__id\">");
body.append("<div>");
body.append("<span>번호 : </span><span>" + article.id + "</span>");
body.append("</div>");
body.append("</div>");
body.append("<div class=\"article-detail-cell__title\">");
body.append("<div>");
body.append("<span>제목 : </span><span>" + article.title + "</span>");
body.append("</div>");
body.append("</div>");
body.append("<div class=\"article-detail-cell__title\">");
body.append("<div>");
body.append("<span>작성자 : </span><span>" + article.extra_memberName + "</span>");
body.append("</div>");
body.append("</div>");
body.append("<div class=\"article-detail-cell__title\">");
body.append("<div>");
body.append("<span>작성일 : </span><span>" + article.regDate + "</span>");
body.append("</div>");
body.append("</div><br>");
body.append("<div class=\"article-detail-cell__body height-70p \">");
body.append("<div>");
body.append("<span>" + article.body + "</span>");
body.append("</div>");
body.append("</div><br><br>");
//댓글 유틸 disqus 적용
body.append("<nav><div id=\"disqus_thread\"></div>\r\n"
+ "<script>\r\n"
+ " (function() { // DON'T EDIT BELOW THIS LINE\r\n"
+ " var d = document, s = d.createElement('script');\r\n"
+ " s.src = 'https://devj-blog.disqus.com/embed.js';\r\n"
+ " s.setAttribute('data-timestamp', +new Date());\r\n"
+ " (d.head || d.body).appendChild(s);\r\n"
+ " })();\r\n"
+ "</script>\r\n"
+ "<noscript>Please enable JavaScript to view the <a href=\"https://disqus.com/?ref_noscript\">comments powered by Disqus.</a></noscript></nav>");
body.append(
"</div></section><section class=\"section-3 con-min-width\"><div class=\"con\"><div class=\"article-list-bottom-cell flex flex-jc-c\">");
if (article.id > beforeArticleId) {
body.append("<div class=\"./\"><a href=\"" + articles.get(x - 1).id + ".html"
+ "\" class=\"hover-underline\">< 이전글</a></div>");
}
body.append("<div class=\"./\"><i class=\"fas fa-th-list\"></i><a href=\"" + board.code + "-list-1.html"
+ "\" class=\"hover-underline\"> 목록 </a></div>");
if (x < articlesSize - 1) {
body.append("<div class=\"./\"><a href=\"" + articles.get(x + 1).id + ".html"
+ "\"class=\"hover-underline\">다음글 ></a></div>");
}
html.append(template.replace("[상세페이지 블록]", body));
html.append(foot);
String fileName = article.id + ".html";
String path = "site/" + fileName;
Util.writeFile(path, html.toString());
System.out.println(path + " 생성");
x++;
beforeArticleId = articles.get(x - 1).id;
}
System.out.println("= article 상세페이지 생성 종료 =");
}
}
<head.html>
<!doctype html>
<html lang="en">
<head>
<script data-ad-client="ca-pub-7996879977557531" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X5RMP83794"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-X5RMP83794');
</script>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 구글 검색엔진 등록-소유권 확인 -->
<meta name="google-site-verification" content="37R4KcEaJU5LfiKL7GI1hu1_spJgWOazN6xy48OHhD4" />
<title>Developers</title>
<!-- 폰트어썸 불러오기 -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
<!-- app.css 불러오기 -->
<link rel="stylesheet" href="app.css">
<!--모바일에서도 PC와 같은 비율 유지-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--제이쿼리-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- 토스트 UI 에디터, 자바스크립트 코어 -->
<script src="https://uicdn.toast.com/editor/latest/toastui-editor-all.min.js"></script>
<!-- 코드 미러 라이브러리 추가, 토스트 UI 에디터에서 사용됨 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.3/codemirror.min.css" />
<!-- 토스트 UI 에디터, CSS 코어 -->
<link rel="stylesheet" href="https://uicdn.toast.com/editor/latest/toastui-editor.min.css" />
</head>
<body>
<div class="body-content min-height-100vh flex flex-column">
<!-- 로고바 시작 -->
<header class="logo-bar con-min-width">
<div class="con height-100p flex flex-jc-c">
<a href="index.html" class="logo flex flex-ai-c"> <i
class="fab fa-jenkins"></i> <span> Develo<span>p</span>ers
</span>
</a>
</div>
</header>
<!-- 로고바 끝 -->
<!-- 메뉴바 시작 -->
<header class="menu-bar con-min-width">
<div class="con height-100p">
<nav class="menu-bar__menu-1">
<ul class="flex">
<li><a href="index.html" class="block"> <i class="fas fa-home"></i>
<span>HOME</span>
</a></li>
<li><a class="block"> <i class="fas fa-list"></i> <span>ARTICLES</span>
</a>
<ul>
[게시판 이름 블록]
</ul></li>
<li><a class="block"> <i class="fas fa-link"></i> <span>LINK</span>
</a>
<ul>
<li><a href="https://jhs512.github.io/blog/"
target="_blank" class="block"> <i class="fab fa-blogger-b"></i>
<span>BLOG</span>
</a></li>
<li><a href="https://github.com/" target="_blank"
class="block"> <i class="fab fa-github"></i> <span>GITHUB</span>
</a></li>
</ul></li>
<li><a href="stat.html" class="block"> <i
class="fas fa-chart-pie"></i> <span>STATISTICS</span>
</a></li>
</ul>
</nav>
</div>
</header>
<!-- 메뉴바 끝 -->
<!-- 메인-타이틀바 시작 -->
<main class="flex-grow-1">
<div class="title-bar con-min-width">
<h1 class="con">
[타이틀바 컨텐츠]
</h1>
</div>
<!-- 메인-타이틀바 종료 -->
'JAVA > Blog 사이트 프로젝트' 카테고리의 다른 글
20.12.27 사이트 메타태그 적용(상세페이지 내용 나오게 하기 등) (0) | 2020.12.27 |
---|---|
20.12.21 게시판 사이트 프로젝트(사이드바,top버튼 적용, 홈화면 애니메이션 적용, 로고, open graph, favicon 적용 등) (0) | 2020.12.21 |
20.12.17 게시판 사이트 프로젝트(toastui-viewer 적용) (1) | 2020.12.17 |
20.12.16 게시판 사이트 프로젝트(Github 페이지 도메인 연결) (0) | 2020.12.16 |
20.12.15 게시판 사이트 프로젝트(게시판 리스트 페이징 구현, index링크 연결, 디자인 일부 수정 등) (0) | 2020.12.15 |