ただ日々を記すもの

意識高めを装うことができます

Markdown記法で複数の空白行を入れたい!

Markdownって複数の空白行入れられないのかな…?と思いながらも調べるのが面倒で多少レイアウト乱れてもほったらかしていました。

ただ、探してみるとすぐに見つかったので備忘録としてここに書いておきます。

Markdown記法で複数の空白行を入れる方法

めちゃくちゃ単純です。
</br> を書くだけ。


なんか信じられないですよね。

ちょっと試して見ます

サンプル文章

1行目


2行目
</br>
3行目

</br>
4行目

</br>
</br>
5行目
</br>
</br>
</br>
6行目

結果

1行目

2行目
3行目


4行目



5行目


6行目

Markdownで文章を書くときに改行で段落を変えてしまえば改行自体は反映されますが、何行改行したとしても空行は1行だけです。
それに比べて</br> を入れた箇所はタグの文だけ改行されていますね。

Kotlin + Spring BootでThymeleafテンプレートを使ってハマった話

概要

現在、Kotlin + Spring Bootで開発をしているのですが その中で詰まった、ハマってしまった部分を紹介します。

今回はThymeleafテンプレートに関して。
かなり開発序盤の内容です。主にセットアップ。

ハマった問題

その1

前回のブログ で紹介したようにプロジェクトを作成し、その後ログイン画面に遷移しようとしたときの話。

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class LoginController {

    @GetMapping("/")
    fun index(): String {
        return "login"
    }
}

こんな感じで初めは書いていたのですが、その結果がこちら

f:id:RONKUN:20170805200458p:plain

...いやいやログイン画面だけど。。笑


こうなってしまった原因は、@RestController の部分。
ここは @Controller にしてあげなければいけません。


また、今回htmlファイルは、
src/main/resources/templates/login.html というファイルを作成しています。

デフォルトだと resources/templates 直下のhtmlファイルを探しにいっているのでこの辺も注意が必要です!
(ここも結構時間かかった。。)



その2

もう一つ時間がかかったのがこちらのエラー。
f:id:RONKUN:20170805201438p:plain

一つ目の問題と同時に起こっていたので、初めはルーティングの問題だと思ってファイル名変えたり、ファイルの配置変えたり色々したのですが全然うまくいきませんでした。
諦めかけてたときにふと画面上のエラーメッセージを読むと、Exception parsing document。 あれ、これってもしかしてParseに失敗してる!??

ターミナルを確認してみると、

org.xml.sax.SAXParseException: 要素タイプ"img"は、対応する終了タグ"</img>"で終了する必要があります。

おー!確かにちゃんとエラー出てた!!

どうやらimgタグやinputタグを書くときには、閉じタグが必要になるようです。ちょっとめんどくさい。。

閉じタグを追加してあげると無事にログイン画面が表示されました。
よかったよかった

さいごに

Thymeleafを使用するには、build.gradle のdependenciesに以下を追加してあげる必要があるみたいです。(参考サイトより)
compile("org.springframework.boot:spring-boot-starter-thymeleaf")

最後に参考にしたサイトを紹介しておきます。

nosix.hatenablog.com

【爆速】kotlin、Springboot、Gradleでプロジェクト作成!

はじめに

最近kotlinでプロジェクトを作成し、その際に案外簡単にプロジェクト作成できたのでこちらでそのときの作り方を紹介します。

プロジェクトを作る

SPRING INITIALIZRでプロジェクト作成

もっとも簡単にプロジェクトを作成するために使えるのがこれ。
SPRING INITIALIZRです。 ほんとチャチャッとよろしくしてくれます!

https://start.spring.io/

サイトのトップビュー↓
f:id:RONKUN:20170804202959p:plain

ここに Gradle Project 、 言語に Kotlin を指定します。
Spring Bootのバージョンと、Project Metadata は任意に設定してください。

次に Dependencies にお好みの項目を選択しちゃってください。
(自分は、とりあえず Web を選択。ま、ここはあとで追加できるので気軽に)

最後に Generate Project を押下すればProjectがzipファイルでダウンロードできます!

IntelliJでインポートからローカルサーバー起動

1. ダウンロードしたzipファイルを解凍

2. IntelliJを開き、 Open を押し、解凍したプロジェクトを選択

f:id:RONKUN:20170804203754p:plain

3. 次に表示されるViewで OK を選択

f:id:RONKUN:20170804204039p:plain

4. build.gradle を編集

IntelliJで開発するために、以下ファイルの1.と2.を追加しましょう

buildscript {
    ext {
        kotlinVersion = '1.1.3-2'
        springBootVersion = '1.5.6.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
        classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
    }
}

apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'eclipse'
// 1. 追加
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

repositories {
    mavenCentral()
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
    compile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

// 2. 追加
idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

5. ./gradlew idea を実行

ターミナルにて、階層はプロジェクト直下で実行しましょう

6. サンプルファイル作成

src > main > kotlin > 【Project Metadataで設定したパッケージ】 配下に新規でkotlinのファイルを作成します。

内容はとりあえずこんな感じ

package 【Project Metadataで設定したパッケージ】
 
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RestController

@RestController
class GreetingController {

    @GetMapping("/hello/{name}")
    fun get(@PathVariable name: String) = "Hello, $name"

}

7. ./gradlew bootRun でローカルサーバー起動

これで、http://localhost:8080/hello/world にアクセス以下のように Hello World と画面に表示されれば完成です!

f:id:RONKUN:20170804205417p:plain

さいごに

今回は、とりあえずプロジェクトを作成するまでを紹介しました。

ミニマムで開発したいとか、最初に色々つまづきたくない場合は非常に便利だと思います!

はてなブログ×Markdownで箇条書きする!

Markdownで箇条書きする方法を紹介します。

Markdownで箇条書き

使い方

* 箇条書き1
    * 箇条書き1_1
    * 箇条書き1_2
* 箇条書き2

実際の表示

  • 箇条書き1
    • 箇条書き1_1
    • 箇条書き1_2
  • 箇条書き2

わかってしまえば簡単ですね。

Markdownで箇条書きするとき自分はいつも - を使っていたのですが基本的に * を使うんですね。この前JIRAで - 反映されなかったので焦りました…

おしまい

絶対にできる!Rの発音

久しぶりに英語に関するブログ。

いま仕事で外国の方とコミュニケーションを取る機会があり、英語の勉強に力をいれています。

あるときアメリカ人と話していて、Rの発音できてないねって言われました。 今回は、そんな自分がそのアメリカ人に認めてもらえるRを発音できるようになるまでのお話。

RとLの発音について

これに関してはみなさんご存知の通り、日本語にはRの発音がありません。

知らない発音を大人になってから身につけろって言われてもそんなすぐにできるわけもなく。。。

私もフィリピンやイギリスに短期間の留学経験がありますが、Rの発音はできていませんでした。 (自分的には舌を巻いてできている気でいたけど、ネイティブは認めてくれなかった。。)

バイリンガールすごすぎ!!

Youtubeで発音の動画を見て地道に練習してしていくしかないか。。。

と考え見つけたのがこの動画

www.youtube.com

バイリンガールのちかさんの動画です この動画を見て「right」を発音したらアメリカ人も納得するRの発音がなんと一発で出せました!!

これにはアメリカ人と2人で 「ちか、スゲェー!!!」 と感動しました!笑

まとめ

動画でも言っているように、頭文字がrのものはこれで問題ないと思います。 あと「free」とかのように「R」の前がカタカナ読みしたときに母音「u」で終わるものも大丈夫そう。

やっぱりちかさんすごいなぁ あまりにも感動したのでシェアでした。