Tuesday, July 8, 2008

Đặt code trong khung trên bài viết của Blogger

Đăng ký dịch vụ lưu trữ đám mây: Dropbox, Mediafire, OneDrive. Sau khi đăng ký xong, cài đặt phần mềm cho Windows hoặc ứng dụng điện thoại - máy tính bảng để đồng bộ dữ liệu.

Theo yêu cầu của anh Thắng, tôi viết hướng dẫn này chia sẻ một trong những cách đơn giản nhưng không kém chuyên nghiệp để đặt code nằm trên khung trong bài đăng của Blogger. Với cách làm này đoạn mã hiển thị sẽ trông dễ nhìn hơn và người đọc dễ sao chép khi muốn sử dụng.

CSS điều khiển thuộc tính khung hiện code:

Để hiển thị code bạn cần đặt chúng giữa hai thẻ mở <pre> và đóng </pre> trong bài viết của mình. Muốn đẹp hơn bạn có thể thêm khung bằng cách sử dụng các thuộc tính về màu chữ, màu nền, font chữ, đường viền, kích thước rộng và cao, thanh trượt, cách viền ... bằng cách thêm code CSS vào thẻ mở, ví dụ: <pre style="color: #333333; background: #999999; width: 100%; height: 50px; overflow: auto; padding: 10px;">.

Một cách chuyên nghiệp hơn chúng ta sẽ tạo ra một class mới và đặt chúng vào CSS của template (đặt vào bất kỳ vị trí nào giữa hai thẻ <b:skin><![CDATA[/*]]></b:skin> ). Việc làm này sẽ giúp bạn sử dụng khung hiển thị code thống nhất ở tất cả các bài viết có dùng khung và dễ chỉnh sửa thuộc tính khi muốn thay đổi. Ví dụ ở đây tôi tạo ra lớp pre-formatting có CSS như sau:
.pre-formatting{
color: #333333;
background: #999999;
border: 2px solid #999999;
overflow: auto;
font-family: "Tahoma", Tahoma;
padding: 10px;
}

Đương nhiên trong template nên bạn có thể sử dụng các biến lấy giá trị cho từng thuộc tính đã được định nghĩa trước đó. Ví dụ:
.pre-formatting{
color: $textcolor;
background: $bgcolor;
border: 2px solid $bordercolor;
overflow: auto;
font: $headerfont;
padding: 10px;
}

Cách sử dụng:

Để code xuất hiện mang thuộc tính của CSS đã lưu trước đó chúng ta sẽ sử dụng chế độ HTML để soạn bài và đặt code như sau:

<pre style="height: 100px;" class="pre-formatting">Code</pre>

Câu hỏi đặt ra ở đây là chúng ta đã dùng class pre-formatting, vậy tại sao phải thêm CSS điều khiển height (chiều cao của khung), có dư thừa chăng? Câu trả lời phụ thuộc vào đoạn code mà bạn dùng. Nếu đoạn code đó ngắn bạn chọn giá trị chiều cao khung nhỏ và ngược lại, không nhất thiết phải thêm vào CSS của template vì chúng ta không biết trước đoạn code mỗi lần dùng. Không dư thừa chút nào!

Cũng xin lưu ý bạn phải chuyển đổi các ký tự đặc biệt thành mã HTML (ví dụ: < thành &lt;> thành &gt;) trước khi đặt giữa hai thẻ trên. Và mách nhỏ hãy lưu đoạn code đó vào Post Template (Mẫu đăng bài) trong Settings (Cài đặt) | Formatting (Đang định dạng) để không cần phải gõ mỗi lần dùng.

CẬP NHẬT:

Tôi vừa biết thêm một cách chuyên nghiệp hơn và đơn giản hơn vì không phải ước lượng height cho đoạn code bạn dùng.

Bạn cũng thêm một đoạn CSS điều khiển hiển thị code như trên nhưng để chúng đi kèm thẻ pre hoặc code:
pre, code{
color: $textcolor;
background: $bgcolor;
border: 2px solid $bordercolor;
overflow: auto;
font: $headerfont;
padding: 10px;
}

Khi sử dụng trong post chúng ta sẽ đặt code theo một trong hai cách:
<pre>
... code ...
</pre>

Hoặc:
<code>
... code ...
</code>

Với cách này người ta có thể dùng hình ảnh đánh số thứ tự làm nền để đoạn code hiển thị trông đẹp hơn. Bạn có thể chép đoạn code sau mà tôi đang dùng cho template của mình.
pre, code {
display:block;
font: 1em 'Courier New', Fixed, monospace;
font-size : 100%;
color: #666666;
background : #fff url(http://img178.imageshack.us/img178/1307/prepb3.jpg) no-repeat left top;
overflow : auto;
text-align:left;
border : 1px solid #99cc66;
padding : 0px 20px 0 30px;
margin:1em 0 1em 0;
line-height:17px;
}

Tham gia Cộng đồng sử dụng Blogger Việt Nam trên Facebook, giải đáp thắc mắc, mẹo vặt, chia sẻ kinh nghiệm sử dụng Blogger (BlogSpot)...

53 comments:

  1. Thật tuyệt vời, xin cảm ơn anh Nhân đã nhiệt tâm đáp ứng lời yêu cầu của cộng đồng. Tôi cũng xin phép dịch bài này ra tiếng Anh để viết lại trên blog của tôi (dĩ nhiên là có link dẫn ngay tới bài viết gốc này).

    ReplyDelete
  2. Những bài viết của anh Nhân rất bổ ích. Tiện đây, em cũng xin bon chen 1 chút :p. Hiện nay Windows có cung cấp chương trình Windows Live Writer, đây là 1 chương trình tiện ích cho các blogger. Mong anh sẽ có 1 bài viết giới thiệu về Windows Live Writer tới các bạn đọc. Cám ơn anh nhiều và chúc anh luôn vui.

    ReplyDelete
  3. Phải đấy, tôi cũng đã dùng qua Windows Live Write lúc trước để đổi dấu của HTML code trước khi post lên trang web của mình.
    Viết 1 bài về nó đi anh Nhân

    ReplyDelete
  4. em mới lập blog nên những thủ thuật anh nói ở đây em mù tịt. hiện nay em chỉ muốn hỏi anh một câu thôi. khi mà mình post 1 bài lên thì bài đó luôn ở trong một khung khác màu với màn hình nền, em rất muốn xóa cái khung đó đi mà cho nó hiện ra thẳng màn hình thì phải làm sao ạ? em rất muốn biết. mong anh vui lòng giúp đỡ.

    ReplyDelete
  5. @Step², cách làm của em rất hay và chuyên nghiệp. Cám ơn em nhé!

    @Thao Nguyen, Thang Le, cám ơn bạn Thảo Nguyên và anh Thắng. Công cụ Windows Live Writer hỗ trợ cập nhật bài viết cho nhiều nền blog khác nhau rất hay, hy vọng một ngày nào đó sẽ tập hợp hết các công cụ post bài như vậy trong một bài viết. Chúc bạn và anh khỏe.

    ReplyDelete
  6. Cám ơn rất nhìu .( Tiểu Thư)

    ReplyDelete
  7. tại sao tôi đặt code quảng cáo của google vào post template mà nó lại ko xuất hiện . !

    ReplyDelete
  8. @Han Doi Vo Doi, không biết bạn đang nói đến đặt code của chương trình quảng cáo nào? Nếu đó là Google AdSense hoặc nhiều loại cách quảng cáo khác bạn có thể xem cách đặt code tương tự như hướng dẫn này.

    ReplyDelete
  9. Em không rành về CSS( chỉ mới học qua C,C++ thôi). Em thấy Notepad++ có chức năng tô màu các từ khóa. Bây giờ em muốn hiển thị code dạng đó phải làm như thế nào? Email của em là minhtam.seta@gmail.com

    ReplyDelete
  10. Em là người mù trời đanh về tin học nhưng khi đọc bài của anh, em rất thích.Em chẳng hiểu CSS là cái gì và cách làm ra sao...em cũng mới tập tành làm blog, nhìn các blog khác mà thèm, còn mình thì chẳng biết gì về kỹ thuật. Buồn lắm anh à.
    Anh Hai tốt bụng ơi! anh giúp cưng với!Anh có thế hướng dẫn làm cách làm cụ thể và dễ hiểu.
    " Em muốn tải một clip video lên blog của mình' , em làm theo cách hướng dẫn của các anh chị blog khác là copy code của clip mình muốn tải vào nội dung của phần blog, chọ HTLM sau đó dán vào, rồi tắt HTLM đi là ok. Nhưng em làm hoài, chẳng có kết quả như ý muốn.
    À, anh ơi! HTLM có nghĩa gì vậy?
    Để Tải và sử dụng được một clip lên blog, thì bản thân blog đó có đủ các điều kiện gì? các trình duyệt gì? các file gì hỗ trợ? và cách cài nó như thế nào? cài trong ổ đĩa C hay cài nó ở đâu, anh làm ơn hướng dẫn thật kỹ cho cưng có được không? Hãy giúp em nhé, em vô cùng cảm ơn!
    Email của em là : Banchantinh21@yahoo.com.vn
    Rất mong nhận được thư hồi đáp của anh càng sớm càng tốt.Em mong và chờ anh từng giây, từng phút.
    Em gái dễ thương!
    Kính bút!

    ReplyDelete
  11. @tinhyeutheky2121, trên blog anh có một số bài viết về CSS, nói chung cái nào đụng đến chỉnh sửa xuất hiện hầu hết đều phải thông qua CSS.

    Cách đưa video lên blog em có thể tham khảo ở đây.

    Nếu dùng cho Blogger thì có thể dùng bất kỳ mã nhúng nào, trong trường hợp em dùng cho Yahoo! 360 Plus, thì hiện thời chỉ có thể chèn code nhúng của YouTube lên blog mình.

    Em cần đăng ký tài khoản ở YouTube.com, rồi upload video lên đó. Sau đó copy mã nhúng và bật chế độ HTML để dán code vào trình soạn thảo blog của em (đang nói đến Yahoo!360 plus), sau đó tắt chế độ này và tiếp tục soạn entry rồi đăng thôi.

    Em thông cảm anh không gửi hồi đáp cho em vào mail được, vì rất nhiều yêu cầu cần giúp đỡ trong khi anh đánh ra đây biết đâu mọi người gặp trường hợp tương tự như em có thể đọc gợi ý này mà có cách giải quyết.

    Chúc em luôn vui nhé em gái dễ thương. Nếu em ở Sài Gòn, rãnh rủ anh đi coffee nhé!!!

    ReplyDelete
  12. oh, cái này đơn giản mà hiệu quả, thanks

    ngcuongtruc@gmail.com

    ReplyDelete
  13. nhiều bài viết có độ height khác nhau thế có thể đặt auto cho nó tự động đóng khung sát với code trong bài viết được không vậy,nếu được thì làm thế nào mong anh chỉ giúp

    ReplyDelete
  14. @Anonymous, mình đã cập nhật một cách hiệu quả hơn. Đọc ở phần Cập nhật nhé!

    ReplyDelete
  15. tôi đã add code theo hướng đãn nhưng khi tôi viết blog có thêm 1 đoạn code thì nó không hiện code dạn HTML mà nó chạy code trực tiếp luôn

    ReplyDelete
  16. @techinfor, bạn chưa đọc kỹ lưu ý trên rồi.

    Bạn phải chuyển đổi các ký tự đặc biệt thành mã HTML trước khi đặt vào các thẻ hiện code.

    ReplyDelete
  17. Cho hỏi làm sao để chuyển các ký tự đặt biệt thành mã HTML ,chẵng lẽ phải dùng thêm 1 tools nữa để chuyển sao .Bạn có thể VD cụ thể được không thank

    ReplyDelete
  18. @Techinfor, thường thì trong một đoạn code chúng ta chỉ cần chuyển đổi < và > là đủ.

    Bạn có thể tham khảo một số công cụ chuyển đổi trực tuyến bằng cách tìm trên bạn. Ví dụ ở địa chỉ này.

    ReplyDelete
  19. Mình có một cách khác, đó là dùng SyntaxHighlighter
    Mình đã thử và post lên blog rồi, xin mọi người góp ý. Xem thử tại đây

    ReplyDelete
  20. Cách này hơi rắc rồi một chút nhưng em thấy rất hay.

    ReplyDelete
  21. Anh ơi, nếuu mà cho thêm vài cái demo thì sẽ dễ hiểu hơn đó, đa phần tụi em toàn dân amateur hem à, xin lỗi đã làm fiền anh.
    Thân mến,

    ReplyDelete
  22. @Án Bình Trọng, đó cũng là một cách hay. Cám ơn đã chia sẻ.

    @Mi5singU, các hướng dẫn đều viết từng bước một, chú ý một chút em có thể sử dụng được.

    ReplyDelete
  23. hihi.. A noi thi nghe don gian , nhg khi Tieu Thu lam thi nhu dang gion do A2 ah ko don gian chuc nao het , Anyway thi TT cung dang tap tanhlam Blog ne ,neu co gi thec mec xin A 2 giai dap dum nha , Thanks ...

    ReplyDelete
  24. Em mới có 1 bài viết về việc đặt code trong khung , tương đối đẹp , mời các bạn blogger xem thử tại đây
    Làm sao để đặt code trong một khung độc đáo trên blog ?

    ReplyDelete
  25. Bai viet rat chitiet, cam on nghe, rat tiec la blogviet.info lai chuyen sang dung WP mat roi,nhung cung nen co cai backup vay :-)

    ReplyDelete
  26. You can customize your code by seeing my entry here: http://prlamnguyen.blogspot.com/2008/10/5-useful-tools-to-convert-your-entire.html

    ReplyDelete
  27. cam on nhieu anh làm như vậy hay đó

    ReplyDelete
  28. xin giúp mình với! mình đang cần làm "next page",
    hay cho dễ hiểu là làm "1,2,3....next page"
    như thế đó mà mình tìm wài trên web chẳng có tài liệu nào hướng dẫn,xin giúp mình với
    nick YH mình là zendersto
    bạn mở 1 topic hướng dẫn làm next page dc ko ?
    cám ơn nhiều lắm

    ReplyDelete
  29. Chào anh !
    Anh cho em hỏi : Trên blog của em không hiểu sao khi em đưa một số đoạn code của một số tiện ích lên, thì nó lại hiện cái tiện ích đó mà không hiện đoạn code đó, mặc dù em đã đặt đoạn code đó vào trong khung.

    ReplyDelete
  30. Mình cũng giống Diepnguyen, ví dụ Muốn hiện ra 1 đoan code là img....../img thì nó lại hiện ra 1 bức ảnh :((
    Giúp em với, thx anh nhé :D

    ReplyDelete
  31. Cám ơn những chỉ dân bổ ích, cụ thể. Bạn có cách nào trạo ra các Đè mục nằm ngang trên Blog như bạn đã thiết kế được không? Ví dụ nó sẽ gồm các mục: Trang chính, Thơ, Văn, Quê hương, Gia đình, Liên hệ

    ReplyDelete
  32. cái nỳ ko hay cho lắm

    ReplyDelete
  33. làm sao để blog không bị người lạ xem hử pà kon? sos

    ReplyDelete
  34. Anh chỉ cho em cách sử dụng công thức Mathtipe để soạn thảo trong việc dăng bằng trên blog với.cảm ơn anh.

    ReplyDelete
  35. Minh rất thích bài viết này , Nó giúp giảm sự đơn điệu của blog . Nhìn blog trông chuyên nghiệp hơn hẳn ..

    --------------------------------------------------
    www.ketnoionline.biz - nơi trình diễn khoe tài của các website & Blog

    ReplyDelete
  36. anh ơi cho hỏi, sao em chèn code của anh vào thì nó hiện ra khung nhưng nếu gặp những đoạn link hay hay câu dài thì nó tự động xuống dòng mà ko có thanh trượt sang ngang như của anh

    ReplyDelete
  37. có ai hướng dẫn dùm mình cài latex vào blogspot không? mình muốn đánh kí hiệu toán vào blog mình

    ReplyDelete
  38. Chân thành cảm ơn bạn về bài viết...mấy ngày nay mày mò về blogsopt..may mà đọc đc những bài viết thế này^^

    ReplyDelete
  39. Những bài viết của anh Nhân rất hữu ích và dể thực hiện.Cám ơn và chúc anh vui !

    ReplyDelete
  40. E la newbie. Anh lam on cho em hoi cach nao de khi click vao link lien ket trong bai poat tren blogger of em thi` no se tu dong mo 1 tab hay 1 windown moi vay anh ? Lam on giup em. Em cam on anh nhiu` !

    ReplyDelete
  41. Cho mình hỏi là có thể sử dụng SyntaxHighlighter cho Blogger được không? Mình đã thử nhưng không thể thành công, nếu có thể, mong thuthuatblog hướng dẫn! Thanks

    ReplyDelete
  42. mình thấy rất thích chủ đề này nhưng mình chẳng hiểu lắm về cách làm

    ReplyDelete
  43. cac ban oi.ai bit chen nhac nen vao blog noi cho to voi ,cam on truoc nha

    ReplyDelete
  44. Ai chỉ cho tui cách vô hiệu lệnh HTML cái !

    ReplyDelete
  45. em ko hiểu copy xong rùi cho vào đâu ak. mong a chỉ giáo e với :)

    ReplyDelete
  46. Cảm ơn anh đã chia sẻ thủ thuật em đã làm được rồi
    Mời ảnh ghé thăm blog của em : Thuthuatcode

    ReplyDelete
  47. Chào cả nhà! Cho em hỏi làm sao tạo mục đăng kí thành viên được! Chỉ em với. Mail dùm em qua: kiet_lytuankiet91@yahoo.com.vn nha! cúm ơn nhiều!

    ReplyDelete
  48. Chao cả nhà! Em muốn sửa lại kích thước của trang post bài viết thì phải làm thế nào (chẳng là trong bài viết của em có cái bảng mà chiều rộng thì to, nên kích thước trang post làm sao phải rộng ra để chứa được hết cái bảng đó)

    ReplyDelete
  49. Chỉ cần thêm min-height:20px vào được. Nếu code block dài quá 20px sẽ tự điều chỉnh. Thân !

    ReplyDelete

Cám ơn đã đọc bài viết. Bạn có thắc mắc, gợi ý hoặc bình luận xin chia sẻ bên dưới. Hãy viết bằng tiếng Việt có dấu để mọi người dễ đọc hơn. Xin đừng spam!

Do gần đây nhận rất nhiều spam bán thuốc từ nước ngoài, tạm thời để bình luận bạn bắt buộc phải có tài khoản OpenID hoặc Google. Chức năng này sẽ được khôi phục khi trình trạng spam được cải thiện. Xin lỗi về sự bất tiện này.