
블로거(블로그스팟) 문법 알아보다 화딱지나서 직접 정리하려고 만드는 중입니다.
비어있는 문서가 있을수도 없을수도
더 이상 블로그스팟을 운영하지 않음에 따라 더 이상의 업데이트는 없을 것 같습니다...
들어가기 전에
여기서 대괄호([])는 설명을 위해 넣은 표현입니다. 진짜로 코드에 대괄호가 들어가는 것은 아닙니다!
설명
구글 블로거에는 고유의 HTML 문법이 있습니다. 블로그 꾸미려고 HTML 편집을 눌러본 분들이라면 보셨을 거예요. '<b:
'로 시작하는 태그들을요. 이것들을 실제 태그처럼 사용하면 됩니다.
기본 형태들
<b:[이름]></b:[이름]>
<b:[이름]/>
<data:[값]/>
주의사항
열었으면 꼭 닫아줘야 합니다.
<br>
비슷하게 닫지 않는 태그도 있는데 이 경우 꼭 태그 안에 /를 넣어줘야 합니다.예)
<b:if> <b:else/> </b:if>
data:
블로거에서 제공하는 값들을 쓸 수 있습니다.
구조
<data:[값]/>
<[아무 태그] expr:[속성]='data:[값]'>
설명
태그 형식으로 쓰면 그 자리가 값으로 대체됩니다. 예를 들어 blog.title
은 블로그 이름인데요, <p><data:blog.title/></p>
하면 p 태그 안에 블로그 이름이 적힙니다.
근데 이것보다 중요한 건 expr:
입니다. 태그 속성 앞에 저걸 붙이면 그 안에 data;
를 쓸 수 있어요. 예를 들어 <meta property='og:site_name' expr:content='data:blog.title'>
하면 메타 태그에 자동으로 블로그 이름을 넣을 수 있습니다. expr:
의 문법 설명은 여기를 참조.
주의사항
제 추측으로는 맨 앞 접두사에 따라서 쓸 수 있는 위치가 정해지는 것 같습니다. blog.
로 시작하면 모든 곳에서 사용 가능하지만, post.
로 시작하면 포스트 태그 안에서만 가능하더라고요. (정확히는 <b:includable id='post' var='post'></b:includable>
안입니다.)
목록
data: | 값 | 설명 | 구분 | |
---|---|---|---|---|
blog.url |
https://[...].blogspot.com/[...] | 퍼머링크까지 | ||
blog.homepageUrl |
https://[...].blogspot.com/ | 홈페이지만 | ||
view.url |
https://[...].blogspot.com/[...] | 전체 URL | ||
blog.pageType |
index | 홈 | ||
item | 포스트 | |||
static_page | 페이지 | |||
error_page | 에러 페이지 | |||
view.isArchive |
[true/false] | 아카이브 페이지면 참 (이 아카이브가 뭔지는 모르겠음) |
||
view.isError |
[true/false] | 에러 페이지면 참 | ||
view.isHomepage |
[true/false] | 홈페이지면 참 | ||
view.isLabelSearch |
[true/false] | 레이블 검색 페이지면 참 | ||
view.isMultipleItems |
[true/false] | 포스트 목록을 보여주는 페이지(홈페이지, 검색, 레이블 등)면 참 | ||
view.isMobile |
[true/false] | 모바일이면 참 (url 뒤에 m=1 붙으면) |
||
view.isPage |
[true/false] | 페이지면 참 (static_page) |
||
view.isPost |
[true/false] | 포스트면 참 | ||
view.isPreview |
[true/false] | 미리보기면 참 | ||
view.isSearch |
[true/false] | 검색 페이지면 참 | ||
view.isSingleItem |
[true/false] | 포스트나 페이지면 참 | ||
blog.pageName |
[글] | 글(포스트) 제목 | ||
view.title |
[글] | 제목 | ||
blog.metaDescription |
[글] | 검색 설명란에 적은 거 | ||
view.description |
[글] | 검색 설명란에 적은 거 | ||
blog.postImageUrl |
https://[...] | 포스트(페이지 안됨) 첫 번째 이미지 url | ||
blog.postImageThumbnailUrl |
https://[...] | 포스트(페이지 안됨) 첫 번째 이미지 정사각형 썸네일 버전 url | ||
view.featuredImage |
https://[...] | 대표 이미지 url(프록시) | ||
blog.feedLinks |
<link rel='[alternate/service.post]' type='application/[attom/rss]+xml' [...]'> <link rel='[alternate/service.post]' type='application/[attom/rss]+xml' [...]'> <link rel='[alternate/service.post]' type='application/[attom/rss]+xml' [...]'> |
Atom RSS 링크 |
여담
이 문서는 이거 정리하려고 만들었다고 해도 과언이 아닙니다. 이거 어디 진짜 제대로 정리해놓은 곳이 없어요
expr:
속성 앞에 붙이면 그 값에 블로거 변수를 사용할 수 있습니다.
구조
<[태그] expr:[속성]='[내용]'>
설명
[내용]에 코딩 언어처럼 변수와 문자열을 넣을 수 있습니다. data:blog.title
은 블로그 이름을 표현하는 변수인데요, 오픈그래프 메타 태그에 '~ 블로그'라 하고 싶다면 <meta property='og:site_name' expr:content='data:blog.title + " 블로그"'>
라 적으시면 돼요. 그러니까 변수는 그냥 적고, 그냥 내용은 큰따옴표 안에 적고, 그 사이를 +로 연결해주세요. (data:
에 대해 더 알고 싶다면 여기로.)
주의사항
b: 태그 속성 중에 expr:을 붙이지 않아도 붙인 것처럼 쓰는 속성이 있어요. 이것들에 expr: 붙이면 오류남.
바깥쪽 따옴표를 큰따옴표로 하면 안이랑 겹쳐서 오류나요. 꼭 바깥쪽이 작은따옴표, 안쪽이 큰따옴표여야 하는지는 모르겠지만 저는 그렇게 씁니다.
<b:eval>
expr:의 결과를 바로 출력해주는 태그입니다.
구조
<b:eval expr='[표현식]'/>
설명
cond=' '
조건문을 작성할 때 쓰입니다. 주로 조건문 태그의 속성으로 들어갑니다.
expr:의 규칙도 따라갑니다.
문법
[A] == [B] |
A와 B가 같으면 참 |
[A] != [B] |
A와 B가다르면 참 (저거 !=임) |
![A] |
A의 값을 거꾸로 (참 → 거짓, 거짓 → 참) |
[A] in {x,y,z} |
A가 x y z 중에 하나라도 있으면 참 (집합에 포함 여부) |
[A] and [B] |
A와 B 모두 만족해야 참 |
[A] or [B] |
A와 B 중 하나라도 만족하면 참 |
사용되는 태그
- <b:if>
- <b:include>
<b:if>
if문입니다. 조건을 하나하나씩 차례대로 검토합니다.
구조
<b:if cond='[조건]'>
[내용]
<b:elseif cond='[조건]/;>
[내용]
<b:else/>
[내용]
</b:if>
설명
cond=' '
가 참일 때 실행됩니다. 코딩을 해 보신 분들이라면 익숙하실 거예요.

혹시 모르시는 분들은 if문을 검색하시면 기초 설명이 잔뜩 나옵니다.
<b:switch>
switch문입니다. 어떤 변수가 특정 값일 경우의 수를 하나씩 설정합니다. 병렬적인 조건문이라고도 할 수 있겠습니다.
구조
<b:switch var=[변수]>
<b:case value='[값1]'/>
[내용1]
<b:case value='[값2]'/>
[내용2]
<b:default/>
[내용3]
</b:switch>
설명
[변수]가 [값1]과 같으면 [내용1]을, [값2]와 같으면 [내용2]를, 같은 것이 없으면 [내용3]을 실행하는 구문입니다. var=' '
은 expr:의 규칙을 따릅니다.
주의사항
이거 url로는 작동이 안되더라고요. 왜 그런지는 모르겠습니다. 해결법 아시면 공유좀...
<b:loop>
반복문입니다.
구조
<b:loop values='[집합(변수/["내용", "내용", ...])]' var='[변수이름1]' index='[변수이름2]' reverse='[true/false]'> [내용(변수이름1, 변수이름2 포함)] </b:loop>
설명
values의 내용 개수만큼 반복합니다. 현재 해당하는 내용은 [변수이름1]으로 쓸 수 있고요, [변수이름2]로 반복한 수만큼 늘어나는 숫자를 쓸 수 있고요, reverse에 true를 넣으면 반대 순서로 합니다.
여기서 집합은 대괄호로 표현할 수 있습니다.(이건 표현을 위한 대괄호가 아니라 진짜 코드에 들어가는 대괄호입니다.) ["사과", "배, "감"] 이런 식으로요. 이걸로 예시를 들어볼까요?
<ul> <b:loop values='["사과, "배", "감"] var='fruit' index='number' reverse='true'> <li><eval expr='data:number + 1'/>번째 과일은 <data:fruit>입니다.</li> </b:loop> </ul></data:fruit>
이렇게 하면
- 1번째 과일은 감입니다.
- 2번째 과일은 배입니다.
- 3번째 과일은 사과입니다.
요게 됩니다.
쓸 수 있는 집합 변수 모음
여기 있는 것들은 전부 앞에 data:
를 붙여야 사용가능합니다.
posts | 포스트 목록 |
<b:comment>
주석을 만드는 태그입니다.
구조
<b:comment render='[true/false]'>
[내용]
</b:comment>
설명
주석입니다. 근데 HTML상에 표시되지 않고 블로거 관리창에서만 볼 수 있는 주석이예요. 근데 render='true'
넣으면 HTML 주석하고 똑같이 표시됩니다.
진짜 유용한 용도가 있습니다. 자바스크립트의 console.log()
같이 쓸 수 있어요. 주석으로 변수 확인이 가능합니다.