tdiary 3.2.2.20130507
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +16 -0
- data/.travis.yml +29 -0
- data/Capfile +2 -0
- data/ChangeLog +3173 -0
- data/Gemfile +58 -0
- data/Gemfile.lock +201 -0
- data/LICENSE +340 -0
- data/Procfile +1 -0
- data/README.md +33 -0
- data/Rakefile +26 -0
- data/bin/tdiary +7 -0
- data/config.ru +61 -0
- data/data/.htaccess +2 -0
- data/doc/HOWTO-authenticate-in-rack.md +89 -0
- data/doc/HOWTO-make-io.md +305 -0
- data/doc/HOWTO-make-plugin.md +279 -0
- data/doc/HOWTO-make-theme.md +67 -0
- data/doc/HOWTO-testing-tDiary.md +44 -0
- data/doc/HOWTO-use-plugin.md +148 -0
- data/doc/HOWTO-write-tDiary.en.md +131 -0
- data/doc/HOWTO-write-tDiary.md +136 -0
- data/doc/INSTALL-paas.md +202 -0
- data/doc/INSTALL.md +160 -0
- data/doc/README.en.md +174 -0
- data/doc/README.md +56 -0
- data/doc/UPGRADE.md +164 -0
- data/doc/doc.css +115 -0
- data/dot.htaccess +27 -0
- data/index.fcgi +45 -0
- data/index.rb +57 -0
- data/js/00default.js +60 -0
- data/js/01conf.js +62 -0
- data/js/02edit.coffee +5 -0
- data/js/02edit.js +15 -0
- data/js/amazon.js +43 -0
- data/js/calendar3.js +130 -0
- data/js/caretposition.js +170 -0
- data/js/category.js +29 -0
- data/js/category_autocomplete.js +96 -0
- data/js/comment_ajax.js +27 -0
- data/js/draft.js +149 -0
- data/js/highlight.js +36 -0
- data/js/image.js +181 -0
- data/misc/convert2.rb +123 -0
- data/misc/filter/antispamservice.rb +101 -0
- data/misc/filter/limitdays.rb +40 -0
- data/misc/filter/linkcheck.rb +81 -0
- data/misc/filter/plugin/antispamservice.rb +82 -0
- data/misc/filter/plugin/en/antispamservice.rb +21 -0
- data/misc/filter/plugin/ja/antispamservice.rb +20 -0
- data/misc/lib/README +4 -0
- data/misc/lib/compatible.rb +1 -0
- data/misc/lib/fcgi_patch.rb +90 -0
- data/misc/migrate.rb +157 -0
- data/misc/paas/cloudfoundry/Gemfile +26 -0
- data/misc/paas/cloudfoundry/Gemfile.lock +85 -0
- data/misc/paas/heroku/Gemfile +22 -0
- data/misc/paas/heroku/Gemfile.lock +85 -0
- data/misc/paas/sqale/Gemfile +19 -0
- data/misc/paas/sqale/Gemfile.lock +85 -0
- data/misc/paas/sqale/Procfile +1 -0
- data/misc/paas/sqale/dot.env +1 -0
- data/misc/plugin/ChangeLog.DO_NOT_UPDATE +2333 -0
- data/misc/plugin/a.rb +211 -0
- data/misc/plugin/amazon.rb +403 -0
- data/misc/plugin/amazon/README.en +17 -0
- data/misc/plugin/amazon/README.ja +29 -0
- data/misc/plugin/amazon/amazonimg.rb +113 -0
- data/misc/plugin/amazon/large.png +0 -0
- data/misc/plugin/amazon/medium.png +0 -0
- data/misc/plugin/amazon/small.png +0 -0
- data/misc/plugin/append-css.rb +51 -0
- data/misc/plugin/bq.rb +48 -0
- data/misc/plugin/calendar2.rb +184 -0
- data/misc/plugin/calendar3.rb +256 -0
- data/misc/plugin/category.rb +779 -0
- data/misc/plugin/category_autocomplete.rb +33 -0
- data/misc/plugin/comment_ajax.rb +11 -0
- data/misc/plugin/comment_mail-qmail.rb +57 -0
- data/misc/plugin/comment_mail-sendmail.rb +56 -0
- data/misc/plugin/comment_mail-smtp.rb +59 -0
- data/misc/plugin/comment_rank.rb +36 -0
- data/misc/plugin/counter.rb +631 -0
- data/misc/plugin/daily_theme.rb +55 -0
- data/misc/plugin/disp_referrer.rb +1486 -0
- data/misc/plugin/doctype-html401tr.rb +16 -0
- data/misc/plugin/draft.rb +20 -0
- data/misc/plugin/dropdown_calendar.rb +32 -0
- data/misc/plugin/edit_today.rb +50 -0
- data/misc/plugin/en/a.rb +10 -0
- data/misc/plugin/en/amazon.rb +71 -0
- data/misc/plugin/en/append-css.rb +17 -0
- data/misc/plugin/en/bq.rb +12 -0
- data/misc/plugin/en/calendar2.rb +12 -0
- data/misc/plugin/en/category.rb +204 -0
- data/misc/plugin/en/counter.rb +48 -0
- data/misc/plugin/en/daily_theme.rb +14 -0
- data/misc/plugin/en/disp_referrer.rb +387 -0
- data/misc/plugin/en/dropdown_calendar.rb +14 -0
- data/misc/plugin/en/edit_today.rb +22 -0
- data/misc/plugin/en/hide-mail-field.rb +19 -0
- data/misc/plugin/en/highlight.rb +29 -0
- data/misc/plugin/en/image.rb +54 -0
- data/misc/plugin/en/kw.rb +22 -0
- data/misc/plugin/en/makerss.rb +47 -0
- data/misc/plugin/en/pb-show.rb +21 -0
- data/misc/plugin/en/ping.rb +16 -0
- data/misc/plugin/en/recent_comment.rb +44 -0
- data/misc/plugin/en/recent_comment3.rb +56 -0
- data/misc/plugin/en/recent_rss.rb +33 -0
- data/misc/plugin/en/referer_scheme.rb +48 -0
- data/misc/plugin/en/search_control.rb +74 -0
- data/misc/plugin/en/search_form.rb +22 -0
- data/misc/plugin/en/speed_comment.rb +19 -0
- data/misc/plugin/en/tb-show.rb +37 -0
- data/misc/plugin/en/todo.rb +43 -0
- data/misc/plugin/en/weather.rb +185 -0
- data/misc/plugin/en/xmlrpc.rb +14 -0
- data/misc/plugin/footnote.rb +92 -0
- data/misc/plugin/gradation.rb +39 -0
- data/misc/plugin/gradient.rb +36 -0
- data/misc/plugin/hide-mail-field.rb +50 -0
- data/misc/plugin/highlight.rb +22 -0
- data/misc/plugin/html_anchor.rb +34 -0
- data/misc/plugin/image.rb +290 -0
- data/misc/plugin/ja/amazon.rb +89 -0
- data/misc/plugin/ja/bq.rb +13 -0
- data/misc/plugin/ja/calendar2.rb +12 -0
- data/misc/plugin/ja/category.rb +212 -0
- data/misc/plugin/ja/daily_theme.rb +15 -0
- data/misc/plugin/ja/disp_referrer.rb +644 -0
- data/misc/plugin/ja/edit_today.rb +23 -0
- data/misc/plugin/ja/hide-mail-field.rb +20 -0
- data/misc/plugin/ja/highlight.rb +30 -0
- data/misc/plugin/ja/makerss.rb +44 -0
- data/misc/plugin/ja/my-sequel.rb +52 -0
- data/misc/plugin/ja/pb-show.rb +23 -0
- data/misc/plugin/ja/ping.rb +17 -0
- data/misc/plugin/ja/recent_comment.rb +45 -0
- data/misc/plugin/ja/recent_comment3.rb +57 -0
- data/misc/plugin/ja/recent_rss.rb +34 -0
- data/misc/plugin/ja/referer_scheme.rb +86 -0
- data/misc/plugin/ja/search_control.rb +75 -0
- data/misc/plugin/ja/search_form.rb +32 -0
- data/misc/plugin/ja/tb-show.rb +38 -0
- data/misc/plugin/ja/todo.rb +46 -0
- data/misc/plugin/ja/weather.rb +402 -0
- data/misc/plugin/ja/xmlrpc.rb +15 -0
- data/misc/plugin/kw.rb +150 -0
- data/misc/plugin/list.rb +40 -0
- data/misc/plugin/makelirs.rb +89 -0
- data/misc/plugin/makerss.rb +744 -0
- data/misc/plugin/my-ex.rb +68 -0
- data/misc/plugin/my-sequel.rb +539 -0
- data/misc/plugin/navi_user.rb +19 -0
- data/misc/plugin/number_anchor.rb +47 -0
- data/misc/plugin/pb-show.rb +165 -0
- data/misc/plugin/ping.rb +99 -0
- data/misc/plugin/pre_wrap.rb +19 -0
- data/misc/plugin/random_google.rb +165 -0
- data/misc/plugin/recent_comment.rb +82 -0
- data/misc/plugin/recent_comment3.rb +192 -0
- data/misc/plugin/recent_list.rb +91 -0
- data/misc/plugin/recent_namazu.rb +50 -0
- data/misc/plugin/recent_rss.rb +305 -0
- data/misc/plugin/referer-antibot.rb +53 -0
- data/misc/plugin/referer-utf8.rb +12 -0
- data/misc/plugin/referer_scheme.rb +87 -0
- data/misc/plugin/search_control.rb +227 -0
- data/misc/plugin/search_form.rb +53 -0
- data/misc/plugin/sn.rb +107 -0
- data/misc/plugin/speed_comment.rb +68 -0
- data/misc/plugin/squeeze.rb +272 -0
- data/misc/plugin/src.rb +30 -0
- data/misc/plugin/tb-show.rb +212 -0
- data/misc/plugin/title_list.rb +41 -0
- data/misc/plugin/title_tag.rb +80 -0
- data/misc/plugin/tlink.rb +163 -0
- data/misc/plugin/todo.rb +182 -0
- data/misc/plugin/weather.rb +505 -0
- data/misc/plugin/whatsnew.rb +100 -0
- data/misc/plugin/xmlrpc.rb +80 -0
- data/misc/plugin/xmlrpc/README +20 -0
- data/misc/plugin/xmlrpc/xmlrpc.rb +575 -0
- data/misc/style/emptdiary/README.rd +83 -0
- data/misc/style/emptdiary/README.rd.en +78 -0
- data/misc/style/emptdiary/emptdiary_style.rb +199 -0
- data/misc/style/etdiary/README.rd +83 -0
- data/misc/style/etdiary/etdiary_style.rb +446 -0
- data/misc/style/gfm/gfm_style.rb +194 -0
- data/misc/style/rd/README.rd +71 -0
- data/misc/style/rd/rd_style.rb +366 -0
- data/misc/style/wiki/README +116 -0
- data/misc/style/wiki/README.en +101 -0
- data/misc/style/wiki/wiki_parser.rb +273 -0
- data/misc/style/wiki/wiki_style.rb +478 -0
- data/misc/theme_convert/Readme.rd +21 -0
- data/misc/theme_convert/append.rcss +150 -0
- data/misc/theme_convert/theme_convert.rb +453 -0
- data/plugin/00default.rb +1015 -0
- data/plugin/05referer.rb +298 -0
- data/plugin/10spamfilter.rb +183 -0
- data/plugin/50sp.rb +146 -0
- data/plugin/60sf.rb +152 -0
- data/plugin/90migrate.rb +109 -0
- data/plugin/en/00default.rb +390 -0
- data/plugin/en/05referer.rb +49 -0
- data/plugin/en/10spamfilter.rb +81 -0
- data/plugin/en/50sp.rb +56 -0
- data/plugin/en/60sf.rb +60 -0
- data/plugin/ja/00default.rb +401 -0
- data/plugin/ja/05referer.rb +47 -0
- data/plugin/ja/10spamfilter.rb +79 -0
- data/plugin/ja/50sp.rb +66 -0
- data/plugin/ja/60sf.rb +73 -0
- data/public/.gitkeep +0 -0
- data/public/images/.gitkeep +0 -0
- data/public/javascripts/.gitkeep +0 -0
- data/public/stylesheets/.gitkeep +0 -0
- data/skel/category.rhtml +9 -0
- data/skel/conf.rhtml +23 -0
- data/skel/day.rhtml +33 -0
- data/skel/diary.rhtml +83 -0
- data/skel/footer.rhtml +8 -0
- data/skel/header.rhtml +10 -0
- data/skel/i.category.rhtml +6 -0
- data/skel/i.conf.rhtml +14 -0
- data/skel/i.day.rhtml +28 -0
- data/skel/i.diary.rhtml +17 -0
- data/skel/i.footer.rhtml +2 -0
- data/skel/i.header.rhtml +3 -0
- data/skel/i.latest.rhtml +24 -0
- data/skel/i.month.rhtml +39 -0
- data/skel/i.search.rhtml +5 -0
- data/skel/i.update.rhtml +40 -0
- data/skel/i.update.rhtml.en +40 -0
- data/skel/latest.rhtml +27 -0
- data/skel/mail.rtxt +18 -0
- data/skel/mail.rtxt.en +18 -0
- data/skel/month.rhtml +27 -0
- data/skel/plugin_error.rhtml +27 -0
- data/skel/preview.rhtml +85 -0
- data/skel/preview.rhtml.en +72 -0
- data/skel/referer.rhtml +24 -0
- data/skel/search.rhtml +14 -0
- data/skel/tdiary.rconf +76 -0
- data/skel/update.rhtml +103 -0
- data/skel/update.rhtml.en +83 -0
- data/spec/acceptance/append_comment_spec.rb +94 -0
- data/spec/acceptance/append_diary_spec.rb +98 -0
- data/spec/acceptance/bugfix/encoding_error_spec.rb +27 -0
- data/spec/acceptance/save_conf_comment_spec.rb +87 -0
- data/spec/acceptance/save_conf_default_spec.rb +169 -0
- data/spec/acceptance/save_conf_dnsbl_spec.rb +152 -0
- data/spec/acceptance/save_conf_filter_spec.rb +50 -0
- data/spec/acceptance/save_conf_plugin_spec.rb +69 -0
- data/spec/acceptance/save_conf_referer_spec.rb +60 -0
- data/spec/acceptance/save_conf_security_spec.rb +280 -0
- data/spec/acceptance/support/helpers.rb +49 -0
- data/spec/acceptance/support/paths.rb +7 -0
- data/spec/acceptance/update_diary_spec.rb +113 -0
- data/spec/acceptance/view_category_spec.rb +38 -0
- data/spec/acceptance/view_comment_spec.rb +67 -0
- data/spec/acceptance/view_diary_spec.rb +126 -0
- data/spec/acceptance/view_referer_spec.rb +31 -0
- data/spec/acceptance_helper.rb +101 -0
- data/spec/core/compatible_spec.rb +54 -0
- data/spec/core/core_ext_spec.rb +59 -0
- data/spec/core/plugin_spec.rb +389 -0
- data/spec/core/rack/assets/precompile_spec.rb +76 -0
- data/spec/core/rack/html_anchor_spec.rb +57 -0
- data/spec/core/rack/valid_request_path_spec.rb +67 -0
- data/spec/core/style/emptdiary_style_spec.rb +165 -0
- data/spec/core/style/etdiary_style_spec.rb +512 -0
- data/spec/core/style/gfm_style_spec.rb +334 -0
- data/spec/core/style/rd_style_spec.rb +202 -0
- data/spec/core/style/tdiary_style_spec.rb +240 -0
- data/spec/core/style/wiki_style_spec.rb +441 -0
- data/spec/fixtures/ascii8bit-pstore.db +0 -0
- data/spec/fixtures/invalid-sequence-volatile.tdr +9 -0
- data/spec/fixtures/just_installed.conf +1 -0
- data/spec/fixtures/plugin/ja/sample.rb +4 -0
- data/spec/fixtures/plugin/sample.rb +6 -0
- data/spec/fixtures/sample.rb +12 -0
- data/spec/fixtures/tdiary.conf.gem +212 -0
- data/spec/fixtures/tdiary.conf.rack +212 -0
- data/spec/fixtures/tdiary.conf.rdb +227 -0
- data/spec/fixtures/tdiary.conf.secure +204 -0
- data/spec/fixtures/tdiary.conf.webrick +212 -0
- data/spec/javascripts/00default_spec.js +35 -0
- data/spec/javascripts/fixtures/00default.html +1 -0
- data/spec/javascripts/support/jasmine.yml +76 -0
- data/spec/plugin/bq_spec.rb +24 -0
- data/spec/plugin/plugin_helper.rb +203 -0
- data/spec/spec_helper.rb +32 -0
- data/tdiary.conf.beginner +244 -0
- data/tdiary.conf.sample +345 -0
- data/tdiary.conf.sample-en +333 -0
- data/tdiary.gemspec +26 -0
- data/tdiary.rb +151 -0
- data/tdiary/admin.rb +236 -0
- data/tdiary/application.rb +57 -0
- data/tdiary/author_only_base.rb +171 -0
- data/tdiary/base.rb +220 -0
- data/tdiary/cli.rb +116 -0
- data/tdiary/comment.rb +40 -0
- data/tdiary/comment_manager.rb +94 -0
- data/tdiary/compatible.rb +72 -0
- data/tdiary/config.rb +270 -0
- data/tdiary/core_ext.rb +122 -0
- data/tdiary/deploy.rb +50 -0
- data/tdiary/dispatcher.rb +77 -0
- data/tdiary/dispatcher/index_main.rb +122 -0
- data/tdiary/dispatcher/update_main.rb +101 -0
- data/tdiary/environment.rb +15 -0
- data/tdiary/filter.rb +48 -0
- data/tdiary/filter/default.rb +54 -0
- data/tdiary/filter/spam.rb +304 -0
- data/tdiary/io/base.rb +70 -0
- data/tdiary/io/cache/file.rb +123 -0
- data/tdiary/io/cache/memcached.rb +88 -0
- data/tdiary/io/cache/redis.rb +100 -0
- data/tdiary/io/default.rb +297 -0
- data/tdiary/io/pstore.rb +252 -0
- data/tdiary/io/rdb.rb +213 -0
- data/tdiary/lang/en.rb +79 -0
- data/tdiary/lang/ja.rb +72 -0
- data/tdiary/plugin.rb +375 -0
- data/tdiary/rack/assets/precompile.rb +37 -0
- data/tdiary/rack/auth/basic.rb +38 -0
- data/tdiary/rack/auth/omniauth.rb +51 -0
- data/tdiary/rack/html_anchor.rb +31 -0
- data/tdiary/rack/valid_request_path.rb +36 -0
- data/tdiary/referer_manager.rb +80 -0
- data/tdiary/request.rb +217 -0
- data/tdiary/response.rb +29 -0
- data/tdiary/server.rb +85 -0
- data/tdiary/style.rb +194 -0
- data/tdiary/style/tdiary_style.rb +198 -0
- data/tdiary/style/wiki_style.rb +213 -0
- data/tdiary/tasks.rb +1 -0
- data/tdiary/tasks/assets.rake +31 -0
- data/tdiary/tasks/auth.rake +28 -0
- data/tdiary/tasks/db.rake +110 -0
- data/tdiary/tasks/doc.rake +31 -0
- data/tdiary/tasks/heroku.rake +37 -0
- data/tdiary/tasks/jasmine.rake +16 -0
- data/tdiary/tasks/rdoc.rake +24 -0
- data/tdiary/tasks/release.rake +122 -0
- data/tdiary/tasks/rspec.rake +51 -0
- data/tdiary/tasks/server.rake +33 -0
- data/tdiary/tasks/test.rake +17 -0
- data/tdiary/version.rb +3 -0
- data/tdiary/view.rb +468 -0
- data/tdiary/view_helper.rb +15 -0
- data/test/disp_referrer_test.rb +93 -0
- data/test/my-sequel_test.rb +238 -0
- data/test/test_helper.rb +7 -0
- data/test/test_plugin_helper.rb +64 -0
- data/test/test_plugin_helper_test.rb +28 -0
- data/test/weather_test.rb +33 -0
- data/theme/base.css +268 -0
- data/theme/conf.block.png +0 -0
- data/theme/conf.css +254 -0
- data/theme/default/README +11 -0
- data/theme/default/body.png +0 -0
- data/theme/default/default.css +743 -0
- data/theme/help.png +0 -0
- data/theme/loading.gif +0 -0
- data/theme/tdiary1/README +7 -0
- data/theme/tdiary1/tdiary1.css +394 -0
- data/theme/tdiary2/README +19 -0
- data/theme/tdiary2/tdiary2.css +624 -0
- data/update.fcgi +45 -0
- data/update.rb +57 -0
- data/vendor/hikidoc-0.0.6/COPYING +28 -0
- data/vendor/hikidoc-0.0.6/NEWS +30 -0
- data/vendor/hikidoc-0.0.6/NEWS.ja +30 -0
- data/vendor/hikidoc-0.0.6/README +86 -0
- data/vendor/hikidoc-0.0.6/README.ja +83 -0
- data/vendor/hikidoc-0.0.6/Rakefile +68 -0
- data/vendor/hikidoc-0.0.6/TextFormattingRules +320 -0
- data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +318 -0
- data/vendor/hikidoc-0.0.6/bin/hikidoc +66 -0
- data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +914 -0
- data/vendor/hikidoc-0.0.6/setup.rb +1360 -0
- data/vendor/hikidoc-0.0.6/test/run-test.rb +13 -0
- data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +506 -0
- data/vendor/imagesize-0.1.1/Manifest.txt +19 -0
- data/vendor/imagesize-0.1.1/README.txt +49 -0
- data/vendor/imagesize-0.1.1/lib/image_size.rb +305 -0
- data/vendor/imagesize-0.1.1/lib/image_size/version.rb +9 -0
- data/vendor/imagesize-0.1.1/setup.rb +1585 -0
- data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
- data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
- data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
- data/vendor/imagesize-0.1.1/test/cursor.xbm +6 -0
- data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
- data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
- data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
- data/vendor/imagesize-0.1.1/test/pgm.pgm +5 -0
- data/vendor/imagesize-0.1.1/test/test.xpm +38 -0
- data/vendor/imagesize-0.1.1/test/test_helper.rb +2 -0
- data/vendor/imagesize-0.1.1/test/test_image_size.rb +71 -0
- data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
- data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
- data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
- data/vendor/jasmine-jquery-1.4.2/jasmine-jquery.js +548 -0
- data/vendor/jquery-1.8/jquery.js +9227 -0
- data/vendor/rdtool-0.6.38/COPYING.txt +339 -0
- data/vendor/rdtool-0.6.38/Gemfile +3 -0
- data/vendor/rdtool-0.6.38/HISTORY +318 -0
- data/vendor/rdtool-0.6.38/LGPL-2.1 +502 -0
- data/vendor/rdtool-0.6.38/LICENSE.txt +58 -0
- data/vendor/rdtool-0.6.38/README.html +66 -0
- data/vendor/rdtool-0.6.38/README.ja.html +73 -0
- data/vendor/rdtool-0.6.38/README.rd +76 -0
- data/vendor/rdtool-0.6.38/README.rd.ja +85 -0
- data/vendor/rdtool-0.6.38/Rakefile +152 -0
- data/vendor/rdtool-0.6.38/TODO +22 -0
- data/vendor/rdtool-0.6.38/bin/rd2 +283 -0
- data/vendor/rdtool-0.6.38/bin/rdswap.rb +207 -0
- data/vendor/rdtool-0.6.38/doc/rd-draft.html +456 -0
- data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +466 -0
- data/vendor/rdtool-0.6.38/doc/rd-draft.rd +479 -0
- data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +487 -0
- data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +114 -0
- data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +65 -0
- data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +55 -0
- data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +46 -0
- data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +18 -0
- data/vendor/rdtool-0.6.38/lib/rd/element.rb +160 -0
- data/vendor/rdtool-0.6.38/lib/rd/filter.rb +255 -0
- data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +14 -0
- data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +233 -0
- data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +14 -0
- data/vendor/rdtool-0.6.38/lib/rd/list.rb +57 -0
- data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +11 -0
- data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +57 -0
- data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +30 -0
- data/vendor/rdtool-0.6.38/lib/rd/package.rb +4 -0
- data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +14 -0
- data/vendor/rdtool-0.6.38/lib/rd/post-install +1 -0
- data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +18 -0
- data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +69 -0
- data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +37 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +86 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +266 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +34 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +490 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +67 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +251 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +19 -0
- data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +32 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +518 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +1061 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +15 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +503 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +1243 -0
- data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +214 -0
- data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +114 -0
- data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +14 -0
- data/vendor/rdtool-0.6.38/lib/rd/tree.rb +103 -0
- data/vendor/rdtool-0.6.38/lib/rd/version.rb +41 -0
- data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +86 -0
- data/vendor/rdtool-0.6.38/rdtool.gemspec +125 -0
- data/vendor/rdtool-0.6.38/setup.rb +1596 -0
- data/vendor/rdtool-0.6.38/test/data/includee1.html +1 -0
- data/vendor/rdtool-0.6.38/test/data/includee2.html +1 -0
- data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +1 -0
- data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
- data/vendor/rdtool-0.6.38/test/data/label.rbl +2 -0
- data/vendor/rdtool-0.6.38/test/data/label2.rbl +2 -0
- data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +1 -0
- data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
- data/vendor/rdtool-0.6.38/test/dummy-observer.rb +6 -0
- data/vendor/rdtool-0.6.38/test/dummy.rb +33 -0
- data/vendor/rdtool-0.6.38/test/temp-dir.rb +19 -0
- data/vendor/rdtool-0.6.38/test/test-block-parser.rb +46 -0
- data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +219 -0
- data/vendor/rdtool-0.6.38/test/test-document-element.rb +46 -0
- data/vendor/rdtool-0.6.38/test/test-document-struct.rb +66 -0
- data/vendor/rdtool-0.6.38/test/test-element.rb +46 -0
- data/vendor/rdtool-0.6.38/test/test-headline.rb +80 -0
- data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +46 -0
- data/vendor/rdtool-0.6.38/test/test-list-item.rb +54 -0
- data/vendor/rdtool-0.6.38/test/test-list.rb +53 -0
- data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +73 -0
- data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +170 -0
- data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +33 -0
- data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +48 -0
- data/vendor/rdtool-0.6.38/test/test-parser-util.rb +41 -0
- data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +156 -0
- data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +43 -0
- data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +496 -0
- data/vendor/rdtool-0.6.38/test/test-rdtree.rb +17 -0
- data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +29 -0
- data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +202 -0
- data/vendor/rdtool-0.6.38/test/test-reference.rb +132 -0
- data/vendor/rdtool-0.6.38/test/test-search-file.rb +22 -0
- data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +41 -0
- data/vendor/rdtool-0.6.38/test/test-textblock.rb +44 -0
- data/vendor/rdtool-0.6.38/test/test-tree.rb +82 -0
- data/vendor/rdtool-0.6.38/test/test-version.rb +57 -0
- data/vendor/rdtool-0.6.38/test/test-visitor.rb +230 -0
- data/vendor/rdtool-0.6.38/utils/rd-mode.el +464 -0
- metadata +666 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- mode: rd; coding: utf-8; indent-tabs-mode: nil -*-
|
2
|
+
= TODO
|
3
|
+
|
4
|
+
* HTML5 出力できるように
|
5
|
+
* 後方互換性を維持するならば, rd2html5-lib.rb でも作るのかな?
|
6
|
+
* rd2html-ext-lib, Hash#index -> Hash#key
|
7
|
+
|
8
|
+
== Moonwolf さんから指摘された事
|
9
|
+
|
10
|
+
* Ruby1,9での動作確認(全機能)+encoding周り
|
11
|
+
* gem化した際に、通常のsetup.rbによるインストール方法も残すか
|
12
|
+
* 原作者のToshさんの認識していたバグが直っているかの確認(できるの?)
|
13
|
+
((<URL:http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RDtool+Bug+List>))
|
14
|
+
|
15
|
+
== 佐々木が気になっている事/やりたいこと
|
16
|
+
|
17
|
+
* Windows での, テストしておくべき Ruby 環境ってドレなの?
|
18
|
+
|
19
|
+
== Done
|
20
|
+
|
21
|
+
* COPYRIGHT の表記. きちんとまとめておきたい|おくべき.
|
22
|
+
* makerdtool.rb などを Rake のタスクに落としこむ
|
@@ -0,0 +1,283 @@
|
|
1
|
+
#! /usr/bin/ruby1.9.1 -Kn
|
2
|
+
# -*- coding: ASCII-8BIT -*-
|
3
|
+
=begin
|
4
|
+
= NAME
|
5
|
+
rd2 - converter from RD to other mark-up language.
|
6
|
+
= SYNOPSIS
|
7
|
+
rd2 [-r <visitor>] [options] <file>
|
8
|
+
|
9
|
+
= DESCRIPTION
|
10
|
+
rd2 inputs from ((|<file>|)) and outputs into (({STDOUT})). you can
|
11
|
+
choose ((|<visitor>|)) to select output format. For example, use
|
12
|
+
"rd/rd2html-lib.rb" to translate it into HTML, and "rd/rd2man-lib.rb"
|
13
|
+
to tranlate it into roff with man macros.
|
14
|
+
|
15
|
+
= OPTIONS
|
16
|
+
please read output of
|
17
|
+
% rd2 --help
|
18
|
+
and
|
19
|
+
% rd2 -r rd/rd2html-lib.rb --help
|
20
|
+
|
21
|
+
= FILES
|
22
|
+
* ~/.rd2rc - User configration file.
|
23
|
+
|
24
|
+
= SEE ALSO
|
25
|
+
ruby(1)
|
26
|
+
=end
|
27
|
+
|
28
|
+
require "kconv"
|
29
|
+
require "optparse"
|
30
|
+
require "rd/rdfmt"
|
31
|
+
require "rd/visitor"
|
32
|
+
require "rd/version"
|
33
|
+
|
34
|
+
module Kconv
|
35
|
+
NAME2CONST = {
|
36
|
+
"iso-2022-jp" => Kconv::JIS,
|
37
|
+
"euc-jp" => Kconv::EUC,
|
38
|
+
"shift_jis" => Kconv::SJIS,
|
39
|
+
}
|
40
|
+
NAME_ALIAS = {
|
41
|
+
'jis' => 'iso-2022-jp',
|
42
|
+
'euc' => 'euc-jp',
|
43
|
+
'sjis' => 'shift_jis',
|
44
|
+
'shift-jis' => 'shift_jis',
|
45
|
+
}
|
46
|
+
if defined?(Kconv::UTF8)
|
47
|
+
NAME2CONST['utf-8'] = Kconv::UTF8
|
48
|
+
NAME_ALIAS['utf8'] = 'utf-8'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
include RD
|
53
|
+
|
54
|
+
SYSTEM_NAME = "RDtool -- rd2"
|
55
|
+
SYSTEM_VERSION = "$Version: "+RD::VERSION + "$" #"
|
56
|
+
RD2_VERSION = Version.new_from_version_string(SYSTEM_NAME, SYSTEM_VERSION)
|
57
|
+
|
58
|
+
# global vars
|
59
|
+
$Visitor_Class = nil
|
60
|
+
$Visitor = nil
|
61
|
+
$RD2_Sub_OptionParser = nil
|
62
|
+
|
63
|
+
# local vars
|
64
|
+
include_path = []
|
65
|
+
with_part = []
|
66
|
+
output_file = nil
|
67
|
+
output_index = nil
|
68
|
+
out_code = nil
|
69
|
+
from_rdo = nil
|
70
|
+
|
71
|
+
# user option
|
72
|
+
$DEFAULT_FORMAT_LIB = "rd/rd2html-lib"
|
73
|
+
$RC = {}
|
74
|
+
$RC["filter"] = Hash.new(RD::INCLUDE_FILTER)
|
75
|
+
begin
|
76
|
+
if test(?r, File.expand_path("~/.rd2rc"))
|
77
|
+
load "~/.rd2rc"
|
78
|
+
# STDERR << "#{$0}: loading ~/.rd2rc\n"
|
79
|
+
else
|
80
|
+
load "rd/dot.rd2rc"
|
81
|
+
# STDERR << "#{$0}: loading rd/dot.rd2rc\n"
|
82
|
+
end
|
83
|
+
rescue
|
84
|
+
load "rd/dot.rd2rc"
|
85
|
+
end
|
86
|
+
|
87
|
+
# initialize OptionParser
|
88
|
+
ARGV.options do |q|
|
89
|
+
q.banner = "Usage: #{$0} [options] rd-file > output\n"
|
90
|
+
q.on_head("global options:")
|
91
|
+
|
92
|
+
q.on("-rLIB", "--require=LIB",
|
93
|
+
String,
|
94
|
+
"choose format library.") do |i|
|
95
|
+
# require LIB
|
96
|
+
require i
|
97
|
+
if $Visitor_Class && !$Visitor
|
98
|
+
$Visitor = $Visitor_Class.new()
|
99
|
+
if $RD2_Sub_OptionParser
|
100
|
+
require $RD2_Sub_OptionParser
|
101
|
+
$RD2_Sub_OptionParser = nil
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
q.on("-oNAME",
|
107
|
+
String,
|
108
|
+
"indicate base name of output file") do |i|
|
109
|
+
output_file = i
|
110
|
+
end
|
111
|
+
|
112
|
+
q.on("--out-code=KCODE",
|
113
|
+
Kconv::NAME2CONST.keys, Kconv::NAME_ALIAS,
|
114
|
+
"character encoding of output.(jis|euc|sjis|utf8)") do |i|
|
115
|
+
out_code = i
|
116
|
+
end
|
117
|
+
|
118
|
+
q.on("--output-index",
|
119
|
+
"output method index file (*.rmi)") do |i|
|
120
|
+
output_index = true
|
121
|
+
end
|
122
|
+
|
123
|
+
q.on("-IPATH", "--include-path=PATH",
|
124
|
+
String,
|
125
|
+
"add PATH to list of include path") do |i|
|
126
|
+
# add to include path
|
127
|
+
include_path.unshift(i)
|
128
|
+
end
|
129
|
+
|
130
|
+
# accept "PART:FILTER" and "PART"
|
131
|
+
class PART ; end
|
132
|
+
q.accept(PART, /(\w+)(?:\s*:\s*(\w+))?/) {|s, p, f| [s, p, f] }
|
133
|
+
q.on("--with-part=PART",
|
134
|
+
PART,
|
135
|
+
"include PART with Filter") do |src, part, filter|
|
136
|
+
with_part.push([part, filter || part])
|
137
|
+
unless include_path.index(RD::RDTree.tmp_dir)
|
138
|
+
include_path.push(RD::RDTree.tmp_dir)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
q.on("--from-rdo",
|
143
|
+
"load from *.rdo instead of *.rd") do
|
144
|
+
from_rdo = true
|
145
|
+
end
|
146
|
+
|
147
|
+
q.on("--version",
|
148
|
+
"print versions.") do
|
149
|
+
STDERR.puts RD2_VERSION
|
150
|
+
STDERR.puts Tree::version
|
151
|
+
STDERR.puts Visitor::version
|
152
|
+
STDERR.puts $Visitor_Class.version if $Visitor_Class
|
153
|
+
exit(0)
|
154
|
+
end
|
155
|
+
|
156
|
+
q.on_tail("--help",
|
157
|
+
"print this message") do
|
158
|
+
STDERR.print(q.to_s)
|
159
|
+
exit(0)
|
160
|
+
end
|
161
|
+
end # OptionParser.new
|
162
|
+
|
163
|
+
# require format lib implicitly
|
164
|
+
if /rd2.+/ =~ File.basename($0, ".*").downcase
|
165
|
+
visitor_lib = "rd/" + $& + "-lib.rb"
|
166
|
+
require visitor_lib
|
167
|
+
require $RD2_Sub_OptionParser if $RD2_Sub_OptionParser
|
168
|
+
# make visitor
|
169
|
+
$Visitor = $Visitor_Class.new()
|
170
|
+
end
|
171
|
+
|
172
|
+
begin
|
173
|
+
ARGV.parse!
|
174
|
+
rescue
|
175
|
+
STDERR.print("Error: " + $!.inspect + "\n")
|
176
|
+
STDERR.print(ARGV.options.to_s)
|
177
|
+
exit(1)
|
178
|
+
end
|
179
|
+
|
180
|
+
unless $Visitor_Class
|
181
|
+
require $DEFAULT_FORMAT_LIB
|
182
|
+
$Visitor = $Visitor_Class.new
|
183
|
+
end
|
184
|
+
|
185
|
+
$Visitor.input_filename = ARGF.filename
|
186
|
+
|
187
|
+
# make tree (but not parsed yet)
|
188
|
+
if from_rdo
|
189
|
+
rdos = []
|
190
|
+
ARGV.each do |path|
|
191
|
+
rdos.push(File.open(path))
|
192
|
+
dirname = File.dirname(path)
|
193
|
+
include_path.push(dirname, dirname + "/include")
|
194
|
+
end
|
195
|
+
tree = RDTree.new_from_rdo(*rdos)
|
196
|
+
tree.include_path = include_path
|
197
|
+
else
|
198
|
+
# set Include_Path
|
199
|
+
if ARGF.filename
|
200
|
+
dir = File.dirname(ARGF.filename)
|
201
|
+
else
|
202
|
+
dir = "."
|
203
|
+
end
|
204
|
+
include_path.push(dir)
|
205
|
+
include_path.push(dir + "/include")
|
206
|
+
|
207
|
+
# input from ARGF
|
208
|
+
src = readlines
|
209
|
+
if src.find{|i| /\S/ === i } and !src.find{|i| /^=begin\b/ === i }
|
210
|
+
src.unshift("=begin\n").push("=end\n")
|
211
|
+
end
|
212
|
+
|
213
|
+
tree = RDTree.new(src, include_path, nil)
|
214
|
+
|
215
|
+
# filter set tree.filter
|
216
|
+
with_part.each do |i|
|
217
|
+
tree.filter[i[0]] = $RC["filter"][i[1]]
|
218
|
+
end
|
219
|
+
|
220
|
+
# parse
|
221
|
+
begin
|
222
|
+
tree.parse
|
223
|
+
rescue Racc::ParseError
|
224
|
+
STDERR.puts($!.message)
|
225
|
+
exit(10)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
# filter: set visitor.include_suffix
|
230
|
+
with_part.each do |i|
|
231
|
+
$Visitor.include_suffix.push(i[0])
|
232
|
+
end
|
233
|
+
|
234
|
+
# file base name setup
|
235
|
+
$Visitor.filename = output_file if output_file
|
236
|
+
|
237
|
+
# character encoding
|
238
|
+
if out_code
|
239
|
+
begin
|
240
|
+
$Visitor.charcode = out_code
|
241
|
+
$Visitor.lang = "ja"
|
242
|
+
rescue NameError
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
# output
|
247
|
+
out = $Visitor.visit(tree)
|
248
|
+
|
249
|
+
# character encoding convert
|
250
|
+
out = Kconv.kconv(out, Kconv::NAME2CONST[out_code], Kconv::AUTO) if out_code
|
251
|
+
|
252
|
+
if output_file
|
253
|
+
filename = output_file + "." + $Visitor.class::OUTPUT_SUFFIX
|
254
|
+
file = open(filename, "w")
|
255
|
+
file.print(out)
|
256
|
+
file.close
|
257
|
+
STDERR.print("#{$0}: output to #{filename}...\n")
|
258
|
+
else
|
259
|
+
print(out)
|
260
|
+
end
|
261
|
+
|
262
|
+
# RMI
|
263
|
+
if output_index
|
264
|
+
if output_file
|
265
|
+
require "rd/rd2rmi-lib"
|
266
|
+
rmivisitor = RD2RMIVisitor.new
|
267
|
+
rmivisitor.filename = output_file
|
268
|
+
rmi = rmivisitor.visit(tree)
|
269
|
+
filename = output_file + ".rmi"
|
270
|
+
file = open(filename, "w")
|
271
|
+
file.print(rmi)
|
272
|
+
file.close
|
273
|
+
STDERR.print("#{$0}: output to #{filename}...\n")
|
274
|
+
else
|
275
|
+
raise %Q[Error: option "--output-index" must be used with option "-oNAME"]
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
|
280
|
+
# filter: remove tmp file
|
281
|
+
Dir.glob("#{RD::RDTree.tmp_dir}/rdtmp.#{$$}.*.*").each do |i|
|
282
|
+
File.delete(i)
|
283
|
+
end
|
@@ -0,0 +1,207 @@
|
|
1
|
+
#! /usr/bin/ruby1.9.1 -s
|
2
|
+
#######
|
3
|
+
# rdswap.rb (c) C.Hintze <c.hintze@gmx.net> 30.08.1999
|
4
|
+
#######
|
5
|
+
|
6
|
+
|
7
|
+
require "ostruct";
|
8
|
+
|
9
|
+
if ARGV.size < 2 and not ($h or $help)
|
10
|
+
print "Wrong # of paramter! Use `-h' for help.\n";
|
11
|
+
exit 1;
|
12
|
+
elsif $h or $help
|
13
|
+
print eval('"'+DATA.read+'"');
|
14
|
+
exit 0;
|
15
|
+
end
|
16
|
+
|
17
|
+
srcfile = ARGV.select{|fn| fn =~ /\.rb$/o};
|
18
|
+
case srcfile.size
|
19
|
+
when 0
|
20
|
+
$stderr.print "Warning: No `.rb' file given! Take first file as source.\n";
|
21
|
+
srcfile = ARGV[0];
|
22
|
+
when 1
|
23
|
+
srcfile = srcfile[0];
|
24
|
+
else
|
25
|
+
print "Sorry! Only one source file (`.rb') allowed!\n";
|
26
|
+
exit(1);
|
27
|
+
end
|
28
|
+
|
29
|
+
docs = {};
|
30
|
+
srcs = {};
|
31
|
+
|
32
|
+
rddoc, rddocs = nil, [];
|
33
|
+
source, sources = [], [[]];
|
34
|
+
|
35
|
+
while gets
|
36
|
+
lang = $1 if File::basename(String($<)) =~ /^.*?([^.]+)$/o;
|
37
|
+
if /^=begin/o .. /^=end/o
|
38
|
+
title = $2 if /^=begin(\s+(.*))?$/o;
|
39
|
+
unless rddoc.nil?
|
40
|
+
unless /^=end/o
|
41
|
+
rddoc.lines << $_;
|
42
|
+
else
|
43
|
+
rddocs << rddoc;
|
44
|
+
sources << [];
|
45
|
+
rddoc = nil;
|
46
|
+
title = nil;
|
47
|
+
end
|
48
|
+
else # New RD block found! Instantiate data container.
|
49
|
+
rddoc = OpenStruct.new
|
50
|
+
rddoc.kind, rddoc.lines = title, [];
|
51
|
+
end
|
52
|
+
else # It is not a RD block means, it is a source line!
|
53
|
+
sources[-1] << $_;
|
54
|
+
end
|
55
|
+
if $<.eof? # One file finished. Remember data and proceed.
|
56
|
+
docs[lang] = rddocs;
|
57
|
+
srcs[lang] = sources;
|
58
|
+
rddoc, rddocs = nil, [];
|
59
|
+
source, sources = [], [[]];
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
langs = docs.keys;
|
64
|
+
langs.delete("rb"); # `rb' is not a language but the script!
|
65
|
+
source = srcs["rb"]; # Assign it for preventing later look-ups
|
66
|
+
srcdoc = docs["rb"];
|
67
|
+
sourcesize = source.size; # Do not recalculate size again and again.
|
68
|
+
srcdocsize = srcdoc.size;
|
69
|
+
|
70
|
+
for lang in langs
|
71
|
+
docblk = docs[lang];
|
72
|
+
max = [sourcesize, srcdocsize, docblk.size].max;
|
73
|
+
filename = File.join(srcfile+"."+lang);
|
74
|
+
open(filename, "w+") do |fd|
|
75
|
+
j = 0;
|
76
|
+
for i in 0...max # Goto every block; be it source or RD.
|
77
|
+
fd.print source[i].join unless source[i].nil? || source[i].empty?;
|
78
|
+
sblk, dblk = srcdoc[i], docblk[j];
|
79
|
+
blk = (dblk and (dblk.kind == sblk.kind)) ? dblk : sblk;
|
80
|
+
next unless blk;
|
81
|
+
j += 1 if blk == dblk;
|
82
|
+
fd.print "=begin #{blk && blk.kind}\n", blk.lines.join, "=end\n";
|
83
|
+
end
|
84
|
+
end
|
85
|
+
print "File `#{filename}' created.\n" if $v;
|
86
|
+
end
|
87
|
+
|
88
|
+
exit(0);
|
89
|
+
|
90
|
+
__END__
|
91
|
+
|
92
|
+
Purpose:
|
93
|
+
This tool is written to support you to write multi-language documents
|
94
|
+
using the Ruby-Document-Format (RD).
|
95
|
+
|
96
|
+
The idea for such a tool was originated by
|
97
|
+
|
98
|
+
Minero Aoki <aamine@dp.u-netsurf.ne.jp>,
|
99
|
+
|
100
|
+
how has thought about, how to make life easier for developers who have to
|
101
|
+
write and maintain scripts in more than one language.
|
102
|
+
|
103
|
+
You have to specify at least two filenames on the command line. One
|
104
|
+
containing the Ruby script, the second containing a translated RD. If the
|
105
|
+
script does *not* end with `.rb', it has to be the first filename mentioned
|
106
|
+
on the command line! In opposition, all files containing translations *must
|
107
|
+
not* ending with `.rb'! They should use a extension that describes the
|
108
|
+
language. So that would give us the following picture:
|
109
|
+
|
110
|
+
- sample.rb : Script contains the original documentation.
|
111
|
+
- sample.jp : Documentation written in Japanese.
|
112
|
+
- sample.de : Translation to German.
|
113
|
+
|
114
|
+
The tool doesn't care about the language extensions. You can name them as
|
115
|
+
you like! So the file containing the Japanese translation above, could also
|
116
|
+
be names e.g. `sample.japan' or even `japantranslation.japan'.
|
117
|
+
|
118
|
+
For every translation file, a new file will be created. The name is build
|
119
|
+
from the script filename plus the language extension. So regarding the
|
120
|
+
example above, following files would be created:
|
121
|
+
|
122
|
+
- sample.rb.jp
|
123
|
+
- sample.rb.de
|
124
|
+
|
125
|
+
or, given the alternative translation filename as mentioned above...
|
126
|
+
|
127
|
+
- sample.rb.japan
|
128
|
+
|
129
|
+
How does it work?
|
130
|
+
The contents of all files will be split into source and RD blocks. The
|
131
|
+
source of the translation files, will be discarded! Every RD block may
|
132
|
+
be of a certain type. The type will be taken from the contents directly
|
133
|
+
following the `=begin' on the same line. If there is only a lonely `=begin'
|
134
|
+
on a line by itself, the type of the block is `nil'. That means in
|
135
|
+
|
136
|
+
:
|
137
|
+
=begin
|
138
|
+
bla bla
|
139
|
+
=end
|
140
|
+
:
|
141
|
+
=begin whatever or not
|
142
|
+
blub blub
|
143
|
+
=end
|
144
|
+
:
|
145
|
+
|
146
|
+
the first block would be of type `nil' and the second one of type `whatever
|
147
|
+
or not'.
|
148
|
+
|
149
|
+
Block types are important for the translation. If a source will be
|
150
|
+
generated from a script and a translation file, only these blocks are taken
|
151
|
+
from the translation files, that comes in the right sequence *and* contains
|
152
|
+
the same type as the block in the script! For example:
|
153
|
+
|
154
|
+
# File sample.rb
|
155
|
+
:
|
156
|
+
=begin gnark
|
157
|
+
Some comment
|
158
|
+
=end
|
159
|
+
:
|
160
|
+
=begin
|
161
|
+
block 2
|
162
|
+
=end
|
163
|
+
:
|
164
|
+
=begin
|
165
|
+
block 3
|
166
|
+
=end
|
167
|
+
:
|
168
|
+
|
169
|
+
# File sample.de
|
170
|
+
:
|
171
|
+
=begin
|
172
|
+
Block zwei
|
173
|
+
=end
|
174
|
+
:
|
175
|
+
=begin
|
176
|
+
Block drei
|
177
|
+
=end
|
178
|
+
:
|
179
|
+
|
180
|
+
Here, the first block of `sample.rb' will *not* be translated, as there is
|
181
|
+
no translation block with that type in sample.de! So the first block would
|
182
|
+
be inserted as-it-is into the translated script. The blocks afterwards,
|
183
|
+
however, are translated as the block type does match (it is `nil' there).
|
184
|
+
|
185
|
+
Attention: In a translation file, a second block will only be used, if
|
186
|
+
a first one was already used (matched). A third block will
|
187
|
+
only be used, if a second one was used already!
|
188
|
+
|
189
|
+
That means, if the first block of `sample.de' would be of type e.g. `Never
|
190
|
+
match', then no block would ever be taken to replace anyone of `sample.rb'.
|
191
|
+
|
192
|
+
Syntax:
|
193
|
+
#{File::basename $0} [-h|-v] <filename>...
|
194
|
+
|
195
|
+
Whereby:
|
196
|
+
-h shows this help text.
|
197
|
+
-v shows some more text during processing.
|
198
|
+
<filename> Means a file, that contains RD and/or Ruby code.
|
199
|
+
|
200
|
+
Examples:
|
201
|
+
#{File::basename $0} -v sample.rb sample.ja sample.de
|
202
|
+
#{File::basename $0} -v sample.ja sample.rb sample.de
|
203
|
+
#{File::basename $0} -v sample.ja sample.de sample.rb
|
204
|
+
#{File::basename $0} -v sample.??
|
205
|
+
|
206
|
+
Author:
|
207
|
+
Clemens Hintze <c.hintze@gmx.net>.
|