This commit is contained in:
lunaticbum 2024-10-21 17:25:49 +09:00
parent 2caf83af1e
commit c4001848fc
19 changed files with 214 additions and 143 deletions

View File

@ -44,6 +44,7 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect")
implementation ("org.jsoup:jsoup:1.18.1")
implementation ("com.drewnoakes:metadata-extractor:2.19.0")
implementation("org.springframework.boot:spring-boot-starter-security")
compileOnly("org.projectlombok:lombok")
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")

View File

@ -1,5 +1,7 @@
package kr.lunaticbum.back.lun.controllers
import com.drew.imaging.ImageMetadataReader
import com.drew.metadata.Metadata
import com.google.gson.Gson
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
@ -7,7 +9,6 @@ import kr.lunaticbum.back.lun.configs.GlobalEnvironment
import kr.lunaticbum.back.lun.model.CurrentWeather
import kr.lunaticbum.back.lun.model.FileSaveResult
import kr.lunaticbum.back.lun.model.LocationLogService
import kr.lunaticbum.back.lun.model.ResponceResult
import kr.lunaticbum.back.lun.utils.LogService
import kr.lunaticbum.back.lun.utils.getFileExtension
import org.springframework.beans.factory.annotation.Autowired
@ -156,6 +157,13 @@ class BlogController() {
// printWriter.flush()
logService.log("imgUploadPath $imgUploadPath")
logService.log("imgUploadPath ${File(imgUploadPath).exists()}")
val metadata: Metadata? = ImageMetadataReader.readMetadata(File(imgUploadPath))
metadata?.let {
it.directories?.forEach { directory ->
logService.log(directory.name)
logService.log(directory.tags.map { tag -> logService.log("tag.tagName >>> ${tag.tagName} || tag.description ${tag.description}")}.joinToString(" \n"))
}
}
} catch (e: IOException) {
e.printStackTrace()
} finally {

View File

@ -0,0 +1,17 @@
package kr.lunaticbum.back.lun.controllers
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.servlet.ModelAndView
@RestController
@RequestMapping()
class Home {
@GetMapping("/","/home")
fun home() : ModelAndView {
val vm = ModelAndView("content/blog/write")
return vm
}
}

View File

@ -17,6 +17,7 @@ import org.springframework.context.annotation.Bean
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.web.bind.annotation.*
import org.springframework.web.reactive.function.client.WebClient
import java.math.BigDecimal
import java.text.SimpleDateFormat
import java.util.*
@ -139,7 +140,7 @@ class Telegram {
Gson().fromJson(result, CurrentWeather::class.java)?.let { sss ->
val client = WebClient.create()
client.get()
.uri("https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${sss.getSummaryInfo()}")
.uri("https://api.telegram.org/${globalEvv.telegramBotKey}/sendMessage?chat_id=${globalEvv.telegramMyId}&text=${sss.getSummaryInfo(BigDecimal(it.mLatitude).setScale(5).toString(),BigDecimal(it.mLongitude).setScale(5).toString())}")
.retrieve()
.bodyToMono(String::class.java).block() ?: "FAIL"
}

View File

@ -54,6 +54,7 @@ class UserController {
logService.log(file.absolutePath)
vm.modelMap.put(EncTypeKey,EncType11)
vm.modelMap.put(ApiKeyWordKey,"JOIN")
vm.modelMap.put("title","회원이 들어는 구나~!!")
return vm
}
@ -120,7 +121,8 @@ class UserController {
}
}
}
val responce = ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(ResponceResult().apply {
val responce = ResponseEntity.ok().headers {
}.contentType(MediaType.APPLICATION_JSON).body(ResponceResult().apply {
this.resultCode = lResultCode
this.resultMsg = lResultMsg
})

View File

@ -52,7 +52,6 @@ class Location {
class CurrentWeather {
var location: Location? = null
var current: Current? = null
fun getSummaryInfo() = "지역:${this.location?.name}\n날씨:${this.current?.condition?.text}\n온도:${this.current?.temp_c}\n습도:${this.current?.humidity}\n" +
"체감온도:${this.current?.feelslike_c}\nhttps://www.accuweather.com/ko/search-locations?query=${this.location?.lat},${this.location?.lon}"
fun getSummaryInfo(lat : String,lon : String) = "지역:${this.location?.name}\n날씨:${this.current?.condition?.text}\n온도:${this.current?.temp_c}\n습도:${this.current?.humidity}\n" +
"체감온도:${this.current?.feelslike_c}\nhttps://www.accuweather.com/ko/search-locations?query=${lat},${lon}"
}

View File

@ -26,6 +26,11 @@ spring.data.mongodb.database=l
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.enabled=true
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB
spring.servlet.multipart.enabled=true
# ?? ???? ??? ?? ? ?? ????.
spring.devtools.livereload.enabled=true
# thymeleaf? ?? ??? ??? ???. cache=false ??(???? true)

View File

@ -1,62 +1,87 @@
:root {
--WindowFull : 100%;
--WindowFull : 99vw;
--TopHeight: 160px;
--FooterHeight: 160px;
--ContentVerticalMargin: 5px;
/*background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='45' height='51.96' patternTransform='scale(2) rotate(20)'><rect x='0' y='0' width='100%' height='100%' fill='%23202025ff'/><path d='M52.48 44.47a15 15 0 01-14.96 0 15 15 0 00-7.48 12.96M7.48 44.42a15 15 0 01-14.96 0M15 57.44c0-5.35-2.9-10.35-7.52-13.02a15 15 0 017.48-12.97M7.48 18.5a14.97 14.97 0 01-14.98-.03m15.02-.03A15 15 0 0115 5.47a15 15 0 00-4.4-10.62m23.8.05A15 15 0 0030 5.53a15 15 0 017.48 12.96 14.9 14.9 0 0015.02-.03m-22.5 13a15.13 15.13 0 017.52 13.01m-7.56-39a15 15 0 01-14.96 0M7.48 18.5a15 15 0 017.48 12.96 15 15 0 0015.04 0 15 15 0 017.48-12.96' stroke-width='3' stroke='%23ec914b8f' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(-38,-21.84)' fill='url(%23a)'/></svg>")*/
}
input, select ,button{
html {
margin: 1vh 1vw;
background: #202025ee;
}
body {
align-content: center;
padding: 1vh 1vw;
background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='45' height='51.96' patternTransform='scale(2) rotate(20)'><rect x='0' y='0' width='100%' height='100%' fill='%23202025ff'/><path d='M52.48 44.47a15 15 0 01-14.96 0 15 15 0 00-7.48 12.96M7.48 44.42a15 15 0 01-14.96 0M15 57.44c0-5.35-2.9-10.35-7.52-13.02a15 15 0 017.48-12.97M7.48 18.5a14.97 14.97 0 01-14.98-.03m15.02-.03A15 15 0 0115 5.47a15 15 0 00-4.4-10.62m23.8.05A15 15 0 0030 5.53a15 15 0 017.48 12.96 14.9 14.9 0 0015.02-.03m-22.5 13a15.13 15.13 0 017.52 13.01m-7.56-39a15 15 0 01-14.96 0M7.48 18.5a15 15 0 017.48 12.96 15 15 0 0015.04 0 15 15 0 017.48-12.96' stroke-width='3' stroke='%23ec914b8f' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(-38,-21.84)' fill='url(%23a)'/></svg>")
}
body > *{
align-content: center;
color: white;
background: #2d2f34;
border: black;
border-width: 1px;
padding: 0;
margin: 0;
position: relative;
padding: 1vh 1vw;
}
body, html {
background-color: black;
margin: 0px;
height: 100lvh;
/*#main_layer {*/
/* width: 100%;*/
/* margin: 0 auto;*/
/* position: relative;*/
/* background: #F0F0F524;*/
/* border-radius: 10px;*/
/*}*/
input, select ,button {
align-content: center;
top: 0;
bottom: 0;
color: white;
background: #40404564;
position: relative;
outline-width: thin;
outline-color: #ec914b8f;
border-color: #ec914b8f;
border-style: groove;
border-width: 1px;
}
header {
width: 100%;
align-content: center;
top: 0;
background: #F0F0F524;
border-top: #ec914b8f;
border-radius: 10px 30px;
border-width: 1px;
height: 8vh;
min-height: 8vh;
display: flex;
position: relative;
height: var(--TopHeight);
background-image: url("../blog/post/images/42cc3207-42a4-4ceb-8a2f-f5f7a89496fc.jpg");
background-repeat: revert;
background-size: contain;
background-origin: revert;
}
#content {
margin-left: 2.5%;
margin-right: 2.5%;
#main_layer {
margin: 1vw 1vh;
position: relative;
overflow-y: auto;
overflow-x: clip;
background: black;
min-height: calc((var(--TopHeight) + var(--FooterHeight)) * 2);
height: calc(var(--WindowFull) - calc(var(--FooterHeight) + var(--TopHeight)));
background-image: url("../blog/post/images/bb109b5a-f907-4da1-9c4f-55533395ed6e.jpg");
background-repeat: revert;
background-size: contain;
background-origin: revert;
height: 70vh;
min-height: 8vh;
}
#main_layer > div {
position: relative;
}
#content > * {
margin-top: var(--ContentVerticalMargin);
margin-bottom: var(--ContentVerticalMargin);
}
footer {
width: 100%;
align-content: center;
display: flex;
bottom: 0;
border-top: #ec914b8f;
background: #F0F0F524;
border-radius: 30px 10px;
border-width: 1px;
height: 8vh;
min-height: 8vh;
position: relative;
height: var(--FooterHeight);
background-image: url("../blog/post/images/42cc3207-42a4-4ceb-8a2f-f5f7a89496fc.jpg");
background-repeat: revert;
background-size: contain;
transform: scaleY(-1);
}

View File

@ -6,11 +6,11 @@
.toastui-editor-dark .toastui-editor-md-container,
.toastui-editor-dark .toastui-editor-ww-container {
background-color: #121212;
background-color: #12121288;
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar {
background-color: #232428;
background-color: #23242888;
border-bottom-color: #303238;
}
@ -20,20 +20,20 @@
}
.toastui-editor-dark .toastui-editor-toolbar-icons:not(:disabled):hover {
background-color: #36383f;
background-color: #36383f88;
border-color: #36383f;
}
.toastui-editor-dark .toastui-editor-toolbar-divider {
background-color: #303238;
background-color: #30323888;
}
.toastui-editor-dark .toastui-editor-tooltip {
background-color: #535662;
background-color: #53566288;
}
.toastui-editor-dark .toastui-editor-tooltip .arrow {
background-color: #535662;
background-color: #53566288;
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar .scroll-sync::before {
@ -45,23 +45,23 @@
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar .switch {
background-color: #2b4455;
background-color: #2b445588;
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar input:checked + .switch {
background-color: #2b4455;
background-color: #2b445588;
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar .switch::before {
background-color: #8f939f;
background-color: #8f939f88;
}
.toastui-editor-dark .toastui-editor-defaultUI-toolbar input:checked + .switch::before {
background-color: #67ccff;
background-color: #67ccff88;
}
.toastui-editor-dark .toastui-editor-main .toastui-editor-md-splitter {
background-color: #303238;
background-color: #30323888;
}
.toastui-editor-dark .toastui-editor-mode-switch {
@ -71,25 +71,25 @@
.toastui-editor-dark .toastui-editor-mode-switch .tab-item {
border-color: #393b42;
background-color: #232428;
background-color: #23242888;
color: #757a86;
}
.toastui-editor-dark .toastui-editor-mode-switch .tab-item.active {
border-top-color: #121212;
background-color: #121212;
background-color: #12121288;
color: #eee;
}
.toastui-editor-dark .toastui-editor-popup,
.toastui-editor-dark .toastui-editor-context-menu {
background-color: #121212;
background-color: #12121288;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
border-color: #494c56;
}
.toastui-editor-dark .toastui-editor-popup-add-heading ul li:hover {
background-color: #36383f;
background-color: #36383f88;
}
.toastui-editor-dark .toastui-editor-popup-body label {
@ -133,7 +133,7 @@
.toastui-editor-dark .toastui-editor-popup-body .toastui-editor-file-select-button {
border-color: #303238;
background-color: #232428;
background-color: #23242888;
color: #eee;
}
@ -144,7 +144,7 @@
.toastui-editor-dark.toastui-editor-defaultUI .toastui-editor-close-button {
color: #eee;
border-color: #303238;
background-color: #232428;
background-color: #23242888;
}
.toastui-editor-dark.toastui-editor-defaultUI .toastui-editor-close-button:hover {
@ -153,22 +153,22 @@
.toastui-editor-dark.toastui-editor-defaultUI .toastui-editor-ok-button {
color: #121212;
background-color: #67ccff;
background-color: #67ccff88;
}
.toastui-editor-dark.toastui-editor-defaultUI .toastui-editor-ok-button:hover {
color: #121212;
background-color: #32baff;
background-color: #32baff88;
}
.toastui-editor-dark .toastui-editor-popup-add-table .toastui-editor-table-cell {
border-color: #303238;
background-color: #121212;
background-color: #12121288;
}
.toastui-editor-dark .toastui-editor-popup-add-table .toastui-editor-table-cell.header {
border-color: #303238;
background-color: #232428;
background-color: #23242888;
}
.toastui-editor-dark .toastui-editor-popup-add-table .toastui-editor-table-selection-layer {
@ -181,19 +181,19 @@
}
.toastui-editor-dark .toastui-editor-md-tab-container {
background-color: #232428;
background-color: #23242888;
border-bottom-color: #303238;
}
.toastui-editor-dark .toastui-editor-md-tab-container .tab-item {
border-color: #393b42;
background-color: #2d2f34;
background-color: #2d2f3488;
color: #757a86;
}
.toastui-editor-dark .toastui-editor-md-tab-container .tab-item.active {
border-bottom-color: #121212;
background-color: #121212;
background-color: #12121288;
color: #eee;
}
@ -208,7 +208,7 @@
}
.toastui-editor-dark .toastui-editor-context-menu li:not(.disabled):hover {
background-color: #36383f;
background-color: #36383f88;
}
.toastui-editor-dark .toastui-editor-context-menu li.disabled {
@ -217,7 +217,7 @@
.toastui-editor-dark .toastui-editor-dropdown-toolbar {
border-color: #494c56;
background-color: #232428;
background-color: #23242888;
}
.toastui-editor-dark .ProseMirror,
@ -251,7 +251,7 @@
}
.toastui-editor-dark .toastui-editor-contents pre {
background-color: #232428;
background-color: #23242888;
}
.toastui-editor-dark .toastui-editor-contents pre code {
@ -261,7 +261,7 @@
.toastui-editor-dark .toastui-editor-contents code {
color: #c1798b;
background-color: #35262a;
background-color: #35262a88;
}
.toastui-editor-dark .toastui-editor-contents div {
@ -270,7 +270,7 @@
.toastui-editor-dark .toastui-editor-ww-code-block-language {
border-color: #303238;
background-color: #121212;
background-color: #12121288;
}
.toastui-editor-dark .toastui-editor-ww-code-block-language input {
@ -278,7 +278,7 @@
}
.toastui-editor-dark .toastui-editor-contents .toastui-editor-ww-code-block:after {
background-color: #232428;
background-color: #23242888;
border: 1px solid #393b42;
color: #eee;
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==');
@ -296,13 +296,13 @@
}
.toastui-editor-dark .toastui-editor-custom-block-view button {
background-color: #232428;
background-color: #23242888;
border-color: #393b42;
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuugiOydtOyWtF8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiCgkgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzAgMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMwIDMwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I2ZmZjt9Cjwvc3R5bGU+CjxnPgoJPGc+CgkJPGc+CgkJCTxnPgoJCQkJPGc+CgkJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTE1LjUsMTIuNWwyLDJMMTIsMjBoLTJ2LTJMMTUuNSwxMi41eiBNMTgsMTBsMiwybC0xLjUsMS41bC0yLTJMMTgsMTB6Ii8+CgkJCQk8L2c+CgkJCTwvZz4KCQk8L2c+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==');
}
.toastui-editor-dark .toastui-editor-custom-block-view button:hover {
background-color: #232428;
background-color: #23242888;
border-color: #595c68;
}
@ -320,7 +320,7 @@
}
.toastui-editor-dark .toastui-editor-contents table th {
background-color: #3a3c42;
background-color: #3a3c4288;
}
.toastui-editor-dark .toastui-editor-contents table td,
@ -352,7 +352,7 @@
}
.toastui-editor-dark .toastui-editor-contents ul > li::before {
background-color: #55575f;
background-color: #55575f88;
}
.toastui-editor-dark .toastui-editor-contents hr {
@ -369,7 +369,7 @@
.toastui-editor-dark .toastui-editor-contents .image-link:hover::before {
border-color: #393b42;
background-color: #232428;
background-color: #23242888;
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIj4KICAgICAgICA8ZyBzdHJva2U9IiNFRUUiIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgICAgICAgICAgPGc+CiAgICAgICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNy42NjUgMTUuMDdsLTEuODE5LS4wMDJjLTEuNDg2IDAtMi42OTItMS4yMjgtMi42OTItMi43NDR2LS4xOTJjMC0xLjUxNSAxLjIwNi0yLjc0NCAyLjY5Mi0yLjc0NGgzLjg0NmMxLjQ4NyAwIDIuNjkyIDEuMjI5IDIuNjkyIDIuNzQ0di4xOTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDQ1IC0xNzQzKSB0cmFuc2xhdGUoMTA0MCAxNzM4KSB0cmFuc2xhdGUoNSA1KSBzY2FsZSgxIC0xKSByb3RhdGUoNDUgMzcuMjkzIDApIi8+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyLjMyNiA0LjkzNGwxLjgyMi4wMDJjMS40ODcgMCAyLjY5MyAxLjIyOCAyLjY5MyAyLjc0NHYuMTkyYzAgMS41MTUtMS4yMDYgMi43NDQtMi42OTMgMi43NDRoLTMuODQ1Yy0xLjQ4NyAwLTIuNjkyLTEuMjI5LTIuNjkyLTIuNzQ0VjcuNjgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDQ1IC0xNzQzKSB0cmFuc2xhdGUoMTA0MCAxNzM4KSB0cmFuc2xhdGUoNSA1KSBzY2FsZSgxIC0xKSByb3RhdGUoNDUgMzAuOTk2IDApIi8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=');
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
}
@ -424,11 +424,11 @@
}
.toastui-editor-dark .toastui-editor-md-code {
background-color: #35262a;
background-color: #35262a88;
}
.toastui-editor-dark .toastui-editor-md-code-block-line-background {
background-color: #232428;
background-color: #23242888;
}
.toastui-editor-dark .toastui-editor-md-code-block .toastui-editor-md-meta {
@ -440,7 +440,7 @@
}
.toastui-editor-dark .toastui-editor-md-custom-block-line-background {
background-color: #392d31;
background-color: #392d3188;
}
.toastui-editor-dark .toastui-editor-md-custom-block .toastui-editor-md-delimiter {

View File

@ -4,7 +4,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/default_layout}"
>
<head>
<th:block layout:fragment="head">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"></script>
<script type="text/javascript" th:src="@{/js/toast-ui-view.js}"></script>
<link th:href="@{/css/toast-ui.css}" rel="stylesheet" />
@ -49,8 +49,8 @@
console.log(editor.getHTML())
}
</script>
</head>
<div layout:fragment="content" id="content">
</th:block>
<th:block layout:fragment="content" id="content">
<input id="title_layer" />
<div id="editor" ></div>
<div id="hashtag_layer">
@ -60,5 +60,5 @@
<div id="controll_layer" >
<button onclick="save()">asdsad</button>
</div>
</div>
</th:block>
</html>

View File

@ -4,8 +4,8 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/default_layout}"
>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"></script>
<th:block layout:fragment="head" id="head">
<script type="text/javascript" th:src="@{https://code.jquery.com/jquery-3.5.1.min.js}" crossorigin="anonymous"></script>
<script type="text/javascript" th:src="@{/js/toast-ui.js}"></script>
<link th:href="@{/css/blog.css}" rel="stylesheet" />
<link th:href="@{/css/toast-ui.css}" rel="stylesheet" />
@ -22,7 +22,7 @@
console.log(style.getPropertyValue('--FooterHeight'))
console.log(style.getPropertyValue('--TopHeight'))
var editorHeght = (
document.querySelector('#content').getBoundingClientRect().height -
document.querySelector('#main_layer').getBoundingClientRect().height -
(
Number(style.getPropertyValue('--ButtonHegit').replace("px","") * 3)
+ Number(style.getPropertyValue('--TopHeight').replace("px",""))
@ -32,7 +32,7 @@
editor = new toastui.Editor({
el: document.querySelector('#editor'),
previewStyle: 'tab',
height: editorHeght+ 'px',
height: editorHeght + 'px',
width:'95%',
theme:'dark',
usageStatistics : false,
@ -91,18 +91,18 @@
console.log(editor.getHTML())
}
</script>
</head>
<div layout:fragment="content" id="content">
<div class="layer">
<input id="title_layer" />
</th:block>
<th:block layout:fragment="content" id="content">
<div id="main_layer">
<div class="layer">
<input id="title_layer" />
</div>
<div id="editor" ></div>
<div class="layer">
<select > </select>
<input id="hashtag" />
<button id="save" onclick="save()">asdsad</button>
</div>
</div>
<div id="editor" ></div>
<div class="layer">
<select > </select>
<input id="hashtag" />
</div>
<div id="layer" >
<button id="save" onclick="save()">asdsad</button>
</div>
</div>
</th:block>
</html>

View File

@ -4,7 +4,7 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/default_layout}"
>
<head>
<th:block layout:fragment="head" id="head">
<!--css,JS 추가영역-->
<script th:inline="javascript">
function jopinClick() {
@ -12,9 +12,9 @@
}
</script>
<script type="text/javascript" th:src="@{/js/user.js}"></script>
</head>
<div layout:fragment="content" id="content">
<table>
</th:block >
<th:block layout:fragment="content">
<table id="main_layer">
<tr>
<td><h2>회원가입</h2></td>
</tr>
@ -30,5 +30,5 @@
<tr><td><input id="user_email" type="text" class="email"></td></tr>
<tr><td><input type="submit" value="가입하기" class="btn" onclick="jopinClick()"></td></tr>
</table>
</div>
</th:block>
</html>

View File

@ -4,28 +4,25 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/default_layout}">
<th:block layout:fragment="head">
<head>
<title>Spring Boot</title>
<script th:inline="javascript">
function loginClick() {
onclickLogin([[${enc}]],[[${key}]])
}
</script>
<!--/* css */-->
<link th:href="@{/css/common.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{/js/common.js}"></script>
<script type="text/javascript" th:src="@{/js/user.js}"></script>
</th:block>
</head>>
<body onload="checkDebug()">
<th:block layout:fragment="header" th:include="@{fragments/header}"></th:block>
<div layout:fragment="content" class="content">
<div layout:fragment="content" id="content">
<table>
<tr><td>아이디</td></tr>
<tr><td><input id="user_id" type="text" class="text"></td></tr>
<tr><td>비밀번호</td></tr>
<tr><td><input id="user_pw" type="password" class="text"></td></tr>
<tr><td><input type="submit" value="가입하기" class="btn" onclick="loginClick()"></td></tr>
<tr><td><input type="submit" value="로그인" class="btn" onclick="loginClick()"></td></tr>
</table>
</div>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<footer th:fragment="footer">
asdasdasd
</footer>
<th:block th:fragment="footer">
<footer></footer>
</th:block>
</html>

View File

@ -1,4 +0,0 @@
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<div class="head">
</div>
</html>

View File

@ -1,6 +1,8 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<header th:fragment="header">
header.html
</header>
<th:block th:fragment="header">
<header>
</header>
</th:block>
</html>

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="includes">
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Referrer" content="origin"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1"/>
<link th:href="@{/css/common.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{/js/common.js}"></script>
</th:block>
</html>

View File

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<th:block th:fragment="title">
<title th:text="${title}">Bum's</title>
</th:block>
</html>

View File

@ -1,24 +1,24 @@
<!DOCTYPE html>
<html
lagn="ko"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
xmlns="http://www.w3.org/1999/html">
<html lagn="ko"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link th:href="@{/css/common.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{/js/common.js}"></script>
<meta name="Referrer" content="origin">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1">
<!-- <th:block layout:replace="fragments/includes" ></th:block>-->
<th:block th:replace="fragments/includes :: includes"></th:block>
<!-- layout:fragment="head" -->
<th:block layout:fragment="head"></th:block>
<!-- <th:block layout:replace="fragments/title" ></th:block> -->
<th:block th:replace="fragments/title :: title"></th:block>
</head>
<body>
<div th:replace="fragments/header :: header"></div>
<div layout:fragment="content"></div>
<div th:replace="fragments/footer :: footer"></div>
<!--<th:block th:replace="fragments/header :: header"></th:block>-->
<th:block th:replace="fragments/header :: header"></th:block>
<!--<th:block layout:fragment="content"></th:block>-->
<th:block layout:fragment="content"></th:block>
<!--<th:block th:replace="fragments/footer :: footer"></th:block>-->
<th:block th:replace="fragments/footer :: footer"></th:block>
</body>
</html>