새소식

기타

티스토리 블로그에 랜덤 명언 출력하기

  • -
오늘의 명언

적용 후 캡쳐한 이미지
적용 후 캡쳐한 이미지

임파님의 블로그를 보면 오늘의 명언이 나오는데 나도 이 기능을 적용시켜보고 싶어 찾아보니 마음에 드는 글이 없어 직접 만들어 포스팅을 하게 되었다.

적용 후 캡쳐한 이미지
임파님 블로그 캡쳐 이미지


  1. html, css, js에 대한 기초 지식이 없을 경우 진행이 어려울 수 있습니다.
  2. 블로그 스킨에 따라 css가 깨질 수 있습니다.

업로드 경로: 티스토리 블로그 관리 -> 스킨 편집 -> html 편집 -> 파일 업로드 -> 추가

sayDding.js
2.7 kB

파일 내용

/** * 랜덤 띵언을 제공하는 API URL * @constant {string} */ const DDING_API_URL = "https://korean-advice-open-api.vercel.app/api/advice"; /** * API에서 랜덤 띵언을 가져와 HTML을 업데이트하는 함수 * @function */ function randomDding() { (async function () { try { // API 호출하여 응답을 JSON 형식으로 파싱 let res = await fetch(DDING_API_URL).then(response => response.json()); console.log(res); // 메시지 태그 let $message = document.getElementById('dding_message'); // 위인명 태그 let $author = document.getElementById('dding_author'); // 위인 프로필 태그 let $authorProfile = document.getElementById('dding_authorProfile'); $message.innerHTML = `" ${res.message} "`; $author.innerHTML = `<span>-</span> ${res.author}`; // 위인 프로필 값이 있을때만 출력 if (res.authorProfile) { $authorProfile.innerHTML = `(${res.authorProfile})`; $authorProfile.removeAttribute("hidden"); } else { $authorProfile.setAttribute("hidden", true); } } catch (err) { console.error(err); } })(); } document.addEventListener("DOMContentLoaded", function () { // 띵언 영역 태그 let $dding_area = document.getElementById('dding_area'); $dding_area.innerHTML = ` <div id="dding_title">오늘의 명언</div> <div> <div id="dding_message"></div> <span id="dding_author"></span> <span id="dding_authorProfile"></span> </div> <svg id="dding_btn" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> <path d="M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"></path> </svg> `; // 함수 호출 randomDding(); document.getElementById('dding_btn').addEventListener("click", randomDding); });

수정 경로: 티스토리 블로그 관리 -> 스킨 편집 -> html 편집

위 경로에서 명언을 띄울 영역을 찾아 아래 태그를 추가하면 된다.

<!-- head 태그 최하단에 추가 --> <!-- 띵언 스크립트 --> <script defer type="module" charset="UTF-8" src="./images/sayDding.js"></script>
<!-- 띵언 영역 --> <div id="dding_area"></div>

 

수정 경로: 티스토리 블로그 관리 -> 스킨 편집 -> CSS 편집

위 경로 최하단에 아래 시트를 추가하면 된다.

/* 띵언 영역 */ #dding_area { color: var(--color-level-1); font-style: italic; text-align: center; margin: 5rem auto; padding: 4rem; max-width: 900px; border: 1px solid var(--border-color); border-radius: 8px; position: relative; box-shadow: 0 1rem 3rem rgba(14, 17, 31, .125); transition: all .25s ease-out; } #dding_area:hover{ transform: translateY(-5px); } /* 띵언 타이틀 */ #dding_area #dding_title { position: absolute; top: 0; left: 42px; margin: -0.8rem; font-size: 1.6rem; background-color: var(--g-bg-color); letter-spacing: 0px; padding-right: 12px; padding-left: 10px; } /* 띵언 메시지 */ #dding_area #dding_message { font-size: 20px; line-height: 1.6; color: #666; letter-spacing: 0px; margin-bottom: 2rem; } /* 띵언 위인 */ #dding_area #dding_author { font-size: 23px; } #dding_area #dding_author>span { color: #11998e; } /* 띵언 새로고침 버튼 */ #dding_area #dding_btn { fill: #11998e; top: 17px; right: 20px; z-index: 0; position: absolute; cursor: pointer; width: 1.5rem; height: 1.5rem; } #dding_area #dding_btn:hover { animation: 2s linear infinite spin; } @-webkit-keyframes spin { 0% {-webkit-transform: rotate(0deg);} 100% {-webkit-transform: rotate(360deg);} } @keyframes spin { 0% {transform: rotate(0deg);} 100% {transform: rotate(360deg);} }

 


스킨 편집 페이지의 우측 상단 적용 버튼을 눌러 수정 사항을 적용하면 끝이다.

적용 후 캡쳐한 이미지


  1. 사용한 api - 권기범님의 한국어 랜덤 명언 OpenAPI
  2. 드프님의 블로그
  3. 임파님의 블로그

api 서버를 만들 시간은 없어 오픈api를 사용했는데 이 부분이 조금 아쉽다. 어려운 작업은 아니니 추후에 직접 서버를 만들어 운영하고 싶은 마음이 생겼다. 여유가 생기면 빠르게 진행 후 적용시켜야겠다.

반응형

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.