Tổng hợp cấu trúc dữ liệu Blogger – Blogger Template Cheat Sheet

Blogger template cheat sheet

data:blog.encoding

data:blog.encoding thuộc loại STRING, trả về mã Unicode Encode của Blog. Ví dụ:

<meta expr:content='"text/html; charset=" + data:blog.encoding' http-equiv='Content-Type'/>

Kết quả:

<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>

data:blog.feedLinks thuộc loại STRING, dùng để tạo feed link trong của Blogger với 4 loại thẻ <link>. Thường được sử dụng tại <head>.

<data:blog.feedLinks/>

data:blog.hasCustomDomain

data:blog.hasCustomDomain thuộc loại BOOLEAN, kiểm tra blog có dùng tên miễn tùy chỉnh hay không.

data:blog.hasCustomJumpLinkMessage

data:blog.hasCustomJumpLinkMessage thuộc loại BOOLEAN, kiểm tra nội dung của dòng “Read more” có được tùy chỉnh lại hay không.

data:blog.homepageUrl

data:blog.homepageUrl thuộc loại URL, trả về URL homepage.

data:blog.ieCssRetrofitLinks thuộc loại STRING, chứa nội dung CSS (của Offical theme) tùy biến cho các phiên bản IE đời cổ. Thẻ này thường được chèn trong nội dung thẻ <head>. Ví dụ:

<!--[if IE]> <script> HACK_IE </script> <![endif]-->

data:blog.isMobileRequest

data:blog.isMobileRequest thuộc loại BOOLEAN, kiểm tra thiết bị truy cập có phải là di động hay không.

data:blog.isPrivate

data:blog.isPrivate thuộc loại BOOLEAN, kiểm tra trạng thái index của Blog với Search Engine.

data:blog.isPrivateBlog

data:blog.isPrivateBlog thuộc loại BOOLEAN, kiểm tra tính mở của blog. Trả về true nếu giới hạn số người đọc, và false nếu cho phép mọi người xem blog.

data:blog.jumpLinkMessage

data:blog.jumpLinkMessage thuộc loại STRING, trả về nội dung của JumpLink.

data:blog.languageDirection

data:blog.languageDirection thuộc loại STRING, trả về chiều đọc của ngôn ngữ, mặc định là từ trái sang phải (ltr).

data:blog.locale

data:blog.locale thuộc loại LOCALE, là object chứa thông tin mô tẩ về ngôn ngữ của Blog. Giá trị này được thiết lập trong mục Cài đặt > Ngôn ngữ trên Blog của Blogger.

"data": {
  "blog": {
    "locale": locale,
      {
        "name": string,
        "language": string,
        "country": string,
        "variant": string,
        "script": string,
        "languageDirection": string,
        "languageAlignment": string,
        "size": number,
        "length": number,
        "escaped": string,
        "jsEscaped": string,
        "jsonEscaped": string,
        "cssEscaped": string
      }
  }
}

Ngoài ra, giá trị locale còn có thể được thiếp lập thông qua tham số url: hl.

https://BLOG_URL.blogspot.com?hl=values

Giá trị hợp lệ của tham số hl có thể tham khảo một số ví dụ ở bảng sau:

LanguageValue
French (France)fr
French (Canada)fr-CA
English (United States)en
English (United Kingdom)en-UK
Spanish (Latin America)es-419
Spanish (Spain)es
Portuguese (Brazil)pt-BR
Portuguese (Portugal)pt-PT
Indonesianid
Vietnamesevi
Giá trị tham chiếu của Blog Locale

data:blog.metaDescription

data:blog.metaDescription thuộc loại STRING, chưa thẻ meta mô tả cho Blog, bài viết và trang. Thẻ này thường được dùng trong thẻ <head>. Giá trị của thẻ metaDescription sẽ thay đổi tùy theo nội dung của trang hiển thị như bảng sau:

DescriptionArticlePageIndexArchiveError
Blog
Article
Page
Bảng mô tả giá trị của thẻ meta Description theo chế độ view

Ngoài ra chúng ta còn có thể sử dụng hàm snippet để giới hạn số lượng ký tự của thẻ metaDescription như sau:

<meta expr:content='snippet(data:blog.metaDescription, {length: 125 })' property='og:description'/>

data:blog.mobileClass

data:blog.mobileClass thuộc loại STRING, thẻ này chưa class name theo các biến thể của các theme mặc định trong Blogger. Tham khảo bảng sau để biết giá trị hợp lệ của thẻ này:

ThemesBiến thểWeb version valueMobile version value
SimpleBladevariant-palemobile variant-pale
Boldvariant-boldmobile variant-bold
Darkvariant-darkmobile variant-dark
Deepvariant-deepmobile variant-deep
Literatevariant-literatemobile variant-literate
Widevariant-widemobile variant-wide
Simply Simplevariant-simplysimplemobile variant-simplysimple
Picture WindowOpenvariant-openmobile variant-open
Shadevariant-shademobile variant-shade
Screenvariant-screenmobile variant-screen
Awesome Inc.Darkvariant-darkmobile variant-dark
Lightvariant-lightmobile variant-light
Groovyvariant-groovymobile variant-groovy
Renewablevariant-renewablemobile variant-renewable
Artsyvariant-artsymobile variant-artsy
Icyvariant-icymobile variant-icy
WatermarkBirdsvariant-birdsmobile variant-birds
Navigatorvariant-navigatormobile variant-navigator
Flowervariant-flowermobile variant-flower
Bubblegumvariant-bubblegummobile variant-bubblegum
EtherealHummingbirds 2variant-hummingBirds2mobile variant-hummingBirds2
Blossoms 1 Bluevariant-blossoms1Bluemobile variant-blossoms1Blue
Leaves 1variant-leaves1mobile variant-leaves1
TravelStudiovariant-studiomobile variant-studio
Flightvariant-flightmobile variant-flight
Beachvariant-beachmobile variant-beach
Roadvariant-roadmobile variant-road
DynamicClassicvariant-classicvariant-classic
Flipcardvariant-flipcardvariant-flipcard
Snapshotvariant-snapshotvariant-snapshot
Timeslidevariant-timeslidevariant-timeslide
Magazinevariant-magazinevariant-magazine
Mosaicvariant-mosaicvariant-mosaic
Sidebarvariant-sidebarvariant-sidebar
Other themesmobile

data:blog.pageName

data:blog.pageName thuộc loại STRING, trả về giá trị Page name. Page sẽ mang giá trị tùy thuộc vào ngữ cảnh bên dưới:

Page typeName
Home IndexEmpty
ReverseTimeline IndexEmpty
IndexLabels{Wording}
Search IndexSearch results for {QUERY}
Archives{DATE or PERIOD}
Article (item){TITLE ARTICLE}
Untitled article (item)Empty
Autonomous page{TITLE FREE PAGE}
Untitled Standalone PagesEmpty
Page 404Empty

data:blog.pageTitle

data:blog.pageTitle thuộc lại STRING, trả về giá trị Title của page view theo ngữ cảnh bên dưới:

Page typeTitle composition
Home > Index{BLOG NAME}
Reverse > Timeline Index{BLOG NAME}
Index > Labels{BLOG NAME}: {LABELED}
Search Index >{BLOG NAME}: Search results for {QUERY}
Archives{BLOG NAME:} {DATE or PERIOD}
Article (item){BLOG NAME:} {TITLE ARTICLE}
Untitled article (item){BLOG NAME}
Autonomous page{BLOG NAME}: {TITLE STANDALONE PAGE}
Untitled Standalone Pages{BLOG NAME}
Page 404{BLOG NAME}

data:blog.pageType

data:blog.pageType thuộc loại STRING, trả về giá tị page type của view hiện tại. Giá trị của pageType có thể tham khảo trong bảng sau:

Page typeValueMô tả
ResearchindexDanh sách các items hiển thị theo kết quả tìm kiếm / trang chủ.
ArchivesarchiveDanh sách các item hiển thị theo thời gian: tuần / tháng / năm.
ArticleitemBài viết.
Autonomous pagestatic_pageTrang tĩnh.
Page 404error_pagePage not found. Trang thông báo lỗi 404.

Bên dưới là một ví dụ cách sử dụng dữ liệu này với thẻ <b:switch>:

<b:switch var='data:blog.pageType'>
  <b:case value='item'/>
    Trang bài viết
  <b:case value='static_page'/>
    Trang tĩnh
  <b:case value='archive'/>
    Trang lưu trữ
  <b:case value='index'/>
    Trang Index
  <b:case value='error_page'/>
    Trang 404
</b:switch>

data:blog.postImageThumbnailUrl

data:blog.postImageThumbnailUrl thuộc loại STRING, chứa URL ảnh đại diện của bài viết / Trang. Kích thước ảnh mặc định là 72×72 px (s72-c). Ví dụ:

<img expr:src='data:blog.postImageThumbnailUrl'/>

Kết quả

<img src="https://1.bp.blogspot.com/-QKr0uAy9OD8/YB0UlRCPtSI/AAAAAAAABHs/dTE7D9q2_QsdmPJRgF6blm9ZVW9jd_k3wCLcBGAsYHQ/s72-c/3463970.jpg" />

data:blog.postImageUrl

data:blog.postImageUrl thuộc loại STRING, chứa url ảnh đại diện của bài viết / trang. Khác với data:blog.postImageThumbnailUrl, thẻ này chứ url hình ảnh wor kích thước gốc. Ví dụ:

<img expr:src='data:blog.postImageUrl'/>

Kết quả trả về url với kích thước s1600:

<img src="https://1.bp.blogspot.com/-QKr0uAy9OD8/YB0UlRCPtSI/AAAAAAAABHs/dTE7D9q2_QsdmPJRgF6blm9ZVW9jd_k3wCLcBGAsYHQ/s1600/3463970.jpg" />

data:blog.searchUrl

data:blog.searchUrl thuộc loại STRING, chứa search URL của Blog.

https://BLOG_NAME.blogspot.com/search

data:blog.sharing.platforms

data:blog.sharing.platforms thuộc loại ARRAY[OBJECT], chứa dữ liệu để tạo nút sharing.

"data": {
  "blog": {
    "sharing": { 
      "platforms": [ array ],
        {
          "size": number,
          "length": number,
          "empty": boolean,
          "notEmpty": boolean,
          "any": boolean,
          "first": Child type of the array,
          "last": Child type of the array
        }
    }
  }
}

Trong array platforms có thể chứa 6 tập dữ liệu:

  • Link
  • Facebook
  • BlogThis!
  • Twitter
  • Pinterest
  • Email

Mỗi tập dữ liệu trên có cấu trúc như sau:

[{
  "name": string,
  "key": string,
  "shareMessage": string,
  "target": string
}]

Để trích xuất các dữ liệu này, chúng ta có thể sử dụng thẻ <b:loop>

<b:loop values='data:blog.sharing.platforms' var='platform'>
  <!-- ADD ITEMS HERE -->
  <data:platform.ITEM_NAME/>

</b:loop>

Hoặc sử dụng index để lấy giá trị:

<b:loop index='index' values='data:blog.sharing.platforms' var='platforms'>

  <!-- ADD INDEX HERE -->
  <data:index/>
</b:loop>

Ngoài ra, chúng ta còn có thể sử dụng first hoặc last để truy xuất dữ liệu đầu hoặc cuối mảng.

<!-- FIRST SET -->
<data:blog.sharing.platforms.first.ITEM_NAME/>

<!-- LAST SET -->
<data:blog.sharing.platforms.last.ITEM_NAME/>

data:blog.title

data:blog.title thuộc loại STRING, chứa Title của Blog.

data:blog.url

data:blog.url thuộc loại STRING, chứa URL của trang đang xem. Cấu trúc dữ liệu và cách dùng như sau:

<!-- CANONICAL -->
<data:blog.url.canonical/>

<!-- HTTP -->
<data:blog.url.http/>

<!-- HTTPS -->
<data:blog.url.https/>

<!-- CANONICAL + HTTP -->
<data:blog.url.canonical.http/>

<!-- CANONICAL + HTTPS -->
<data:blog.url.canonical.https/>

data:blog.view

data:blog.view thuộc loại STRING, chứa tên của view hiện tại. Dữ liệu này nhận giá trị từ tham số URL ?view={view_name}. Chi tiết liệt kê trong bảng sau:

ValueTypical url
classichttps://BLOG_NAMEblogspot.com/?view=classic
flipcardhttps://BLOG_NAME.blogspot.com/?view=flipcard
magazinehttps://BLOG_NAME.blogspot.com/?view=magazine
mosaichttps://BLOG_NAME.blogspot.com/?view=mosaic
sidebarhttps://BLOG_NAME.blogspot.com/?view=sidebar
snapshothttps://BLOG_NAME.blogspot.com/?view=snapshot
timeslidehttps://BLOG_NAME.blogspot.com/?view=timeslide
Bảng giá trị của của data:blog.view

Chúng ta có thể vận dụng tham số này để tạo tùy biến nội dung cho template:

<b:if cond='data:blog.view == "dark"'/>
  Chuyển sang view dark mode.
</b:if>

Để khớp điều kiện ở trên thì cần truy cập đường dẫn:

https://BLOG_NAME.blogspot.com/?view=dark

Ngoài ra trong phần cấu trúc dữ liệu của data:blog còn một số dữ liệu khác, tuy nhiên những dữ liệu này rất ít được sử dụng trong thực tế nên mình không đề cập trong bài này.