From 9076294bbf1f6192baa00844c02a6f457b04cbbd Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Mon, 2 Aug 2010 20:25:34 +0200 Subject: [PATCH] first commit --- README.rdoc | 27 ++++++++++++++++++ assets/images/important.png | Bin 0 -> 2250 bytes assets/images/note.png | Bin 0 -> 2520 bytes assets/images/tip.png | Bin 0 -> 2909 bytes assets/images/warning.png | Bin 0 -> 3249 bytes assets/stylesheets/wiki_notes.css | 41 ++++++++++++++++++++++++++++ init.rb | 39 ++++++++++++++++++++++++++ lib/wiki_notes_application_hooks.rb | 7 +++++ lib/wiki_notes_macros.rb | 37 +++++++++++++++++++++++++ 9 files changed, 151 insertions(+) create mode 100644 README.rdoc create mode 100644 assets/images/important.png create mode 100644 assets/images/note.png create mode 100644 assets/images/tip.png create mode 100644 assets/images/warning.png create mode 100644 assets/stylesheets/wiki_notes.css create mode 100644 init.rb create mode 100644 lib/wiki_notes_application_hooks.rb create mode 100644 lib/wiki_notes_macros.rb diff --git a/README.rdoc b/README.rdoc new file mode 100644 index 0000000..cd384d3 --- /dev/null +++ b/README.rdoc @@ -0,0 +1,27 @@ += Redmine Wiki Notes Plugin + +== Plugin installation + +1. Copy the plugin directory into the vendor/plugins directory +2. Restart Redmine + +== Usage + +The following macros are added: + +* {{note(text)}} +* {{tip(text)}} +* {{important(text)}} +* {{warning(text)}} + +This displays a block in the wiki page with a corresponding +icon and the specified text. + +== Credits + +The icons and the stylesheet were taken from the DokuWiki Note-Plugin ((c) Olivier +Cortès and others, http://www.dokuwiki.org/plugin:note (GPLv2)). + +== License + +This plugin is released under the GPLv2. diff --git a/assets/images/important.png b/assets/images/important.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8c8a457c72892e7ca4ccd2dbedc3767e4ffbd7 GIT binary patch literal 2250 zcmV;*2sQVKP)LX}OjmAcz@<)@>_$an&DQc<|x-Ba&L0Ig=T_^?0K4xcj z-oNV~+}Zx-H#0jkD^&jINp60Vd+z=HzTbP!J?Gpz@S%Jtw}dnT4+HxEX=^>IZ~d(d ze76I1q1K~F-ZJuViNNy_Y5#w(`r$Exx3?SOR$`3cC+Aa6s&%pHp4lv!-;9)L_Wt%L z&m6os+WVdb?){($6a+u9#^muYFXf9HRsa&29D?*Pk)eK0pFYjg2QKlG=PutA65@Xa zziUeykL}n9$$n(yZDj0SNJRh(DJ7TtlY}B^EGgOYoo-$~7rCJ%^s$1URO{l%zHO{q zvk0sI7;@k^B(8y#P%aKa2m)Rmk4s}XZt=P0 z$vPT>hEv^9PR7d?D*EN_|e|Zk?zhjAwrQ9 zAGys>z?=Q4>IwrX1#_GI{O(X+zWuPL6j#yYvq zHJg8$qw4%um@nPaK)|b^Ywt&GAp}(cokUV1kQ_T7$!Cc@V{xGz^F6VB6+v$l8Sc)X zOuQ386iz9zgheuy8>LJ`W5#4J8&(!{rS@_OGy>c09c`^mJoJSQWN4J=rhB;1d!eAZ zyEjTAl|Rf@1q|wgCg0vVEuZ=aYg*;cR< z$SH4kKDZ1ybhdabOGiOkENZRFQ7yPVfXAg_>Z6xkHRB9goBd^5K`Z1wQycuOT{#`% z?-gJDL_f#`?Q?=Tx`neU2>5jLA_RmGxJ|*XjZOK~+lvuscNS}#*R>&|7Xhod1yUif z60BP>HAl5-K@}dCR`eB#q{a9ulj)7#d{$Urj6lwStqjo=ubg9QhHe!zlu!sv+dsIk*@nb zQHv!h$pV=`P~p>=)9f#qfT5yKmiug4+XnG#<)1Ewdw6JVEw7%cA(52azp{=QjUI$3 z?c5}Upu%S`tI5aRi>vwl;r@~cbT~U#FKa<2-YK7e5dfjHXV)EE8weBhrSZD;vR_l_ z*IBh7hd_qJvrZSv3Q>*Y-PF|vA<{y@c;&bgWNK5^pfg) zIbrl-ZfV*^0Ymow0?>0T@Yl|_k2mS&q%(*=X8r;1k$c7d5Os;cNTWR2RYb9saqBUSza&0h4-%yIn zeF-|x4Dp+n-{bfj!-b}70M4qz{tyt&5NHBk0wxxW2rWL=bOf2z(Hcie zNh&Rg#x0}-OF}$pjetLYAf2uE1Mv65ud!891kIr=zNc)n*+4`qeXJ zBasjaxTZ*C!m6$kMrMChsNVr#t||a$0M%-4le(BKCiWYGb1EF3w%yGq6|j^79#Mcp zHX<=#7)Ss~p#a!hhD63XZnaM`7V+D%p;yiEIEt)HcoMd!wCOC{6ZK5n2n?&=5!Eu5 zhyrm1K9PB`{bP0j88R-Lo4IY^Grx74UblfY@>IK~190a1Db*6{X$PNBz+*OjrdUhc zS4cR(+xs(7Dzn)$`^BxmI9K1W0n{Cquxw*SGAi%?{Tf#w<2I|rZNxI<0pw^YRXFN! zk*^-N5yA#e+U8r11ya=?x??;Fn6!bkKP|`n9FQfSHS+uxw$&950@BgvB$97Dg#bI{ Yzw9Cef0p>}RsaA107*qoM6N<$f?>Kfg8%>k literal 0 HcmV?d00001 diff --git a/assets/images/note.png b/assets/images/note.png new file mode 100644 index 0000000000000000000000000000000000000000..df1e0a9265dc6ce7602d3da91195b2a84d278e01 GIT binary patch literal 2520 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 Hu0mjfC%Ky( literal 0 HcmV?d00001 diff --git a/assets/images/warning.png b/assets/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8a37df51861ef31171987ef06c59fffa044f61 GIT binary patch literal 3249 zcmV;i3{LZjP)M{~+cvgscc75+hR{144(_?$=o5Ey9AqV3(PuDNWOi3%2yX+qN*wb1`O!R`}Fj5gb=9e zpLL+VzMhv~ewndj$G)?1hR$I(}= z>~l!R=I1j$KR;HIq-5E$Wn^V#ZGQFDSKsQ5grhg`2M!!~cjwNX5#WQtAWcn8l<(e+ zcWle`iZBg>ArCziGuPa?bJ@Ce z>ra<1UCI|J~=DSvM`e|2?K@GHm+v2rOQ& zm-+MOvw8F8DT@{@a)i^#Pyya}b>t;>L}9wRUa9TIf{5 zO`A4x?AWot2W|yYRDdyK#zcTO41=1Q8ooPx7+-#V4De2~!z2_%5(@gzeOEC8K9Ckj z2|}PM3X13$X#{(?jre0Pfovyj-9fo)kJ1xSHy zTL{^?XMld5{y3D5aeB~CKndYbFt-FMe)Ah#E>}DPDxj#*y4zi!lOfO%1*KyuhXd8^ z>DXRLiERmNA+T+`D~~T;C`AYxVQ2)~nrZVjB<-Yl8z*O?7orcHpRgsm7C@jfe8lZI z6esnUtFVlA+WZ<0)rqhzgjBFBtAn((k-|g>8#O_vCVK%-)SkB2mLOpSq(E3E4o@m0 zZv7#tgNEbx`>~{x)PbXLIGxm0UBEVVT&@8qC@4y&LmWv(Akmi9nTSAi1Wcd>2!vTX z!X>dIGzw`$MlsOgV&v^AimHO5bgT*6M%UVDX}CgDb2GN;L?FSo5K60{p&czlz!C_#-Q*#+Sax_v(+7~Y3)#*ufHV}R8;8S2b-Ga<3Jz5Tx102VgPHu`Y_zsUg1%PFkWSFoNNS?)tgi&R z=UMcGqkt6 zsHy|S?WTX)KwK^ddf+;(tu25SQPq1rM2cDqYELTE-6jL|*BY?&0KyC*gn_eP3L}4f zKYyF|uT=iwD~=xeH+)SEgtTC|n28SY2NXp?K?NyM5U7fZ5E7wwmb*wxRBMt}p=hNU z4{Us9IrVilm>~^mn<&!4-7l4_yQlL=&I-I4gZNgei1&;08hp7dzO#^9LAPiid{tOy9p8IEJle;*N zTW`OEc3(5Wc0W=|gb*FY%QBI+iDiT^bPZh#g57)3?CFUi;C8!FRWEjEjyHr6a*cSG(3ATYMblm+txIO)FI8+cO(rCxf+cC5NdeBevwFZ3G8<0i-qarbZ z3C}&p{adyW3Wa)Bq3#=o&Qr9^%uMbpC?IpjjF^c>0E>W}ho0h_^Jg*IeORFY!Ztd3 z94R|gM@nofL`V;y>j47(>onAV$JP28Y%|Egf_E{mcMynn)VRkUWBRULU2C#C`0l59 zPJp(ywz%OLGiD6z+QpgW%enmJml5wWfLtJN-UpE!XN%Y@K~Owqaa`ar{|EJD*8QmN4ss50Fw~7)FG16-7Y^(Iu1)fJ>Jy zyl05raen*u?PO+V#sICW ztK-Bo&+y&JlQ;d2Yy6x!JoV|P2q7>GBL@5iW7<6EbC`K zV?kJ&qrsPyl#rK~*O@j6!IMOrkp@h7^2sOV@#Dv3C=}{4UDvy;w~M@=$g0H{+`X9m '0.9.0' + + RedCloth3::ALLOWED_TAGS << "div" +end diff --git a/lib/wiki_notes_application_hooks.rb b/lib/wiki_notes_application_hooks.rb new file mode 100644 index 0000000..984da86 --- /dev/null +++ b/lib/wiki_notes_application_hooks.rb @@ -0,0 +1,7 @@ +require 'redmine' +class WikiNotesApplicationHooks < Redmine::Hook::ViewListener + def view_layouts_base_html_head(context = {}) + # beware of http://www.redmine.org/issues/3935 + return stylesheet_link_tag("wiki_notes.css", :plugin => "redmine_wiki_notes", :media => "all") + end +end diff --git a/lib/wiki_notes_macros.rb b/lib/wiki_notes_macros.rb new file mode 100644 index 0000000..6709346 --- /dev/null +++ b/lib/wiki_notes_macros.rb @@ -0,0 +1,37 @@ +module WikiNotesMacro + Redmine::WikiFormatting::Macros.register do + desc "Adds a note to the wiki page:\n\n" + + " @!{{note(text)}}@\n" + + " @!{{tip(text)}}@\n" + + " @!{{important(text)}}@\n" + " @!{{warning(text)}}@\n" + + macro :note do |obj, args| + o = '
' + o << args[0] + o << '
' + o + end + + macro :tip do |obj, args| + o = '
' + o << args[0] + o << '
' + o + end + + macro :important do |obj, args| + o = '
' + o << args[0] + o << '
' + o + end + + macro :warning do |obj, args| + o = '
' + o << args[0] + o << '
' + o + end + end +end