rb2html サンプル

どこ (何) に色を付けるかは設定ファイルで変更できます。

Ruby

Ruby
[POPUP]
  1. =begin
  2. Rubyスクリプトのサンプル
  3. リテラル(数値、文字列、配列、シンボル、正規表現)、キーワード、コメント
  4. =end
  5. def hoge
  6. print <<EOF, <<'EOF'
  7. hoge # hoge
  8. EOF
  9. foo # bar # baz
  10. EOF
  11. %w(1 2 3).each {|s| print s}
  12. while line = gets
  13. break if line =~ /end/
  14. end
  15. p 123.5, :[]=, %r!foo!, %s(sym)
  16. end
  17. #main
  18. hoge()

ERB (eRuby)

rb2html.rbに-x htmlオプションを与えて。

erb_sample.erb
   1| #!/usr/bin/erb
   2| <body>
   3| <p>行番号なし。
   4| <% require 'rb2html/factory' %>
   5| <%= Rb2HTML::Factory.format 'ruby', <<EOF, :lineno=>false
   6| def n(v); p v; end
   7| EOF
   8|   %>
   9| 
  10| <p>行番号あり。:linenoを省略すると1から開始。
  11| <%= Rb2HTML::Factory.format 'ruby', <<EOF, :lineno=>21
  12| require 'foo'
  13| class Foo
  14| end
  15| EOF
  16|   %>
  17| 
  18| <p>あらかじめ整形オブジェクトを作っておく。
  19| <% pyf = Rb2HTML::Factory.get_formatter 'python' %>
  20| <%= pyf.format_code <<EOF, false
  21| import os
  22| filename = os.environ.get('PYTHONSTARTUP')
  23| if filename and os.path.isfile(filename):
  24|     execfile(filename)
  25| EOF
  26| %>
  27| </body>

Java

Java
[POPUP]
  1. /*
  2. Javaソースのサンプル
  3. */
  4. import java.awt.Graphics;
  5. import java.awt.Frame;
  6. import java.awt.event.WindowAdapter;
  7. import java.awt.event.WindowEvent;
  8. import java.applet.Applet;
  9. public class Hoge extends Applet {
  10. public void paint(Graphics g) {
  11. g.drawString("はろーわーるど", 25, 50);
  12. g.drawString("Javaバージョン: "
  13. + System.getProperty("java.version"), 25, 70);
  14. }
  15. public static void main(String[] args) { // アプリケーションとしても使えるようにする
  16. Frame f = new Frame("Hoge");
  17. f.add(new Hoge());
  18. f.setSize(200, 150);
  19. f.addWindowListener(new WindowAdapter() {
  20. public void windowClosing(WindowEvent e) {
  21. System.exit(0);
  22. }});
  23. f.setVisible(true);
  24. }
  25. }

アノテーションを定義してみる。

MyAnno.java
   1| // -*- coding:utf-8 -*-
   2| // カスタムアノテーションのサンプル
   3| 
   4| @interface _inP {}
   5| 
   6| public class MyAnno {
   7|     @_inP
   8|     public void calc() {}
   9| }

(2008.3.29追加)
ジェネリクス (Generics) のサンプル

Java
[POPUP]
  1. import java.util.LinkedList;
  2. import java.util.List;
  3. class GenericsSample {
  4. public static void main(String[] args) {
  5. List<LinkedList<String>> list = new LinkedList<LinkedList<String>>();
  6. for (int i = 0; i < args.length; i++) {
  7. LinkedList<String> l2 = new LinkedList<String>();
  8. l2.add(args[i]);
  9. list.add(l2);
  10. }
  11. for (int i = 0; i < list.size(); i++) {
  12. String text = list.get(i).get(0);
  13. System.out.println(text);
  14. }
  15. }
  16. }

JavaScript

proto.js
   1| 
   2| // prototype.jsから
   3| 
   4| function $(element) {
   5|   if (arguments.length > 1) {
   6|     for (var i = 0, elements = [], length = arguments.length; i < length; i++)
   7|       elements.push($(arguments[i]));
   8|     return elements;
   9|   }
  10|   if (typeof element == 'string')
  11|     element = document.getElementById(element);
  12|   return Element.extend(element);
  13| }

Haskell

Haskellは演算子のつづりを自分で定義できる。

Haskell
[POPUP]
  1. -- ふつうのHaskell p.182
  2. {-コメントは{-ネストする。-}まだコメント-}
  3. (/$$/)::Float -> Float -> Float
  4. (/$$/) x y = x + y
  5. main = do
  6. print $ 5.3 /$$/ 4.5

C++ / Objective-C

C
[POPUP]
  1. /*
  2. C++ソースのサンプル
  3. */
  4. #include <stdio.h> // printf
  5. class Hoge {
  6. public:
  7. virtual void p() = 0;
  8. };
  9. class HogeHoge: public Hoge {
  10. public:
  11. virtual void p() { printf("hogehoge\n"); }
  12. };
  13. int main(int argc, char* argv[])
  14. {
  15. Hoge* h = new HogeHoge();
  16. h->p();
  17. delete h;
  18. return 0;
  19. }

Python

Python
[POPUP]
  1. # -*- coding:utf-8 -*-
  2. x = int( input("数字>>> ") )
  3. if x > 5:
  4. print("入力された数字は5より大きい。")

HTML / XML

HTML
[POPUP]
  1. <html>
  2. <div class="fuga">...</div>
  3. </html>

CSS

CSS
[POPUP]
  1. div.source {
  2. background-color:#f2e8ec; /* IE対策. 行番号の背景色 */
  3. font-size:10pt;
  4. margin-bottom:1em;
  5. }