qwik2md 0.1.0
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/.gitignore +9 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/qwik2md +17 -0
- data/lib/qwik2md/version.rb +3 -0
- data/lib/qwik2md.rb +39 -0
- data/qwik2md.gemspec +30 -0
- data/vendor/qwik/AUTHORS +10 -0
- data/vendor/qwik/COPYING +340 -0
- data/vendor/qwik/COPYRIGHT +346 -0
- data/vendor/qwik/lib/qwik/Makefile +63 -0
- data/vendor/qwik/lib/qwik/Rakefile +17 -0
- data/vendor/qwik/lib/qwik/act-aa.rb +83 -0
- data/vendor/qwik/lib/qwik/act-archive.rb +386 -0
- data/vendor/qwik/lib/qwik/act-attach.rb +304 -0
- data/vendor/qwik/lib/qwik/act-backup.rb +236 -0
- data/vendor/qwik/lib/qwik/act-basic.rb +325 -0
- data/vendor/qwik/lib/qwik/act-book.rb +161 -0
- data/vendor/qwik/lib/qwik/act-calc.rb +371 -0
- data/vendor/qwik/lib/qwik/act-charset.rb +251 -0
- data/vendor/qwik/lib/qwik/act-christel.rb +112 -0
- data/vendor/qwik/lib/qwik/act-chronology.rb +149 -0
- data/vendor/qwik/lib/qwik/act-code.rb +155 -0
- data/vendor/qwik/lib/qwik/act-comment.rb +554 -0
- data/vendor/qwik/lib/qwik/act-config.rb +49 -0
- data/vendor/qwik/lib/qwik/act-counter.rb +125 -0
- data/vendor/qwik/lib/qwik/act-day.rb +96 -0
- data/vendor/qwik/lib/qwik/act-describe.rb +135 -0
- data/vendor/qwik/lib/qwik/act-diary.rb +109 -0
- data/vendor/qwik/lib/qwik/act-edit.rb +317 -0
- data/vendor/qwik/lib/qwik/act-embed-html.rb +296 -0
- data/vendor/qwik/lib/qwik/act-emode.rb +150 -0
- data/vendor/qwik/lib/qwik/act-event.rb +187 -0
- data/vendor/qwik/lib/qwik/act-file.rb +303 -0
- data/vendor/qwik/lib/qwik/act-files.rb +771 -0
- data/vendor/qwik/lib/qwik/act-getpass.rb +295 -0
- data/vendor/qwik/lib/qwik/act-history.rb +136 -0
- data/vendor/qwik/lib/qwik/act-html.rb +204 -0
- data/vendor/qwik/lib/qwik/act-httpauth.rb +147 -0
- data/vendor/qwik/lib/qwik/act-include.rb +142 -0
- data/vendor/qwik/lib/qwik/act-interwiki.rb +189 -0
- data/vendor/qwik/lib/qwik/act-isearch.rb +109 -0
- data/vendor/qwik/lib/qwik/act-keywords.rb +137 -0
- data/vendor/qwik/lib/qwik/act-lang.rb +81 -0
- data/vendor/qwik/lib/qwik/act-license.rb +63 -0
- data/vendor/qwik/lib/qwik/act-list.rb +287 -0
- data/vendor/qwik/lib/qwik/act-login.rb +410 -0
- data/vendor/qwik/lib/qwik/act-logout.rb +60 -0
- data/vendor/qwik/lib/qwik/act-mail.rb +159 -0
- data/vendor/qwik/lib/qwik/act-map.rb +292 -0
- data/vendor/qwik/lib/qwik/act-md5.rb +42 -0
- data/vendor/qwik/lib/qwik/act-mdlb.rb +741 -0
- data/vendor/qwik/lib/qwik/act-media.rb +416 -0
- data/vendor/qwik/lib/qwik/act-member.rb +157 -0
- data/vendor/qwik/lib/qwik/act-menu.rb +142 -0
- data/vendor/qwik/lib/qwik/act-metadata.rb +323 -0
- data/vendor/qwik/lib/qwik/act-mlsubmitform.rb +49 -0
- data/vendor/qwik/lib/qwik/act-monitor.rb +167 -0
- data/vendor/qwik/lib/qwik/act-new.rb +418 -0
- data/vendor/qwik/lib/qwik/act-pagelist.rb +248 -0
- data/vendor/qwik/lib/qwik/act-password.rb +145 -0
- data/vendor/qwik/lib/qwik/act-plan.rb +210 -0
- data/vendor/qwik/lib/qwik/act-povray.rb +230 -0
- data/vendor/qwik/lib/qwik/act-presen.rb +380 -0
- data/vendor/qwik/lib/qwik/act-redirect.rb +133 -0
- data/vendor/qwik/lib/qwik/act-ring.rb +1071 -0
- data/vendor/qwik/lib/qwik/act-rrefs.rb +255 -0
- data/vendor/qwik/lib/qwik/act-ruby.rb +116 -0
- data/vendor/qwik/lib/qwik/act-sample.rb +170 -0
- data/vendor/qwik/lib/qwik/act-save.rb +295 -0
- data/vendor/qwik/lib/qwik/act-schedule.rb +374 -0
- data/vendor/qwik/lib/qwik/act-search.rb +180 -0
- data/vendor/qwik/lib/qwik/act-searchwords.rb +51 -0
- data/vendor/qwik/lib/qwik/act-sendpass.rb +83 -0
- data/vendor/qwik/lib/qwik/act-site.rb +89 -0
- data/vendor/qwik/lib/qwik/act-sitebackup.rb +419 -0
- data/vendor/qwik/lib/qwik/act-sitelog.rb +118 -0
- data/vendor/qwik/lib/qwik/act-smil.rb +299 -0
- data/vendor/qwik/lib/qwik/act-status.rb +220 -0
- data/vendor/qwik/lib/qwik/act-style.rb +608 -0
- data/vendor/qwik/lib/qwik/act-table.rb +263 -0
- data/vendor/qwik/lib/qwik/act-tableform.rb +241 -0
- data/vendor/qwik/lib/qwik/act-tag.rb +103 -0
- data/vendor/qwik/lib/qwik/act-text.rb +70 -0
- data/vendor/qwik/lib/qwik/act-textarea.rb +164 -0
- data/vendor/qwik/lib/qwik/act-theme.rb +346 -0
- data/vendor/qwik/lib/qwik/act-toc.rb +112 -0
- data/vendor/qwik/lib/qwik/act-typekey.rb +198 -0
- data/vendor/qwik/lib/qwik/act-under-const.rb +94 -0
- data/vendor/qwik/lib/qwik/act-webservice.rb +321 -0
- data/vendor/qwik/lib/qwik/act-wema.rb +558 -0
- data/vendor/qwik/lib/qwik/act-wysiwyg.rb +238 -0
- data/vendor/qwik/lib/qwik/action.rb +325 -0
- data/vendor/qwik/lib/qwik/autoreload.rb +98 -0
- data/vendor/qwik/lib/qwik/bench-bench.rb +28 -0
- data/vendor/qwik/lib/qwik/bench-emode.rb +47 -0
- data/vendor/qwik/lib/qwik/bench-format-xml.rb +70 -0
- data/vendor/qwik/lib/qwik/bench-large-table.rb +62 -0
- data/vendor/qwik/lib/qwik/bench-md5.rb +14 -0
- data/vendor/qwik/lib/qwik/bench-module-session.rb +19 -0
- data/vendor/qwik/lib/qwik/bench-page.rb +50 -0
- data/vendor/qwik/lib/qwik/bench-s-md5.rb +28 -0
- data/vendor/qwik/lib/qwik/bench-session.rb +25 -0
- data/vendor/qwik/lib/qwik/bench-textformat.rb +31 -0
- data/vendor/qwik/lib/qwik/catalog-factory.rb +91 -0
- data/vendor/qwik/lib/qwik/catalog-ja.rb +479 -0
- data/vendor/qwik/lib/qwik/catalog-ml-ja.rb +145 -0
- data/vendor/qwik/lib/qwik/check-act-monitor.rb +112 -0
- data/vendor/qwik/lib/qwik/check-act-monitor2.rb +46 -0
- data/vendor/qwik/lib/qwik/check-act-theme.rb +27 -0
- data/vendor/qwik/lib/qwik/check-event.rb +112 -0
- data/vendor/qwik/lib/qwik/check-event2.rb +55 -0
- data/vendor/qwik/lib/qwik/check-htree-rexml.rb +77 -0
- data/vendor/qwik/lib/qwik/check-htree.rb +51 -0
- data/vendor/qwik/lib/qwik/check-libxml.rb +135 -0
- data/vendor/qwik/lib/qwik/check-many-pages.rb +47 -0
- data/vendor/qwik/lib/qwik/check-monitor.rb +33 -0
- data/vendor/qwik/lib/qwik/check-observer.rb +67 -0
- data/vendor/qwik/lib/qwik/check-server.rb +61 -0
- data/vendor/qwik/lib/qwik/check-uuencode.rb +33 -0
- data/vendor/qwik/lib/qwik/check-webdav.rb +65 -0
- data/vendor/qwik/lib/qwik/check-xml-xpath.rb +27 -0
- data/vendor/qwik/lib/qwik/common-backtrace.rb +94 -0
- data/vendor/qwik/lib/qwik/common-basic.rb +111 -0
- data/vendor/qwik/lib/qwik/common-condition.rb +142 -0
- data/vendor/qwik/lib/qwik/common-error.rb +48 -0
- data/vendor/qwik/lib/qwik/common-gettext.rb +50 -0
- data/vendor/qwik/lib/qwik/common-javascript.rb +45 -0
- data/vendor/qwik/lib/qwik/common-notice.rb +132 -0
- data/vendor/qwik/lib/qwik/common-plain.rb +105 -0
- data/vendor/qwik/lib/qwik/common-plugin.rb +111 -0
- data/vendor/qwik/lib/qwik/common-res.rb +76 -0
- data/vendor/qwik/lib/qwik/common-resolve.rb +92 -0
- data/vendor/qwik/lib/qwik/common-send.rb +171 -0
- data/vendor/qwik/lib/qwik/common-session.rb +139 -0
- data/vendor/qwik/lib/qwik/common-surface.rb +261 -0
- data/vendor/qwik/lib/qwik/common-url.rb +90 -0
- data/vendor/qwik/lib/qwik/compat/Makefile +12 -0
- data/vendor/qwik/lib/qwik/compat/add_load_path.rb +1 -0
- data/vendor/qwik/lib/qwik/config.rb +299 -0
- data/vendor/qwik/lib/qwik/db-b-backup.rb +142 -0
- data/vendor/qwik/lib/qwik/db-backup.rb +184 -0
- data/vendor/qwik/lib/qwik/db-berkeley.rb +306 -0
- data/vendor/qwik/lib/qwik/db-filesystem.rb +305 -0
- data/vendor/qwik/lib/qwik/db-indexer.rb +154 -0
- data/vendor/qwik/lib/qwik/db-searchwords.rb +238 -0
- data/vendor/qwik/lib/qwik/description-ja.rb +267 -0
- data/vendor/qwik/lib/qwik/description.rb +256 -0
- data/vendor/qwik/lib/qwik/dev-add-copyright.rb +23 -0
- data/vendor/qwik/lib/qwik/dev-backup.rb +24 -0
- data/vendor/qwik/lib/qwik/dev-bench.rb +175 -0
- data/vendor/qwik/lib/qwik/dev-calctime.rb +52 -0
- data/vendor/qwik/lib/qwik/dev-css-compressor.rb +60 -0
- data/vendor/qwik/lib/qwik/dev-extract-catalog.rb +102 -0
- data/vendor/qwik/lib/qwik/dev-js-compressor.rb +73 -0
- data/vendor/qwik/lib/qwik/dev-release.rb +235 -0
- data/vendor/qwik/lib/qwik/dev-replace.rb +353 -0
- data/vendor/qwik/lib/qwik/dev-sendmail.rb +25 -0
- data/vendor/qwik/lib/qwik/farm.rb +283 -0
- data/vendor/qwik/lib/qwik/gettext.rb +56 -0
- data/vendor/qwik/lib/qwik/group-cond.rb +157 -0
- data/vendor/qwik/lib/qwik/group-config.rb +247 -0
- data/vendor/qwik/lib/qwik/group-confirm.rb +147 -0
- data/vendor/qwik/lib/qwik/group-db.rb +326 -0
- data/vendor/qwik/lib/qwik/group-mail.rb +195 -0
- data/vendor/qwik/lib/qwik/group-member.rb +307 -0
- data/vendor/qwik/lib/qwik/group-sendmail.rb +231 -0
- data/vendor/qwik/lib/qwik/group-site.rb +374 -0
- data/vendor/qwik/lib/qwik/group-sweep.rb +63 -0
- data/vendor/qwik/lib/qwik/group.rb +157 -0
- data/vendor/qwik/lib/qwik/helper.rb +6 -0
- data/vendor/qwik/lib/qwik/html-generator.rb +104 -0
- data/vendor/qwik/lib/qwik/html-to-wabisabi.rb +148 -0
- data/vendor/qwik/lib/qwik/htree-diff.rb +87 -0
- data/vendor/qwik/lib/qwik/htree-format-xml.rb +57 -0
- data/vendor/qwik/lib/qwik/htree-generator.rb +144 -0
- data/vendor/qwik/lib/qwik/htree-get.rb +251 -0
- data/vendor/qwik/lib/qwik/htree-html-generator.rb +179 -0
- data/vendor/qwik/lib/qwik/htree-template.rb +263 -0
- data/vendor/qwik/lib/qwik/htree-to-wabisabi.rb +171 -0
- data/vendor/qwik/lib/qwik/loadlib.rb +79 -0
- data/vendor/qwik/lib/qwik/logger.rb +115 -0
- data/vendor/qwik/lib/qwik/mail-body.rb +171 -0
- data/vendor/qwik/lib/qwik/mail-header.rb +474 -0
- data/vendor/qwik/lib/qwik/mail-multipart.rb +193 -0
- data/vendor/qwik/lib/qwik/mail-parse.rb +147 -0
- data/vendor/qwik/lib/qwik/mail.rb +341 -0
- data/vendor/qwik/lib/qwik/mailaddress.rb +83 -0
- data/vendor/qwik/lib/qwik/mdlb-model.rb +81 -0
- data/vendor/qwik/lib/qwik/mdlb-sample.rb +324 -0
- data/vendor/qwik/lib/qwik/ml-catalog-factory.rb +27 -0
- data/vendor/qwik/lib/qwik/ml-exception.rb +15 -0
- data/vendor/qwik/lib/qwik/ml-generator.rb +28 -0
- data/vendor/qwik/lib/qwik/ml-gettext.rb +137 -0
- data/vendor/qwik/lib/qwik/ml-logger.rb +82 -0
- data/vendor/qwik/lib/qwik/ml-memory.rb +65 -0
- data/vendor/qwik/lib/qwik/ml-msg-validator.rb +86 -0
- data/vendor/qwik/lib/qwik/ml-processor.rb +609 -0
- data/vendor/qwik/lib/qwik/ml-quickml-server.rb +122 -0
- data/vendor/qwik/lib/qwik/ml-sendmail.rb +0 -0
- data/vendor/qwik/lib/qwik/ml-server.rb +107 -0
- data/vendor/qwik/lib/qwik/ml-session.rb +348 -0
- data/vendor/qwik/lib/qwik/ml-sweeper.rb +101 -0
- data/vendor/qwik/lib/qwik/mock-logger.rb +65 -0
- data/vendor/qwik/lib/qwik/mock-sendmail.rb +78 -0
- data/vendor/qwik/lib/qwik/mock-socket.rb +82 -0
- data/vendor/qwik/lib/qwik/modulobe.rb +406 -0
- data/vendor/qwik/lib/qwik/mongrel-server.rb +72 -0
- data/vendor/qwik/lib/qwik/page-files.rb +249 -0
- data/vendor/qwik/lib/qwik/page-generate.rb +82 -0
- data/vendor/qwik/lib/qwik/page-get.rb +262 -0
- data/vendor/qwik/lib/qwik/page-images.rb +168 -0
- data/vendor/qwik/lib/qwik/page-put.rb +128 -0
- data/vendor/qwik/lib/qwik/page-rrefs.rb +154 -0
- data/vendor/qwik/lib/qwik/page-title.rb +0 -0
- data/vendor/qwik/lib/qwik/page-wikidb.rb +234 -0
- data/vendor/qwik/lib/qwik/page.rb +67 -0
- data/vendor/qwik/lib/qwik/pages.rb +444 -0
- data/vendor/qwik/lib/qwik/parse-plugin.rb +249 -0
- data/vendor/qwik/lib/qwik/parser-emode.rb +116 -0
- data/vendor/qwik/lib/qwik/parser-inline.rb +272 -0
- data/vendor/qwik/lib/qwik/parser.rb +349 -0
- data/vendor/qwik/lib/qwik/password.rb +183 -0
- data/vendor/qwik/lib/qwik/periodic.rb +79 -0
- data/vendor/qwik/lib/qwik/qp.rb +56 -0
- data/vendor/qwik/lib/qwik/qwik-service.rb +341 -0
- data/vendor/qwik/lib/qwik/qwik.rb +5 -0
- data/vendor/qwik/lib/qwik/qwikweb-adduser.rb +34 -0
- data/vendor/qwik/lib/qwik/qwikweb-catalog-validator.rb +110 -0
- data/vendor/qwik/lib/qwik/qwikweb-incgen.rb +28 -0
- data/vendor/qwik/lib/qwik/qwikweb-makesite.rb +41 -0
- data/vendor/qwik/lib/qwik/qwikweb-server.rb +44 -0
- data/vendor/qwik/lib/qwik/qwikweb-showpassword.rb +26 -0
- data/vendor/qwik/lib/qwik/qwikweb-watchlog.rb +67 -0
- data/vendor/qwik/lib/qwik/request-path.rb +304 -0
- data/vendor/qwik/lib/qwik/request-ua.rb +76 -0
- data/vendor/qwik/lib/qwik/request-webrick.rb +81 -0
- data/vendor/qwik/lib/qwik/request.rb +91 -0
- data/vendor/qwik/lib/qwik/resolve-tdiary.rb +292 -0
- data/vendor/qwik/lib/qwik/resolve.rb +121 -0
- data/vendor/qwik/lib/qwik/response.rb +228 -0
- data/vendor/qwik/lib/qwik/server-memory.rb +57 -0
- data/vendor/qwik/lib/qwik/server-webrick.rb +102 -0
- data/vendor/qwik/lib/qwik/server.rb +252 -0
- data/vendor/qwik/lib/qwik/site-config.rb +149 -0
- data/vendor/qwik/lib/qwik/site-db.rb +136 -0
- data/vendor/qwik/lib/qwik/site-event.rb +162 -0
- data/vendor/qwik/lib/qwik/site-files.rb +86 -0
- data/vendor/qwik/lib/qwik/site-group.rb +103 -0
- data/vendor/qwik/lib/qwik/site-index.rb +47 -0
- data/vendor/qwik/lib/qwik/site-log.rb +64 -0
- data/vendor/qwik/lib/qwik/site-member.rb +230 -0
- data/vendor/qwik/lib/qwik/site-monitor.rb +97 -0
- data/vendor/qwik/lib/qwik/site-pages.rb +62 -0
- data/vendor/qwik/lib/qwik/site-plan.rb +139 -0
- data/vendor/qwik/lib/qwik/site-report.rb +282 -0
- data/vendor/qwik/lib/qwik/site-resolve.rb +230 -0
- data/vendor/qwik/lib/qwik/site-rrefs.rb +18 -0
- data/vendor/qwik/lib/qwik/site-search.rb +180 -0
- data/vendor/qwik/lib/qwik/site-timeline.rb +153 -0
- data/vendor/qwik/lib/qwik/site-url.rb +189 -0
- data/vendor/qwik/lib/qwik/site.rb +76 -0
- data/vendor/qwik/lib/qwik/smil-time.rb +105 -0
- data/vendor/qwik/lib/qwik/smtp-session.rb +331 -0
- data/vendor/qwik/lib/qwik/template-generator.rb +149 -0
- data/vendor/qwik/lib/qwik/template.rb +85 -0
- data/vendor/qwik/lib/qwik/test-common.rb +10 -0
- data/vendor/qwik/lib/qwik/test-ml-info.rb +225 -0
- data/vendor/qwik/lib/qwik/test-module-ml.rb +142 -0
- data/vendor/qwik/lib/qwik/test-module-path.rb +110 -0
- data/vendor/qwik/lib/qwik/test-module-public.rb +70 -0
- data/vendor/qwik/lib/qwik/test-module-server.rb +98 -0
- data/vendor/qwik/lib/qwik/test-module-session.rb +264 -0
- data/vendor/qwik/lib/qwik/test-module-suite.rb +91 -0
- data/vendor/qwik/lib/qwik/test-ms-applemail.rb +59 -0
- data/vendor/qwik/lib/qwik/test-ms-attach.rb +174 -0
- data/vendor/qwik/lib/qwik/test-ms-basic.rb +40 -0
- data/vendor/qwik/lib/qwik/test-ms-close.rb +35 -0
- data/vendor/qwik/lib/qwik/test-ms-confirm.rb +75 -0
- data/vendor/qwik/lib/qwik/test-ms-ignore-spam.rb +57 -0
- data/vendor/qwik/lib/qwik/test-ms-japanese.rb +97 -0
- data/vendor/qwik/lib/qwik/test-ms-jfilename.rb +82 -0
- data/vendor/qwik/lib/qwik/test-ms-large.rb +58 -0
- data/vendor/qwik/lib/qwik/test-ms-member.rb +103 -0
- data/vendor/qwik/lib/qwik/test-ms-multipart.rb +84 -0
- data/vendor/qwik/lib/qwik/test-ms-org.rb +129 -0
- data/vendor/qwik/lib/qwik/test-ms-plan.rb +130 -0
- data/vendor/qwik/lib/qwik/test-ms-post.rb +53 -0
- data/vendor/qwik/lib/qwik/test-ms-quopri.rb +76 -0
- data/vendor/qwik/lib/qwik/test-sub-quopri.rb +45 -0
- data/vendor/qwik/lib/qwik/test-submit-base64.rb +59 -0
- data/vendor/qwik/lib/qwik/test-submit-forward.rb +61 -0
- data/vendor/qwik/lib/qwik/test-submit-html-mail.rb +52 -0
- data/vendor/qwik/lib/qwik/test-submit-japanese.rb +135 -0
- data/vendor/qwik/lib/qwik/test-submit-jfilename.rb +144 -0
- data/vendor/qwik/lib/qwik/test-submit-uuencode.rb +71 -0
- data/vendor/qwik/lib/qwik/test-suite-all.rb +8 -0
- data/vendor/qwik/lib/qwik/test-suite-basic.rb +9 -0
- data/vendor/qwik/lib/qwik/test-suite-ml.rb +9 -0
- data/vendor/qwik/lib/qwik/test-typekey.rb +64 -0
- data/vendor/qwik/lib/qwik/testunit.rb +45 -0
- data/vendor/qwik/lib/qwik/tokenizer-inline.rb +288 -0
- data/vendor/qwik/lib/qwik/tokenizer.rb +331 -0
- data/vendor/qwik/lib/qwik/typekey.rb +160 -0
- data/vendor/qwik/lib/qwik/util-basic.rb +135 -0
- data/vendor/qwik/lib/qwik/util-charset.rb +331 -0
- data/vendor/qwik/lib/qwik/util-css.rb +56 -0
- data/vendor/qwik/lib/qwik/util-csv-tokenizer.rb +113 -0
- data/vendor/qwik/lib/qwik/util-filename.rb +112 -0
- data/vendor/qwik/lib/qwik/util-pathname.rb +202 -0
- data/vendor/qwik/lib/qwik/util-pid.rb +58 -0
- data/vendor/qwik/lib/qwik/util-safe.rb +67 -0
- data/vendor/qwik/lib/qwik/util-sendmail.rb +273 -0
- data/vendor/qwik/lib/qwik/util-string.rb +202 -0
- data/vendor/qwik/lib/qwik/util-time.rb +125 -0
- data/vendor/qwik/lib/qwik/util-webrick.rb +176 -0
- data/vendor/qwik/lib/qwik/version.rb +11 -0
- data/vendor/qwik/lib/qwik/wabisabi-basic.rb +163 -0
- data/vendor/qwik/lib/qwik/wabisabi-diff.rb +130 -0
- data/vendor/qwik/lib/qwik/wabisabi-format-xml.rb +310 -0
- data/vendor/qwik/lib/qwik/wabisabi-generator.rb +262 -0
- data/vendor/qwik/lib/qwik/wabisabi-index.rb +174 -0
- data/vendor/qwik/lib/qwik/wabisabi-table.rb +212 -0
- data/vendor/qwik/lib/qwik/wabisabi-template.rb +295 -0
- data/vendor/qwik/lib/qwik/wabisabi-to-htree.rb +111 -0
- data/vendor/qwik/lib/qwik/wabisabi-to-wiki.rb +690 -0
- data/vendor/qwik/lib/qwik/wabisabi-traverse.rb +207 -0
- data/vendor/qwik/lib/qwik/wabisabi-validator.rb +116 -0
- data/vendor/qwik/lib/qwik/wabisabi.rb +5 -0
- metadata +492 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# -*- coding: shift_jis -*-
|
|
2
|
+
# Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
|
|
3
|
+
# This is free software with ABSOLUTELY NO WARRANTY.
|
|
4
|
+
# You can redistribute it and/or modify it under the terms of the GNU GPL 2.
|
|
5
|
+
|
|
6
|
+
$LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
|
|
7
|
+
require 'qwik/wabisabi-diff'
|
|
8
|
+
|
|
9
|
+
module Qwik
|
|
10
|
+
class Action
|
|
11
|
+
D_ExtBackup = {
|
|
12
|
+
:dt => 'Backup pages',
|
|
13
|
+
:dd => 'You can see backup of the page.',
|
|
14
|
+
:dc => "* How to
|
|
15
|
+
Go edit page, follow 'Backup' link in the right side.
|
|
16
|
+
You see the backup list of the page.
|
|
17
|
+
"
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
D_ExtBackup_ja = {
|
|
21
|
+
:dt => 'ページ・バックアップ',
|
|
22
|
+
:dd => 'ページのバックアップを見ることができます。',
|
|
23
|
+
:dc => "* 使い方
|
|
24
|
+
編集画面の右側に「バックアップ」というリンクがあります。
|
|
25
|
+
そのリンクより、ページのバックアップリストを見ることができます。
|
|
26
|
+
"
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
def plg_backup_list
|
|
30
|
+
return if @req.user.nil?
|
|
31
|
+
return if ! defined?(@req.base) || @req.base.nil?
|
|
32
|
+
return page_attribute('backup', _('Show backup'))
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def ext_backup
|
|
36
|
+
c_require_pagename
|
|
37
|
+
c_require_member
|
|
38
|
+
#c_require_page_exist # does not require the page is exist
|
|
39
|
+
# because you can see the list of the page that is already deleted.
|
|
40
|
+
c_require_no_path_args
|
|
41
|
+
|
|
42
|
+
args = @req.ext_args
|
|
43
|
+
if 0 < args.length # has target
|
|
44
|
+
return backup_show(@site, @req.base, args)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
return backup_list_page(@site, @req.base)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def backup_show(site, key, args)
|
|
51
|
+
page = site[key]
|
|
52
|
+
|
|
53
|
+
return c_nerror('only one time stamp') if 1 < args.length
|
|
54
|
+
time = args.shift
|
|
55
|
+
return c_nerror('should be number') unless /\A[0-9]+\z/ =~ time
|
|
56
|
+
|
|
57
|
+
# Is the backup exist?
|
|
58
|
+
time = Time.at(time.to_i)
|
|
59
|
+
unless site.backupdb.exist?(key, time)
|
|
60
|
+
return c_notfound('not found')
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
str = site.backupdb.get(key, time) # Get the old content.
|
|
64
|
+
=begin
|
|
65
|
+
# Do not show diffs for now. (2009/9/1)
|
|
66
|
+
list = backup_list(site, key) # Get the list.
|
|
67
|
+
|
|
68
|
+
# Get the index of the content.
|
|
69
|
+
index = nil
|
|
70
|
+
list.each_with_index {|a, i|
|
|
71
|
+
if a[1] == time.to_i
|
|
72
|
+
index = i
|
|
73
|
+
end
|
|
74
|
+
}
|
|
75
|
+
return c_notfound('no data?') if index.nil?
|
|
76
|
+
|
|
77
|
+
msg = ''
|
|
78
|
+
if index == 0
|
|
79
|
+
msg = [:p, _('This is the first page.')]
|
|
80
|
+
else
|
|
81
|
+
# FIXME: fix diff function. (2009/9/1)
|
|
82
|
+
diff = backup_diff(list, index-1, index)
|
|
83
|
+
msg = [:div, {:class=>'differ'}, *diff]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
return c_plain("#{key} @ #{time.ymdax}") {
|
|
87
|
+
[[:div, {:class=>'day'},
|
|
88
|
+
[:h2, _('Difference from the previous page')],
|
|
89
|
+
[:div, {:class=>'section'}, msg]],
|
|
90
|
+
[:div, {:class=>'day'},
|
|
91
|
+
[:h2, _('Original data')],
|
|
92
|
+
[:div, {:class=>'section'},
|
|
93
|
+
[:pre, str]]]]
|
|
94
|
+
}
|
|
95
|
+
=end
|
|
96
|
+
|
|
97
|
+
return c_plain("#{key} @ #{time.ymdax}") {
|
|
98
|
+
[[:div, {:class=>'day'},
|
|
99
|
+
[:h2, _('Original data')],
|
|
100
|
+
[:div, {:class=>'section'},
|
|
101
|
+
[:pre, str]]]]
|
|
102
|
+
}
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def backup_list(site, key)
|
|
106
|
+
list = []
|
|
107
|
+
site.backupdb.each_by_key(key) {|v, time|
|
|
108
|
+
list << [v, time.to_i]
|
|
109
|
+
}
|
|
110
|
+
return list
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def backup_diff(list, last, now)
|
|
114
|
+
s1, t1 = list[last]
|
|
115
|
+
s2, t2 = list[now]
|
|
116
|
+
return DiffGenerator.generate(s1, s2)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def backup_list_page(site, key)
|
|
120
|
+
list = backup_list(site, key)
|
|
121
|
+
|
|
122
|
+
ul = list.map {|v, time|
|
|
123
|
+
[:li, [:a, {:href=>"#{key}.#{time}.backup"},
|
|
124
|
+
Time.at(time).format_date]]
|
|
125
|
+
}
|
|
126
|
+
if 0 < ul.length
|
|
127
|
+
ul.last << ' '+_('<-')+' '+ _('Newest')
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
return c_plain(_('Backup list')) {
|
|
131
|
+
[:div, {:class=>'day'},
|
|
132
|
+
[:div, {:class=>'section'},
|
|
133
|
+
[:ul, ul]]]
|
|
134
|
+
}
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
if $0 == __FILE__
|
|
140
|
+
require 'qwik/test-common'
|
|
141
|
+
$test = true
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
if defined?($test) && $test
|
|
145
|
+
class TestActBackup < Test::Unit::TestCase
|
|
146
|
+
include TestSession
|
|
147
|
+
|
|
148
|
+
def test_plg_backup_list
|
|
149
|
+
ok_wi [:span, {:class=>'attribute'},
|
|
150
|
+
[:a, {:href=>'1.backup'}, 'Show backup']],
|
|
151
|
+
'{{backup_list}}'
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def test_act_backup2
|
|
155
|
+
#return if $0 != __FILE__
|
|
156
|
+
|
|
157
|
+
# Only members can see the page.
|
|
158
|
+
res = session '/test/1.html'
|
|
159
|
+
ok_title 'Members Only'
|
|
160
|
+
res = session '/test/1.backup'
|
|
161
|
+
ok_title 'Members Only'
|
|
162
|
+
|
|
163
|
+
t_add_user
|
|
164
|
+
|
|
165
|
+
# You can see backup page even if the page does not exist.
|
|
166
|
+
res = session '/test/1.html'
|
|
167
|
+
ok_title 'Page not found.'
|
|
168
|
+
res = session '/test/1.backup'
|
|
169
|
+
ok_in ['Backup list'], '//title'
|
|
170
|
+
|
|
171
|
+
page = @site.create_new
|
|
172
|
+
page.put_with_time('t', 0)
|
|
173
|
+
|
|
174
|
+
res = session '/test/1.html'
|
|
175
|
+
ok_title '1'
|
|
176
|
+
res = session '/test/1.backup'
|
|
177
|
+
ok_in ['Backup list'], '//title'
|
|
178
|
+
|
|
179
|
+
# Error check.
|
|
180
|
+
res = session '/test/1.backup/0'
|
|
181
|
+
ok_title 'Incorrect path arguments.'
|
|
182
|
+
res = session '/test/1.100.200.backup'
|
|
183
|
+
ok_title 'only one time stamp'
|
|
184
|
+
res = session '/test/1.hoge.backup'
|
|
185
|
+
ok_title 'should be number'
|
|
186
|
+
|
|
187
|
+
list = @action.backup_list(@site, '1')
|
|
188
|
+
# eq 't', list[0][0]
|
|
189
|
+
# eq '', list[1][0]
|
|
190
|
+
eq nil, list[2]
|
|
191
|
+
|
|
192
|
+
t1 = list[0][1]
|
|
193
|
+
res = session "/test/1.#{t1}.backup"
|
|
194
|
+
assert_text(/\A1 @ /, 'title')
|
|
195
|
+
assert_text 't', 'pre'
|
|
196
|
+
|
|
197
|
+
# Edit the page again.
|
|
198
|
+
page.put_with_time 't2', 1
|
|
199
|
+
|
|
200
|
+
list = @action.backup_list(@site, '1')
|
|
201
|
+
# eq 't', list[0][0]
|
|
202
|
+
# eq 't2', list[1][0]
|
|
203
|
+
# eq '', list[2][0]
|
|
204
|
+
eq nil, list[3]
|
|
205
|
+
|
|
206
|
+
diff = @action.backup_diff(list, 0, 1)
|
|
207
|
+
# eq [[:del, 't'], [:br], [:ins, 't2'], [:br]], diff
|
|
208
|
+
|
|
209
|
+
t2 = list[1][1]
|
|
210
|
+
res = session "/test/1.#{t2}.backup"
|
|
211
|
+
assert_text(/\A1 @ /, 'title')
|
|
212
|
+
assert_text('t2', 'pre')
|
|
213
|
+
# ok_in [[:del, 't'], [:br], [:ins, 't2'], [:br]],
|
|
214
|
+
# "//div[@class='differ']"
|
|
215
|
+
|
|
216
|
+
# Edit the page again. The 3rd times.
|
|
217
|
+
page.put_with_time('t3', 2)
|
|
218
|
+
|
|
219
|
+
list = @action.backup_list(@site, '1')
|
|
220
|
+
# eq 't', list[0][0]
|
|
221
|
+
# eq 't2', list[1][0]
|
|
222
|
+
# eq 't3', list[2][0]
|
|
223
|
+
# eq '', list[3][0]
|
|
224
|
+
eq nil, list[4]
|
|
225
|
+
|
|
226
|
+
diff = @action.backup_diff(list, 1, 2)
|
|
227
|
+
# eq [[:del, 't2'], [:br], [:ins, 't3'], [:br]], diff
|
|
228
|
+
|
|
229
|
+
t3 = list[2][1]
|
|
230
|
+
res = session "/test/1.#{t3}.backup"
|
|
231
|
+
assert_text 't3', 'pre'
|
|
232
|
+
# ok_in [[:del, 't2'], [:br], [:ins, 't3'], [:br]],
|
|
233
|
+
# "//div[@class='differ']"
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
end
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
# -*- coding: shift_jis -*-
|
|
2
|
+
# Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
|
|
3
|
+
# This is free software with ABSOLUTELY NO WARRANTY.
|
|
4
|
+
# You can redistribute it and/or modify it under the terms of the GNU GPL 2.
|
|
5
|
+
|
|
6
|
+
$LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
|
|
7
|
+
require 'qwik/act-describe'
|
|
8
|
+
|
|
9
|
+
module Qwik
|
|
10
|
+
class Action
|
|
11
|
+
D_PluginBasic = {
|
|
12
|
+
:dt => 'Basic plugins',
|
|
13
|
+
:dd => 'Simple and Basic plugins.',
|
|
14
|
+
:dc => '* Description
|
|
15
|
+
** BR plugin
|
|
16
|
+
You can break a line by using <br> element.
|
|
17
|
+
This is {{br}} a test.
|
|
18
|
+
This is {{br}} a test.
|
|
19
|
+
** Open with new window plugin
|
|
20
|
+
You can make a link to show the page in a new window.
|
|
21
|
+
{{window(http://qwik.jp/)}}
|
|
22
|
+
{{window(http://qwik.jp/)}}
|
|
23
|
+
** Show last modified plugin
|
|
24
|
+
You can show last modified by this plugin.
|
|
25
|
+
{{last_modified}}
|
|
26
|
+
{{last_modified}}
|
|
27
|
+
** Information only for a group
|
|
28
|
+
You can specify content only for guests or for members.
|
|
29
|
+
{{only_guest
|
|
30
|
+
You are a guest.
|
|
31
|
+
}}
|
|
32
|
+
{{only_member
|
|
33
|
+
You are a member.
|
|
34
|
+
}}
|
|
35
|
+
{{only_guest
|
|
36
|
+
You are a guest.
|
|
37
|
+
}}
|
|
38
|
+
{{only_member
|
|
39
|
+
You are a member.
|
|
40
|
+
}}
|
|
41
|
+
** Comment out plugin
|
|
42
|
+
You can comment out the content.
|
|
43
|
+
{{com
|
|
44
|
+
You can not see this line.
|
|
45
|
+
You can not see this line also.
|
|
46
|
+
}}
|
|
47
|
+
{{com
|
|
48
|
+
You can not see this line.
|
|
49
|
+
You can not see this line also.
|
|
50
|
+
}}
|
|
51
|
+
** My group
|
|
52
|
+
You can see your group list.
|
|
53
|
+
{{my_group}}
|
|
54
|
+
{{my_group}}
|
|
55
|
+
** Plugin list plugin
|
|
56
|
+
プラグインの一覧を表示します。
|
|
57
|
+
{{plugin_list}}
|
|
58
|
+
{{plugin_list}}
|
|
59
|
+
'
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
D_PluginBasic_ja = {
|
|
63
|
+
:dt => '基本プラグイン',
|
|
64
|
+
:dd => '基本的なプラグインの説明です。',
|
|
65
|
+
:dc => '* 説明
|
|
66
|
+
** BRプラグイン
|
|
67
|
+
改行します。
|
|
68
|
+
This is {{br}} a test.
|
|
69
|
+
This is {{br}} a test.
|
|
70
|
+
** 新規ウィンドウで表示
|
|
71
|
+
新しいウィンドウを作って、そこで表示させます。
|
|
72
|
+
{{window(http://qwik.jp/)}}
|
|
73
|
+
{{window(http://qwik.jp/)}}
|
|
74
|
+
** 最終更新プラグイン
|
|
75
|
+
最終更新日時を表示します。
|
|
76
|
+
{{last_modified}}
|
|
77
|
+
{{last_modified}}
|
|
78
|
+
** 特定グループ向け表示
|
|
79
|
+
ゲストだけに表示する部分、グループだけに表示する部分を指定できます。
|
|
80
|
+
{{only_guest
|
|
81
|
+
あなたはゲストです。
|
|
82
|
+
}}
|
|
83
|
+
{{only_member
|
|
84
|
+
あなたはメンバーです。
|
|
85
|
+
}}
|
|
86
|
+
{{only_guest
|
|
87
|
+
あなたはゲストです。
|
|
88
|
+
}}
|
|
89
|
+
{{only_member
|
|
90
|
+
あなたはメンバーです。
|
|
91
|
+
}}
|
|
92
|
+
** コメントアウト・プラグイン
|
|
93
|
+
ある領域をコメントアウトします。
|
|
94
|
+
{{com
|
|
95
|
+
この行は見えない。
|
|
96
|
+
この行も見えない。
|
|
97
|
+
}}
|
|
98
|
+
{{com
|
|
99
|
+
この行は見えない。
|
|
100
|
+
この行も見えない。
|
|
101
|
+
}}
|
|
102
|
+
** 自分のグループ
|
|
103
|
+
自分が所属しているグループの一覧を表示します。
|
|
104
|
+
{{my_group}}
|
|
105
|
+
{{my_group}}
|
|
106
|
+
** プラグインリスト・プラグイン
|
|
107
|
+
プラグインの一覧を表示します。
|
|
108
|
+
{{plugin_list}}
|
|
109
|
+
{{plugin_list}}
|
|
110
|
+
'
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
# ==============================
|
|
114
|
+
def plg_qwik_null
|
|
115
|
+
return ''
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def plg_qwik_test
|
|
119
|
+
return 'test'
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# ==============================
|
|
123
|
+
def plg_br
|
|
124
|
+
return [:br]
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# ==============================
|
|
128
|
+
def plg_pre
|
|
129
|
+
content = yield
|
|
130
|
+
return [:pre, content]
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# ==============================
|
|
134
|
+
def plg_window(url, text=nil)
|
|
135
|
+
text = url if text.nil?
|
|
136
|
+
a = [:a, {:href=>url, :class=>'external', :target=>'_blank'}, text]
|
|
137
|
+
# FIXME: Recognize the url is external or not.
|
|
138
|
+
return a
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# ==============================
|
|
142
|
+
def plg_com(*args) # commentout
|
|
143
|
+
#str = yield if block_given?
|
|
144
|
+
return nil # ignore all
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# ============================== adminmenu
|
|
148
|
+
def plg_menu(cmd, msg=nil)
|
|
149
|
+
return if ! @req.user
|
|
150
|
+
return if ! defined?(@req.base) || @req.base.nil?
|
|
151
|
+
return plg_act('new', cmd) if cmd == 'newpage'
|
|
152
|
+
return plg_ext(cmd) if cmd == 'edit' || cmd == 'wysiwyg'
|
|
153
|
+
return nil
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def plg_act(act, msg=act)
|
|
157
|
+
return [:a, {:href=>".#{act}"}, _(msg)]
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def plg_ext(ext, msg=ext)
|
|
161
|
+
return [:a, {:href=>"#{@req.base}.#{ext}"}, _(msg)]
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# ============================== page attribute
|
|
165
|
+
def page_attribute(ext, msg, base=@req.base)
|
|
166
|
+
return [:span, {:class=>'attribute'},
|
|
167
|
+
[:a, {:href=>base+'.'+ext}, msg]]
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def plg_last_modified
|
|
171
|
+
return if ! defined?(@req.base) || @req.base.nil?
|
|
172
|
+
page = @site[@req.base]
|
|
173
|
+
return if page.nil?
|
|
174
|
+
date = page.mtime
|
|
175
|
+
return [:span, {:class=>'attribute'}, _('Last modified'), ': ',
|
|
176
|
+
[:em, date.ymd]]
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def plg_generate_time
|
|
180
|
+
return nil if @req.user.nil?
|
|
181
|
+
return [:span, {:class=>'attribute'}, _('Generation time'), ': ',
|
|
182
|
+
[:em, "__qwik_page_generate_time__", _('seconds')]]
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# ============================== member control
|
|
186
|
+
def plg_only_guest
|
|
187
|
+
return nil if @req.user
|
|
188
|
+
s = yield
|
|
189
|
+
return if s.nil?
|
|
190
|
+
return c_res(s)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def plg_only_member
|
|
194
|
+
return nil if @req.user.nil?
|
|
195
|
+
s = yield
|
|
196
|
+
return if s.nil?
|
|
197
|
+
return c_res(s)
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
# ============================== group
|
|
201
|
+
def plg_my_group
|
|
202
|
+
return nil if @req.user.nil?
|
|
203
|
+
farm = @memory.farm
|
|
204
|
+
group_list = farm.get_my_group(@req.user)
|
|
205
|
+
ul = [:ul]
|
|
206
|
+
group_list.each {|name|
|
|
207
|
+
ul << [:li, [:a, {:href=>"/#{name}/"}, name]]
|
|
208
|
+
}
|
|
209
|
+
return ul
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
# ============================== meta function
|
|
213
|
+
def plg_plugin_list
|
|
214
|
+
desc = descriptions_hash
|
|
215
|
+
plg_desc = plugin_descriptions(desc)
|
|
216
|
+
|
|
217
|
+
ul = [:ul]
|
|
218
|
+
plugin_list.each {|plugin_name|
|
|
219
|
+
if plg_desc[plugin_name]
|
|
220
|
+
desc_link = plg_desc[plugin_name].first
|
|
221
|
+
ul << [:li, [:a, {:href=>"#{desc_link}.describe"}, plugin_name]]
|
|
222
|
+
else
|
|
223
|
+
ul << [:li, plugin_name]
|
|
224
|
+
end
|
|
225
|
+
}
|
|
226
|
+
return ul
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
IGNORE_PLUGINS = [/\Aring_/, /\Amodulobe_/]
|
|
230
|
+
def plugin_list
|
|
231
|
+
return self.methods.grep(/\Aplg_/).map {|name|
|
|
232
|
+
name.sub(/\Aplg_/) {''}
|
|
233
|
+
}.reject {|name|
|
|
234
|
+
IGNORE_PLUGINS.any? {|re| re =~ name }
|
|
235
|
+
}.sort
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
def descriptions_hash
|
|
239
|
+
desc = {}
|
|
240
|
+
description_list.each {|name|
|
|
241
|
+
desc[name] = self.class.const_get("D_#{name}")[:dc]
|
|
242
|
+
}
|
|
243
|
+
return desc
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
def plugin_descriptions(desc)
|
|
247
|
+
plg_desc = {}
|
|
248
|
+
desc.each {|k, v|
|
|
249
|
+
v.each {|line|
|
|
250
|
+
if /\{\{([a-z_]+)/ =~ line
|
|
251
|
+
name = $1
|
|
252
|
+
plg_desc[name] = [] if ! plg_desc[name]
|
|
253
|
+
if ! plg_desc[name].include? k
|
|
254
|
+
plg_desc[name] << k
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return plg_desc
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
if $0 == __FILE__
|
|
265
|
+
require 'qwik/test-common'
|
|
266
|
+
$test = true
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
if defined?($test) && $test
|
|
270
|
+
class TestActBasic < Test::Unit::TestCase
|
|
271
|
+
include TestSession
|
|
272
|
+
|
|
273
|
+
def test_all
|
|
274
|
+
# test_null
|
|
275
|
+
ok_wi [''], '{{qwik_null}}'
|
|
276
|
+
|
|
277
|
+
# test_test
|
|
278
|
+
ok_wi ['test'], '{{qwik_test}}'
|
|
279
|
+
|
|
280
|
+
# test_br
|
|
281
|
+
ok_wi([:br], '{{br}}')
|
|
282
|
+
|
|
283
|
+
# test_pre
|
|
284
|
+
ok_wi [:pre, "t\n"], '{{pre
|
|
285
|
+
t
|
|
286
|
+
}}'
|
|
287
|
+
|
|
288
|
+
# test_window
|
|
289
|
+
ok_wi [:a, {:class=>"external", :target=>'_blank', :href=>'url'}, 't'],
|
|
290
|
+
'{{window(url,t)}}'
|
|
291
|
+
ok_wi [:a, {:class=>"external", :target=>'_blank', :href=>'url'}, 'url'],
|
|
292
|
+
'{{window(url)}}'
|
|
293
|
+
|
|
294
|
+
# test_admin_menu
|
|
295
|
+
ok_wi([:a, {:href=>'.new'}, 'newpage'], '{{menu(newpage)}}')
|
|
296
|
+
ok_wi([:a, {:href=>'1.edit'}, 'edit'], '{{menu(edit)}}')
|
|
297
|
+
ok_wi([], '{{menu(nosuchmenu)}}')
|
|
298
|
+
# test for not logined mode
|
|
299
|
+
#ok_wi('', '{{menu(newpage)}}', nil)
|
|
300
|
+
#ok_wi('', '{{menu(edit)}}', nil)
|
|
301
|
+
#ok_wi('', '{{menu(nosuchmenu)}}', nil)
|
|
302
|
+
|
|
303
|
+
# test_meta_plugin
|
|
304
|
+
#ok_wi ['test'], '{{plugin_list}}'
|
|
305
|
+
w = @action.plg_plugin_list
|
|
306
|
+
eq :ul, w[0]
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
def test_page_attribute
|
|
310
|
+
# test_last_modified
|
|
311
|
+
ok_wi(/Last modified: /, '{{last_modified}}')
|
|
312
|
+
|
|
313
|
+
# test_generate_time
|
|
314
|
+
ok_wi(/Generation time: /, '{{generate_time}}')
|
|
315
|
+
|
|
316
|
+
# test_only_member_or_guest
|
|
317
|
+
t_site_open
|
|
318
|
+
ok_wi([:p, 'm'], "{{only_member\nm\n}}")
|
|
319
|
+
assert_path([], "{{only_member\nm\n}}", nil, "//div[@class='section']")
|
|
320
|
+
ok_wi([], "{{only_guest\ng\n}}")
|
|
321
|
+
assert_path([:p, 'g'], "{{only_guest\ng\n}}",
|
|
322
|
+
nil, "//div[@class='section']")
|
|
323
|
+
end
|
|
324
|
+
end
|
|
325
|
+
end
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
|
|
2
|
+
# This is free software with ABSOLUTELY NO WARRANTY.
|
|
3
|
+
# You can redistribute it and/or modify it under the terms of the GNU GPL 2.
|
|
4
|
+
|
|
5
|
+
$LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
|
|
6
|
+
|
|
7
|
+
module Qwik
|
|
8
|
+
class Action
|
|
9
|
+
D_PluginBook = {
|
|
10
|
+
:dt => 'Book and ISBN plugins',
|
|
11
|
+
:dd => 'Add a link to a book or to search by a phrase.',
|
|
12
|
+
:dc => "* Example
|
|
13
|
+
** ISBN plugin
|
|
14
|
+
Add a link to a book by isbn.
|
|
15
|
+
{{isbn(4797318325)}}
|
|
16
|
+
{{isbn(4797318325)}}
|
|
17
|
+
{{isbn_amazon(4797318325)}}
|
|
18
|
+
{{isbn_amazon(4797318325)}}
|
|
19
|
+
{{isbn_amazon(4797318325,書名)}}
|
|
20
|
+
{{isbn_amazon(4797318325,書名)}}
|
|
21
|
+
** Book Serach plugin
|
|
22
|
+
{{book_search(Wiki)}}
|
|
23
|
+
{{book_search(Wiki)}}
|
|
24
|
+
{{book_search(ブログ)}}
|
|
25
|
+
{{book_search(ブログ)}}
|
|
26
|
+
You can edit the book stores list on [[_BookSearch]].
|
|
27
|
+
"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
D_PluginBook_ja = {
|
|
31
|
+
:dt => '本とISBNプラグイン',
|
|
32
|
+
:dd => '本や本の検索へのリンクを作ります。',
|
|
33
|
+
:dc => "* 例
|
|
34
|
+
** ISBNプラグイン
|
|
35
|
+
ISBNでリンクします。
|
|
36
|
+
{{isbn(4797318325)}}
|
|
37
|
+
{{isbn(4797318325)}}
|
|
38
|
+
{{isbn_amazon(4797318325)}}
|
|
39
|
+
{{isbn_amazon(4797318325)}}
|
|
40
|
+
{{isbn_amazon(4797318325,書名)}}
|
|
41
|
+
{{isbn_amazon(4797318325,書名)}}
|
|
42
|
+
リンク先の一覧は、[[_IsbnLink]]で指定できます。
|
|
43
|
+
** 本の検索プラグイン。
|
|
44
|
+
本を検索します。
|
|
45
|
+
{{book_search(Wiki)}}
|
|
46
|
+
{{book_search(Wiki)}}
|
|
47
|
+
{{book_search(ブログ)}}
|
|
48
|
+
{{book_search(ブログ)}}
|
|
49
|
+
検索リンク先の一覧は、[[_BookSearch]]で指定できます。
|
|
50
|
+
"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
BOOK_SEARCH = '_BookSearch'
|
|
54
|
+
|
|
55
|
+
def plg_book(key)
|
|
56
|
+
page = @site[BOOK_SEARCH]
|
|
57
|
+
ar = []
|
|
58
|
+
ar << "book:#{key} "
|
|
59
|
+
page.wikidb.array.each {|name, args|
|
|
60
|
+
url, encoding = args
|
|
61
|
+
sk = key
|
|
62
|
+
sk = sk.to_sjis.escape if encoding == 'sjis'
|
|
63
|
+
sk = sk.to_euc.escape if encoding == 'euc'
|
|
64
|
+
sk = sk.to_utf8.escape if encoding == 'utf8'
|
|
65
|
+
url = url.index("$1") ? url.sub(/\$1/, sk) : url+sk
|
|
66
|
+
ar << [:a, {:href=>url}, name]
|
|
67
|
+
ar << ' '
|
|
68
|
+
}
|
|
69
|
+
return [:div, {:class=>'box'}, ar]
|
|
70
|
+
end
|
|
71
|
+
alias plg_book_search plg_book
|
|
72
|
+
|
|
73
|
+
def plg_isbn_amazon(isbn, t=nil)
|
|
74
|
+
isbn = isbn.to_s
|
|
75
|
+
msg = t
|
|
76
|
+
msg = "isbn:#{isbn}" if t.nil?
|
|
77
|
+
a = @site.siteconfig['aid']
|
|
78
|
+
aid = "/#{a}" if a
|
|
79
|
+
return [:a, {:href=>"http://www.amazon.co.jp/exec/obidos/ASIN/#{isbn}#{aid}/ref=nosim/"}, msg]
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
ISBN_LINK = '_IsbnLink'
|
|
83
|
+
|
|
84
|
+
def plg_isbn(isbn, t=nil)
|
|
85
|
+
isbn = isbn.to_s
|
|
86
|
+
isbn1 = isbn.gsub(/ISBN/i, '')
|
|
87
|
+
isbn2 = isbn1.gsub(/-/, '')
|
|
88
|
+
a = @site.siteconfig['aid']
|
|
89
|
+
aid = "/#{a}" if a
|
|
90
|
+
|
|
91
|
+
link = @site[ISBN_LINK]
|
|
92
|
+
db = link.wikidb
|
|
93
|
+
ar = []
|
|
94
|
+
|
|
95
|
+
msg = t
|
|
96
|
+
msg = "isbn:#{isbn}" if t.nil?
|
|
97
|
+
|
|
98
|
+
ar << msg
|
|
99
|
+
ar << ' '
|
|
100
|
+
|
|
101
|
+
db.array.each {|name, args|
|
|
102
|
+
args = args.dup
|
|
103
|
+
url = args.shift
|
|
104
|
+
next if url.nil?
|
|
105
|
+
|
|
106
|
+
url = url.sub_str('#{isbn1}', isbn1)
|
|
107
|
+
url = url.sub_str('#{isbn2}', isbn2)
|
|
108
|
+
url = url.sub_str('#{aid}', aid)
|
|
109
|
+
ar << [:a, {:href=>url}, name]
|
|
110
|
+
ar << ' '
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return [:div, {:class=>'box'}, ar]
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
if $0 == __FILE__
|
|
119
|
+
require 'qwik/test-common'
|
|
120
|
+
$test = true
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
if defined?($test) && $test
|
|
124
|
+
class TestActBook < Test::Unit::TestCase
|
|
125
|
+
include TestSession
|
|
126
|
+
|
|
127
|
+
def test_book
|
|
128
|
+
page = @site['_BookSearch']
|
|
129
|
+
page.store(',utf8,http://example.com/utf8/,utf8
|
|
130
|
+
,sjis,http://example.com/sjis/,sjis
|
|
131
|
+
,euc,http://example.com/euc/,euc')
|
|
132
|
+
|
|
133
|
+
ok_wi([:div, {:class=>'box'},
|
|
134
|
+
['book:本 ',
|
|
135
|
+
[:a, {:href=>'http://example.com/utf8/%E6%9C%AC'},
|
|
136
|
+
'utf8'], ' ',
|
|
137
|
+
[:a, {:href=>'http://example.com/sjis/%96%7B'},
|
|
138
|
+
'sjis'], ' ',
|
|
139
|
+
[:a, {:href=>'http://example.com/euc/%CB%DC'},
|
|
140
|
+
'euc'], ' ']],
|
|
141
|
+
'{{book_search(本)}}')
|
|
142
|
+
|
|
143
|
+
# test_isbn
|
|
144
|
+
ok_wi([:a, {:href=>'http://www.amazon.co.jp/exec/obidos/ASIN/4797318325/q02-22/ref=nosim/'}, 'isbn:4797318325'], '{{isbn_amazon(4797318325)}}')
|
|
145
|
+
ok_wi([:a, {:href=>'http://www.amazon.co.jp/exec/obidos/ASIN/4797318325/q02-22/ref=nosim/'}, 't'], '{{isbn_amazon(4797318325,t)}}')
|
|
146
|
+
|
|
147
|
+
page = @site['_IsbnLink']
|
|
148
|
+
page.store(',i1,http://example.com/i1/#{isbn1}
|
|
149
|
+
,i2,http://example.com/i2/#{isbn2}
|
|
150
|
+
,aid,http://example.com/aid/#{isbn2}#{aid}
|
|
151
|
+
')
|
|
152
|
+
|
|
153
|
+
ok_wi([:div, {:class=>'box'}, ['isbn:4797318325', ' ',
|
|
154
|
+
[:a, {:href=>'http://example.com/i1/4797318325'}, 'i1'], ' ',
|
|
155
|
+
[:a, {:href=>'http://example.com/i2/4797318325'}, 'i2'], ' ',
|
|
156
|
+
[:a, {:href=>'http://example.com/aid/4797318325/q02-22'},
|
|
157
|
+
'aid'], ' ']],
|
|
158
|
+
'{{isbn(4797318325)}}')
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|