Hiển thị các bài đăng có nhãn Post. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Post. Hiển thị tất cả bài đăng

Tiện ích tài liệu tham khảo cho bài đang đọc

Người đăng: buonkhongem on Chủ Nhật, 6 tháng 11, 2011

Trong mỗi bài viết, đôi khi chúng ta thường đặt các liên kết đến tài liệu tham khảo cho bài viết để người đọc dễ dàng tìm đọc để hiểu thêm về bài viết. Các liên kết này thường được đặt ở cuối mỗi bài viết. Ở đây mình sẽ hướng dẫn bạn cách tạo tiện ích tài liệu tham khảo cho bài đang đọc được đặt trên Sidebar để tạo nét độc đáo cho blogspot của bạn.

DEMO.

Để thực hiện thủ thuật này, bạn hãy làm theo các bước như sau:

Bước 1. Trước tiên khi đăng bài, ở cuối bài viết bạn hãy đặt các liên kết tài liệu tham khảo theo cấu trúc HTML như thế này:

  1. <a class="linkonsidebar" href="URL_tai_lieu_tham_khao_1">Ten tai lieu tham khao 1</a>
  2. <a class="linkonsidebar" href="URL_tai_lieu_tham_khao_2">Ten tai lieu tham khao 2</a>
  3. <a class="linkonsidebar" href="URL_tai_lieu_tham_khao_3">Ten tai lieu tham khao 3</a>

Bước 2. Vào Design >> Edit HTML. Chọn Expand Widget Templates.

Kế đến chúng ta cần ẩn các liên kết tài liệu tham khảo ở cuối bài viết (vì mục đích chính là hiển thị các liên kết này trên Sidebar) bằng cách đặt dòng code sau đây vào trước dòng ]]></b:skin>.

  1. .linkonsidebar {display:none}

Sau đó, viết một kịch bản giúp các liên kết ẩn trong bài viết được hiển thị trên Sidebar. Vì mỗi bài viết có một ID riêng nên các liên kết này cũng được gán theo ID của bài viết. Đặt đoạn code bên dưới vào trước thẻ </head>.

  1. <script type="text/javascript">
  2. //<![CDATA[
  3. // Script to Display Reference Links on Sidebar  by www.thuthuatblogger.info
  4. // giúp các liên kết ẩn trong bài viết được hiển thị
  5. var linkonsidebarHREF=new Array();
  6. var linkonsidebarTXT=new Array();
  7. // chức năng hiển thị link theo ID của bài viết
  8. function displayLinks(idPOST) {
  9.   var thePOST = document.getElementById("post-" + idPOST);
  10.   // tìm tất cả các link
  11.   var thelist = thePOST.getElementsByTagName("a");
  12.   if(thelist.length>0){
  13.     // nếu có thì tìm tất cả các link có lớp linkonsidebar
  14.     var offset;
  15.     for(var i=0; i<thelist.length; ++i) {
  16.       if(thelist[i].className=="linkonsidebar") {
  17.         // nếu tìm ra thì thêm vào danh sách hiển thị
  18.         offset = linkonsidebarHREF.length;
  19.         linkonsidebarHREF[offset] = thelist[i].href;
  20.         linkonsidebarTXT[offset] = thelist[i].innerHTML;
  21.       }
  22.     }
  23.   }
  24. }
  25. //]]>
  26. </script>

Bước 3. Tiếp theo, chúng ta cần phải gắn ID cho bài viết. Tìm đến đoạn code như sau:

  1. <b:includable id='post' var='post'>
  2.   <div class='post hentry'>

Thẻ <div class='post hentry'> (hoặc <div class='post'>) tạo lớp CSS chung cho toàn bộ bài viết, vậy để chuyên biệt hóa cho từng bài viết thì chúng ta cần gắn ID vào như sau:

  1. <div class='post' expr:id='&quot;post-&quot; + data:post.id'>

Sau đó tìm đến đoạn code tương tự như bên dưới và thêm vào phần được đánh dấu màu đỏ.

<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<script type='text/javascript'>displayLinks(&#39;<data:post.id/>&#39;);</script>

Lưu Template.

Bước 4. Vào Page Elements. Thêm một tiện ích HTML/Javascript và đặt vào nội dung tiện ích bằng đoạn code bên dưới. Có thể đặt tên cho tiện ích là Tham khảo cho bài đang đọc.

<style>
#reflinks { /* thêm thuộc tính CSS cho nội dung thẻ div */ }
#reflinks a {
/* thuộc tính cho link */
display: block;
list-style-type:decimal
}
#reflinks a:hover { /* hiệu ứng hover cho link */ }
</style>
<div id="reflinks">
<script type="text/javascript">
var strout = "";
// nếu có link hiển thị
if(linkonsidebarHREF.length>0){
// thì đọc danh sách
for(var i=0; i<linkonsidebarHREF.length; ++i) {
// và đặt cùng nhau trong mã HTML
strout += "<a href='" + linkonsidebarHREF[i] + "' target='_blank'>" + linkonsidebarTXT[i] + "</a>";
}
document.write(strout);
}
// nếu không có link hiển thị thì hiện thông báo chưa có tài liệu tham khảo
else {document.write('<b>Chưa có tài liệu nào</b>');
}
</script>
</div>
<div class='clear'></div>

Bước 5. Vào Edit HTML. Thao tác cuối cùng là chỉ hiển thị tiện ích HTML/Javascript vừa thêm ở các trang bài viết (item). Chọn Expand Widget Templates. Tìm đến ID của tiện ích HTML/Javascript nói trên (ví dụ ở đây có ID là HTML100) và thêm vào lệnh điều kiện (ở dòng 3 và dòng 11) như sau:

  1. <b:widget id='HTML100' locked='false' title='Tham khảo cho bài đang đọc' type='HTML'>
  2. <b:includable id='main'>
  3. <b:if cond='data:blog.pageType == &quot;item&quot;'>
  4.   <!-- only display title if it's non-empty -->
  5.   <b:if cond='data:title != &quot;&quot;'>
  6.     <h2 class='title'><data:title/></h2>
  7.   </b:if>
  8.   <div class='widget-content'>
  9.     <data:content/>
  10.   </div>
  11. </b:if>
  12. </b:includable>
  13. </b:widget>

Lưu Template.
Gắn ID cho các thành phần bài viết
More about

Tạo màu nền xen kẽ cho bài viết

Người đăng: buonkhongem on Chủ Nhật, 2 tháng 10, 2011

Lúc trước mình đã hướng dẫn các bạn cách gắn ID cho từng bài viết để từ đó tùy biến CSS riêng cho từng bài viết. Từ đây mình có thể giúp bạn sáng tạo thêm cách tạo màu nền xen kẽ cho bài viết khi duyệt xem các bài viết ở kiểu trang chủ và trang nhãn.

DEMO

Để thực hiện thủ thuật này, trước tiên bạn cần gắn ID cho bài viết.

Bước 1. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Expand Widget Templates. Tìm đến dòng code sau rồi thêm vào phần được đánh dấu màu đỏ:

<div class='post-body entry-content' expr:id='"post-" + data:post.id'>

Bước 2. Kế đến chúng ta sẽ viết một kịch bản gán màu nền cho các bài viết chẳn (evenPosts) và các bài viết lẻ (oddPosts), đặt đoạn code bên dưới vào trước thẻ </head>.

<script type='text/javascript'>
//<![CDATA[
function counterPosts(strx) {
var therest;
therest = PostsCounter % 2;
if (therest == 0)
document.getElementById(strx).className='evenPosts';
else
document.getElementById(strx).className='oddPosts';
}
//]]>
</script>
<style>
.oddPosts {background-color: #F0F8FF; padding: 10px;}
.evenPosts {background-color: #F0F0F9; padding: 10px;}
</style>

Bước 3. Tìm đến thẻ <b:includable id='main' var='top'>

Kéo thêm xuống vài dòng sẽ thấy dòng <b:loop values='data:posts' var='post'> rồi đặt trước nó bằng đoạn code bên dưới:

<script type='text/javascript'>var PostsCounter=0;</script> <!-- đếm từ Zero -->

Tiếp tục kéo xuống tìm thấy thẻ đóng </b:loop> của thẻ <b:loop values='data:posts' var='post'> rồi thêm trước nó bằng đoạn code bên dưới:

<b:if cond='data:blog.pageType != "item"'>
<!-- không thực thi chức năng này ở các trang đọc bài viết -->
<script type='text/javascript'>
PostsCounter=PostsCounter+1;
counterPosts(&#39;post-<data:post.id/>&#39;);
</script>
</b:if>

Toàn bộ đoạn code sau khi thêm vào sẽ trông giống như sau:

<b:includable id='main' var='top'>
.......
<script type='text/javascript'>var PostsCounter=0;</script> <!-- đếm từ Zero -->
<b:loop values='data:posts' var='post'>
.......
<b:if cond='data:blog.pageType != "item"'>
<!-- không thực thi chức năng này ở các trang đọc bài viết -->
<script type='text/javascript'>
PostsCounter=PostsCounter+1;
counterPosts(&#39;post-<data:post.id/>&#39;);
</script>
</b:if>
</b:loop>
.......
</b:includable>

Lưu Template là hoàn thành.
More about

Gắn ID riêng cho các thành phần trong bài viết

Người đăng: buonkhongem on Thứ Tư, 10 tháng 8, 2011

Cấu trúc một bài viết trên blogspot bao gồm tập hợp các lớp (class) và ID khác nhau và một khi chúng ta tạo các thuộc tính CSS cho các lớp và ID đó thì tất cả các bài viết trên blog đều có chung một định dạng. Vậy làm cách nào để có thể tùy biến CSS cho riêng từng (hoặc chỉ một số) bài viết vì trường hợp này cũng rất cần thiết cho một số tình huống khi bạn muốn tạo trang chuyên biệt có những định dạng khác biệt với những trang thông thường khác. Mấu chốt vấn đề là chúng ta cần tạo ID riêng cho mỗi bài viết, và một khi có ID riêng thì chúng ta có thể dễ dàng gán CSS riêng cho chúng.

Khi ở trạng thái đăng bài viết, nếu chú ý trên thanh địa chỉ cùa công cụ trình duyệt, hẳn bạn sẽ thấy nó trông giống như thế này:

http://www.blogger.com/post-edit.g?blogID=XXXXXXXXXXXXXXXXX
&postID=YYYYYYYYYYYYYYYYYYY

Trong đó YYYYYYYYYYYYYYYYYYY là chuỗi số ID của bài viết. Và chuỗi số này được thiết lập trong cấu trúc XML của Template dưới dạng như sau:
<b:includable id='post' var='post'>
<div class='post'> // (hoặc ở 1 số Template là thẻ <div class='post hentry uncustomized-post-template'>)
<a expr:name='data:post.id'/>
[.......]
Thẻ <div class='post'> tạo lớp CSS chung cho toàn bộ bài viết, vậy để chuyên biệt hóa cho từng bài viết thì chúng ta cần gắn ID vào như sau:
<div class='post' expr:id='"post-" + data:post.id'>
Khi định dạng CSS cho toàn bộ bài viết nào đó thì ta đặt thế này:
<style type='text/css '>
#post-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
</style>
Kế đến chúng ta gắn ID cho tiêu đề bài viết, như sau:
<b:includable id='post' var='post'>
<div class='post' expr:id='"post-" + data:post.id'>
<a expr:name='data:post.id'/>
<b:if cond='data:post.title'>
<h2 class='post-title' expr:id='"title-" + data:post.id'>
[.......]
Và thiết lập CSS cho tiêu đề bài viết riêng như bên dưới:
<style type='text/css '>
h2#title-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
</style>
Nếu muốn gắn ID cho phần ngày đăng bài viết thì tìm đến đoạn code này:
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'>
<data:post.dateHeader/>
</h2>
</b:if>
Và bắt đầu gắn lớp riêng cho tiêu đề bài viết bằng cách đổi nó trở thành:
<b:if cond='data:post.dateHeader'>
<h2 class='date-header' expr:id='"date-" + data:post.id'>
<data:post.dateHeader/>
</h2>
</b:if>
Rồi tạo CSS như sau:
<style type='text/css '>
h2#date-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
</style>
Và sau cùng, nếu muốn gắn ID cho phần footer của bài viết thì tìm đến đoạn code trông giống như sau:
<div class='post-footer'>
<p class='post-footer-line post-footer-line-1'> [.......] </p>
<p class='post-footer-line post-footer-line-2'> [.......] </p>
<p class='post-footer-line post-footer-line-3'> [.......] </p>
</div>
Rồi đổi thẻ <div class='post-footer'> trở thành:

<div class='post-footer' expr:id='"footer-" + data:post.id'>

Theo đó, định dạng CSS cho nó như sau:
<style type='text/css '>
div#footer-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
</style>
Tựu trung lại, gom hết các phần CSS ở trên như sau:
<style type='text/css '>
#post-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
h2#title-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
h2#date-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
div#footer-YYYYYYYYYYYYYYYYYYY {đặt các thuộc tính CSS vào đây}
</style>
Như vậy bằng cách gắn ID riêng biệt cho từng bài viết thông qua việc tận dụng định dạng PostID sẵn có của blogspot, giúp chúng ta dễ dàng tùy biến CSS cho từng bài viết, như màu nền, font chữ, màu chữ, cỡ chữ, kiểu chữ…; hơn nữa cũng là cách chúng ta hiểu sâu thêm về cấu trúc XML của Template, đồng thời nâng cao trình độ “kung fu blogspot” của bạn.
More about

Hiển thị ngày đăng bài viết dạng lịch xé

Người đăng: buonkhongem on Thứ Ba, 25 tháng 1, 2011

Blogger có phần cài đặt ngày đăng bài viết theo nhiều kiểu khác nhau. Có người thích hiển thị ngày đăng theo dạng như 26/01/2011, hoặc January 26, 2011. Một bộ phận blogger thích hiển thị ngày đăng theo dạng lịch xé (lịch block).

Một số blog nước ngoài đã giới thiệu một cách như vậy, như ở trang Bloggerdummies. Ở Việt Nam cũng có giới thiệu lại như trang Fandung.com hay trang Traidatmui.com.

Hôm nay tôi sẽ giới thiệu một cách khác cũng khá đơn giản để hiển thị ngày đăng bài viết theo dạng lịch xé để đáp ứng ý thích của một bộ phận blogger như vậy. Bạn có thể xem Demo hoặc hình minh họa bên dưới.



Để cài đặt, bạn hãy thực hiện như sau.

Bước 1. Đăng nhập Blogger, vào Settings (Cài đặt) >> Format (Định dạng). Tại mục Ngôn ngữ (Language), chọn Tiếng Anh (English), nhấn SAVE SETTINGS để lưu cài đặt. Sau đó ở mục Định dạng Tiêu đề ngày, chọn như hình bên dưới rồi nhấn lại SAVE SETTINGS để lưu cài đặt.



Bước 2. Vào Design (Thiết kế) >> Edit HTML, chọn Expand Widget Templates.

Đặt đoạn code CSS sau đây vào trước dòng ]]></b:skin>.

.post-date {
background-color:#99C68E;
float:left;
font-size:32px;
width:45px;
text-align:center;
color:#F87217;
font-style:italic;
}
.post-date p {
font-size:14px;
color:#1a63af;
padding-bottom:4px;
}

Bước 3. Tìm dòng <div class='post hentry'>

Nếu không có thì tìm dòng <div class='post uncustomized-post-template'>

Rồi đặt sau nó, với đoạn code bên dưới.

<div class='post-date'>
<script type='text/javascript'>
var timestamp = &quot;<data:post.dateHeader/>&quot;;
if (timestamp != &#39;&#39;) {
var timesplit = timestamp.split(&quot;,&quot;);
var date_yyyy = timesplit[2];
var timesplit = timesplit[1].split(&quot; &quot;);
var date_dd = timesplit[2];
var date_mmm = timesplit[1].substring(0, 3);
}
</script>
<script type='text/javascript'>document.write(date_dd);</script>
<p><script type='text/javascript'>document.write(date_mmm);</script></p>
</div>

Lưu Template là OK.
More about

Tạo chữ cái đầu tiên in hoa cho bài viết và nhận xét

Người đăng: buonkhongem on Thứ Ba, 21 tháng 12, 2010

Chúng ta đã biết cách tạo chữ cái đầu theo phong cách báo chí cho bài viết Blogger tại bài này. Hôm nay tôi xin giới thiệu một cách khác để tạo chữ cái đầu in hoa cho bài viết, cho phần nhận xét, và cho bất kỳ một đoạn văn bản nào đó một cách tự động.

Xem Demo dưới đây.


Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu. Đây là đoạn văn mẫu.

Để làm được điều này, bạn hãy thực hiện theo các bước sau đây.

Bước 1. Đăng nhập Blogger vào Design >> Edit HTML chọn Expand Widget Templates.

Đặt đoạn code CSS sau đây vào trước dòng]]></b:skin>.

.capital:first-letter {
float:left;
display:block;
font-family:"times new roman";
font-size:3em;
color:#990000;
margin:0px 5px 0 0;
padding:0 0 0 10px;
}

Bạn có điều chỉnh font-family và font-size theo ý muốn của mình.

Lưu Template.

Bước 2. Nếu bạn muốn hiển thị chữ cái in hoa đầu tiên cho toàn bài viết thì trong Template tìm dòng <p><data:post.body</p> rồi thay nó thành <p class="capital"><data:post.body</p>

Hoặc dòng <data:post.body/> rồi thay nó thành <span class="capital"><data:post.body/></span>.

Nếu bạn muốn hiển thị chữ cái in hoa đầu tiên cho phần nhận xét thì tìm dòng <data:comment.body/> rồi thay nó thành <p class="capital"><data:comment.body/></p>

Nếu bạn muốn hiển thị chữ cái in hoa đầu tiên cho một đoạn văn bản nào đó thì định dạng cấu trúc HTML như sau.

<p class="capital">Đoạn văn muốn tạo chữ cái in hoa đầu tiên</p>
Hoặc
<div class="capital">Đoạn văn muốn tạo chữ cái in hoa đầu tiên</div>

More about

Tạo chữ cái đầu theo kiểu báo chí trong bài đăng Blogger

Người đăng: buonkhongem on Thứ Năm, 14 tháng 10, 2010

Trong các bài viết báo chí, chữ cái đầu tiên thường có kích cỡ to hơn nhiều so với các chữ cái khác trong toàn bộ bài viết.

Bạn cũng có thể thực hiện điều này trên Blogger bằng vài thao tác đơn giản như sau:
Bước 1: Đến mục Chỉnh sửa HMTL (Edit HTML) và tìm đoạn mã ]]></b:skin> (dùng tổ hợp phím Ctrl + F để tìm cho nhanh) và chèn đoạn mã bên dưới trước nó.

.newspaper {
float:left;
color:#000;
background:#fff;
line-height:80px;
padding-:1px 5px 0 0;
font-family:times;
font-size:100px;
}

Bạn có thể điều chỉnh font-size và line-height cùng color trong đoạn mã trên sao cho tương thích với kích cỡ và màu sắc của chữ cái đầu mà bạn muốn hiển thị trong bài viết của mình.

Xong rồi, bạn chỉ việc lưu Template (LƯU MẪU).

Bước 2: Đến mục Cài đặt (Setings) – Định dạng (Formatting) – Mẫu Bài đăng (Post template) rồi thêm đoạn mã bên dưới vào đó rồi lưu lại.

<span class="newspaper">First Alphabet</span>

Mỗi khi bạn bắt đầu một bài đăng mới thì bạn sẽ thấy đoạn mã mặc định trên xuất hiện ở phần chỉnh sửa Html (Edit Html) trên công cụ đăng bài viết và từ đó bạn có thể đặt chữ cái đầu tiên trong bài viết thay vào vị trí First Alphabet.

Hoặc có thể thêm đoạn mã trên vào công cụ đăng bài mỗi trên bắt đầu một bài đăng bất kỳ.
More about