wiki2htmlはlivedoor wikiのような記法で書かれた テキストファイルをHTMLに変換するツールです。以下の方針に従って開発しています。
- できるだけ多くのエラーを発見する
- 設定ファイルによる記法の変更可能性
- HTMLが生成されるまでの時間は遅くない
commit 917538814d304a01b750db8c84d3fe0e08c9e435 | |
Author: noriaki watanabe <nabeyang@gmail.com> | |
Date: Thu Mar 22 09:12:22 2012 +0900 | |
initial commit | |
diff --git a/src/unit.rb b/src/unit.rb | |
new file mode 100644 | |
index 0000000..e69de29 |
wiki2htmlはlivedoor wikiのような記法で書かれた テキストファイルをHTMLに変換するツールです。以下の方針に従って開発しています。
module Concern | |
def self.extended(base) | |
base.instance_variable_set("@dependencies", []) | |
end | |
def append_features(base) | |
if base.instance_variable_defined?("@dependencies") | |
base.instance_variable_get("@dependencies") << self | |
else | |
super | |
@dependencies.each {|dep| base.send(:include, dep)} |
class Class | |
def class_attribute name | |
class_eval <<-RUBY, __FILE__, __LINE__ + 1 | |
def self.#{name}() nil end | |
def self.#{name}=(val) | |
singleton_class.class_eval { | |
undef_method :#{name} | |
define_method(:#{name}) { val } | |
} | |
val |
require 'erb' | |
class ERB | |
def self.call(source) | |
new(source, nil, nil, '@output_buffer').src | |
end | |
end | |
class Template | |
def initialize(source, path) | |
@path = path | |
@source = source |
class Node | |
attr_reader :before, :after, :name | |
def initialize(name, config) | |
@name = name | |
@before = config[:before] | |
@before = config[:after] | |
end | |
def to_s | |
@name | |
end |
require './hello_rack' | |
run HelloRack.new |
module Configurable | |
def instance | |
@instance ||= new | |
end | |
def method_missing(*args, &block) | |
instance.send(*args, &block) | |
end | |
end | |
class C | |
extend Configurable |
require './static' | |
class Application | |
class << self | |
def instance | |
@instance ||= new | |
end | |
def method_missing(*args, &block) | |
instance.send(*args, &block) | |
end | |
end |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" > | |
<title>xhr2 test</title> | |
<body> | |
<textarea id="response"></textarea> | |
<button id="send">send</button> | |
<script> | |
var txtArea = document.getElementById('response'); | |
document.getElementById('send').addEventListener('click', function(e) { |