georgi-shinmun 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. data/.gitignore +3 -0
  2. data/LICENSE +18 -0
  3. data/README.md +361 -0
  4. data/Rakefile +17 -0
  5. data/bin/shinmun +12 -0
  6. data/example/Rakefile +41 -0
  7. data/example/assets/images/favicon.ico +0 -0
  8. data/example/assets/images/loading.gif +0 -0
  9. data/example/assets/javascripts/coderay.js +13 -0
  10. data/example/assets/javascripts/comments.js +45 -0
  11. data/example/assets/javascripts/jquery-form.min.js +5 -0
  12. data/example/assets/javascripts/jquery.min.js +32 -0
  13. data/example/assets/stylesheets/article.css +15 -0
  14. data/example/assets/stylesheets/coderay.css +100 -0
  15. data/example/assets/stylesheets/comments.css +20 -0
  16. data/example/assets/stylesheets/form.css +12 -0
  17. data/example/assets/stylesheets/list.css +13 -0
  18. data/example/assets/stylesheets/print.css +76 -0
  19. data/example/assets/stylesheets/reset.css +23 -0
  20. data/example/assets/stylesheets/style.css +83 -0
  21. data/example/assets/stylesheets/table.css +24 -0
  22. data/example/assets/stylesheets/typo.css +40 -0
  23. data/example/assets/wmd/images/bg-fill.png +0 -0
  24. data/example/assets/wmd/images/bg.png +0 -0
  25. data/example/assets/wmd/images/blockquote.png +0 -0
  26. data/example/assets/wmd/images/bold.png +0 -0
  27. data/example/assets/wmd/images/code.png +0 -0
  28. data/example/assets/wmd/images/h1.png +0 -0
  29. data/example/assets/wmd/images/hr.png +0 -0
  30. data/example/assets/wmd/images/img.png +0 -0
  31. data/example/assets/wmd/images/italic.png +0 -0
  32. data/example/assets/wmd/images/link.png +0 -0
  33. data/example/assets/wmd/images/ol.png +0 -0
  34. data/example/assets/wmd/images/redo.png +0 -0
  35. data/example/assets/wmd/images/separator.png +0 -0
  36. data/example/assets/wmd/images/ul.png +0 -0
  37. data/example/assets/wmd/images/undo.png +0 -0
  38. data/example/assets/wmd/images/wmd-on.png +0 -0
  39. data/example/assets/wmd/images/wmd.png +0 -0
  40. data/example/assets/wmd/showdown.js +421 -0
  41. data/example/assets/wmd/wmd-base.js +1799 -0
  42. data/example/assets/wmd/wmd-plus.js +311 -0
  43. data/example/assets/wmd/wmd.js +73 -0
  44. data/example/config.ru +8 -0
  45. data/example/config/aggregations.yml +1 -0
  46. data/example/config/assets.yml +13 -0
  47. data/example/config/blog.yml +10 -0
  48. data/example/map.rb +100 -0
  49. data/example/pages/about.md +6 -0
  50. data/example/password +1 -0
  51. data/example/templates/_comment_form.rhtml +90 -0
  52. data/example/templates/_comments.rhtml +11 -0
  53. data/example/templates/_pagination.rhtml +10 -0
  54. data/example/templates/admin/commit.rhtml +27 -0
  55. data/example/templates/admin/commits.rhtml +9 -0
  56. data/example/templates/admin/edit.rhtml +17 -0
  57. data/example/templates/admin/pages.rhtml +19 -0
  58. data/example/templates/admin/posts.rhtml +24 -0
  59. data/example/templates/category.rhtml +12 -0
  60. data/example/templates/category.rxml +20 -0
  61. data/example/templates/index.rhtml +12 -0
  62. data/example/templates/index.rxml +21 -0
  63. data/example/templates/layout.rhtml +82 -0
  64. data/example/templates/page.rhtml +7 -0
  65. data/example/templates/post.rhtml +48 -0
  66. data/lib/shinmun.rb +21 -0
  67. data/lib/shinmun/aggregations/delicious.rb +57 -0
  68. data/lib/shinmun/aggregations/flickr.rb +81 -0
  69. data/lib/shinmun/blog.rb +165 -0
  70. data/lib/shinmun/bluecloth_coderay.rb +21 -0
  71. data/lib/shinmun/comment.rb +17 -0
  72. data/lib/shinmun/helpers.rb +64 -0
  73. data/lib/shinmun/post.rb +161 -0
  74. data/lib/shinmun/post_handler.rb +17 -0
  75. data/templates/_comments.rhtml +11 -0
  76. data/templates/archive.rhtml +6 -0
  77. data/templates/category.rhtml +6 -0
  78. data/templates/category.rxml +20 -0
  79. data/templates/index.rhtml +4 -0
  80. data/templates/index.rxml +21 -0
  81. data/templates/layout.rhtml +9 -0
  82. data/templates/page.rhtml +2 -0
  83. data/templates/post.rhtml +3 -0
  84. data/test/blog_spec.rb +177 -0
  85. data/test/map.rb +51 -0
  86. metadata +172 -0
@@ -0,0 +1,24 @@
1
+
2
+ table {
3
+ border-collapse: separate;
4
+ border-spacing: 0;
5
+ }
6
+
7
+ table {
8
+ background: #fff;
9
+ border: 1px solid #aaa;
10
+ margin-bottom: 10px;
11
+ width: 100%;
12
+ }
13
+
14
+ thead th {
15
+ border-bottom: 2px solid #aaa;
16
+ border-left: 1px solid #aaa;
17
+ padding: 2px 9px;
18
+ text-align: left;
19
+ }
20
+
21
+ tbody td {
22
+ border-left: 1px solid #aaa;
23
+ padding: 2px 9px;
24
+ }
@@ -0,0 +1,40 @@
1
+ body {
2
+ font-size: 80%;
3
+ color: #222;
4
+ font-family: Arial, sans-serif;
5
+ }
6
+
7
+ h1, h2, h3, h4, h5, h6, h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
8
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
9
+ color: #444;
10
+ font-family: Arial, sans-serif;
11
+ font-weight: bold;
12
+ }
13
+
14
+ a {
15
+ color: #444;
16
+ }
17
+
18
+ a:visited {
19
+ color: #444;
20
+ }
21
+
22
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
23
+ text-decoration: none;
24
+ }
25
+
26
+ h1 { font-size: 2em; line-height: 1; margin-top: 1em; margin-bottom: 1em; }
27
+ h2 { font-size: 1.5em; margin-top: 0.75em; margin-bottom: 0.75em; }
28
+ h3 { font-size: 1.3em; line-height: 1; margin-top: 1.7em; margin-bottom: 1em; }
29
+ h4 { font-size: 1.2em; line-height: 1.25; margin-top: 1.25em; margin-bottom: 1.25em; }
30
+ h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; }
31
+ h6 { font-size: 1em; font-weight: bold; }
32
+
33
+ blockquote {
34
+ border-top: 3px double #666;
35
+ border-bottom: 3px double #666;
36
+ padding: 5px;
37
+ font-style: oblique;
38
+ margin-left: 5%;
39
+ margin-right: 5%;
40
+ }
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,421 @@
1
+ var Attacklab=Attacklab||{};
2
+ Attacklab.showdown=Attacklab.showdown||{};
3
+ Attacklab.showdown.converter=function(){
4
+ this.obfuscation;
5
+ var _1;
6
+ var _2;
7
+ var _3;
8
+ var _4=0;
9
+ this.makeHtml=function(_5){
10
+ _1=new Array();
11
+ _2=new Array();
12
+ _3=new Array();
13
+ _5=_5.replace(/~/g,"~T");
14
+ _5=_5.replace(/\$/g,"~D");
15
+ _5=_5.replace(/\r\n/g,"\n");
16
+ _5=_5.replace(/\r/g,"\n");
17
+ _5="\n\n"+_5+"\n\n";
18
+ _5=_6(_5);
19
+ _5=_5.replace(/^[ \t]+$/mg,"");
20
+ _5=_7(_5);
21
+ _5=_8(_5);
22
+ _5=_9(_5);
23
+ _5=_a(_5);
24
+ _5=_5.replace(/~D/g,"$$");
25
+ _5=_5.replace(/~T/g,"~");
26
+ return _5;
27
+ };
28
+ var _8=function(_b){
29
+ var _b=_b.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|\Z)/gm,function(_c,m1,m2,m3,m4){
30
+ m1=m1.toLowerCase();
31
+ _1[m1]=_11(m2);
32
+ if(m3){
33
+ return m3+m4;
34
+ }else{
35
+ if(m4){
36
+ _2[m1]=m4.replace(/"/g,"&quot;");
37
+ }
38
+ }
39
+ return "";
40
+ });
41
+ return _b;
42
+ };
43
+ var _7=function(_12){
44
+ _12=_12.replace(/\n/g,"\n\n");
45
+ var _13="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del";
46
+ var _14="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math";
47
+ _12=_12.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,_15);
48
+ _12=_12.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,_15);
49
+ _12=_12.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,_15);
50
+ _12=_12.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,_15);
51
+ _12=_12.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,_15);
52
+ _12=_12.replace(/\n\n/g,"\n");
53
+ return _12;
54
+ };
55
+ var _15=function(_16,m1){
56
+ var _18=m1;
57
+ _18=_18.replace(/\n\n/g,"\n");
58
+ _18=_18.replace(/^\n/,"");
59
+ _18=_18.replace(/\n+$/g,"");
60
+ _18="\n\n~K"+(_3.push(_18)-1)+"K\n\n";
61
+ return _18;
62
+ };
63
+ var _9=function(_19){
64
+ _19=_1a(_19);
65
+ var key=_1c("<hr />");
66
+ _19=_19.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,key);
67
+ _19=_19.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,key);
68
+ _19=_19.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,key);
69
+ _19=_1d(_19);
70
+ _19=_1e(_19);
71
+ _19=_1f(_19);
72
+ _19=_7(_19);
73
+ _19=_20(_19);
74
+ return _19;
75
+ };
76
+ var _21=function(_22){
77
+ _22=_23(_22);
78
+ _22=_24(_22);
79
+ _22=_25(_22);
80
+ _22=_26(_22);
81
+ _22=_27(_22);
82
+ _22=_28(_22);
83
+ _22=_11(_22);
84
+ _22=_29(_22);
85
+ _22=_22.replace(/ +\n/g," <br />\n");
86
+ return _22;
87
+ };
88
+ var _24=function(_2a){
89
+ var _2b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;
90
+ _2a=_2a.replace(_2b,function(_2c){
91
+ var tag=_2c.replace(/(.)<\/?code>(?=.)/g,"$1`");
92
+ tag=_2e(tag,"\\`*_");
93
+ return tag;
94
+ });
95
+ return _2a;
96
+ };
97
+ var _27=function(_2f){
98
+ _2f=_2f.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,_30);
99
+ _2f=_2f.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,_30);
100
+ _2f=_2f.replace(/(\[([^\[\]]+)\])()()()()()/g,_30);
101
+ return _2f;
102
+ };
103
+ var _30=function(_31,m1,m2,m3,m4,m5,m6,m7){
104
+ if(m7==undefined){
105
+ m7="";
106
+ }
107
+ var _39=m1;
108
+ var _3a=m2;
109
+ var _3b=m3.toLowerCase();
110
+ var url=m4;
111
+ var _3d=m7;
112
+ if(url==""){
113
+ if(_3b==""){
114
+ _3b=_3a.toLowerCase().replace(/ ?\n/g," ");
115
+ }
116
+ url="#"+_3b;
117
+ if(_1[_3b]!=undefined){
118
+ url=_1[_3b];
119
+ if(_2[_3b]!=undefined){
120
+ _3d=_2[_3b];
121
+ }
122
+ }else{
123
+ if(_39.search(/\(\s*\)$/m)>-1){
124
+ url="";
125
+ }else{
126
+ return _39;
127
+ }
128
+ }
129
+ }
130
+ url=_2e(url,"*_");
131
+ var _3e="<a href=\""+url+"\"";
132
+ if(_3d!=""){
133
+ _3d=_3d.replace(/"/g,"&quot;");
134
+ _3d=_2e(_3d,"*_");
135
+ _3e+=" title=\""+_3d+"\"";
136
+ }
137
+ _3e+=">"+_3a+"</a>";
138
+ return _3e;
139
+ };
140
+ var _26=function(_3f){
141
+ _3f=_3f.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,_40);
142
+ _3f=_3f.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,_40);
143
+ return _3f;
144
+ };
145
+ var _40=function(_41,m1,m2,m3,m4,m5,m6,m7){
146
+ var _49=m1;
147
+ var _4a=m2;
148
+ var _4b=m3.toLowerCase();
149
+ var url=m4;
150
+ var _4d=m7;
151
+ if(!_4d){
152
+ _4d="";
153
+ }
154
+ if(url==""){
155
+ if(_4b==""){
156
+ _4b=_4a.toLowerCase().replace(/ ?\n/g," ");
157
+ }
158
+ url="#"+_4b;
159
+ if(_1[_4b]!=undefined){
160
+ url=_1[_4b];
161
+ if(_2[_4b]!=undefined){
162
+ _4d=_2[_4b];
163
+ }
164
+ }else{
165
+ return _49;
166
+ }
167
+ }
168
+ _4a=_4a.replace(/"/g,"&quot;");
169
+ url=_2e(url,"*_");
170
+ var _4e="<img src=\""+url+"\" alt=\""+_4a+"\"";
171
+ _4d=_4d.replace(/"/g,"&quot;");
172
+ _4d=_2e(_4d,"*_");
173
+ _4e+=" title=\""+_4d+"\"";
174
+ _4e+=" />";
175
+ return _4e;
176
+ };
177
+ var _1a=function(_4f){
178
+ _4f=_4f.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(_50,m1){
179
+ return _1c("<h1>"+_21(m1)+"</h1>");
180
+ });
181
+ _4f=_4f.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(_52,m1){
182
+ return _1c("<h2>"+_21(m1)+"</h2>");
183
+ });
184
+ _4f=_4f.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(_54,m1,m2){
185
+ var _57=m1.length;
186
+ return _1c("<h"+_57+">"+_21(m2)+"</h"+_57+">");
187
+ });
188
+ return _4f;
189
+ };
190
+ var _58;
191
+ var _1d=function(_59){
192
+ _59+="~0";
193
+ var _5a=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
194
+ if(_4){
195
+ _59=_59.replace(_5a,function(_5b,m1,m2){
196
+ var _5e=m1;
197
+ var _5f=(m2.search(/[*+-]/g)>-1)?"ul":"ol";
198
+ _5e=_5e.replace(/\n{2,}/g,"\n\n\n");
199
+ var _60=_58(_5e);
200
+ _60=_60.replace(/\s+$/,"");
201
+ _60="<"+_5f+">"+_60+"</"+_5f+">\n";
202
+ return _60;
203
+ });
204
+ }else{
205
+ _5a=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g;
206
+ _59=_59.replace(_5a,function(_61,m1,m2,m3){
207
+ var _65=m1;
208
+ var _66=m2;
209
+ var _67=(m3.search(/[*+-]/g)>-1)?"ul":"ol";
210
+ var _66=_66.replace(/\n{2,}/g,"\n\n\n");
211
+ var _68=_58(_66);
212
+ _68=_65+"<"+_67+">\n"+_68+"</"+_67+">\n";
213
+ return _68;
214
+ });
215
+ }
216
+ _59=_59.replace(/~0/,"");
217
+ return _59;
218
+ };
219
+ _58=function(_69){
220
+ _4++;
221
+ _69=_69.replace(/\n{2,}$/,"\n");
222
+ _69+="~0";
223
+ _69=_69.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(_6a,m1,m2,m3,m4){
224
+ var _6f=m4;
225
+ var _70=m1;
226
+ var _71=m2;
227
+ if(_70||(_6f.search(/\n{2,}/)>-1)){
228
+ _6f=_9(_72(_6f));
229
+ }else{
230
+ _6f=_1d(_72(_6f));
231
+ _6f=_6f.replace(/\n$/,"");
232
+ _6f=_21(_6f);
233
+ }
234
+ return "<li>"+_6f+"</li>\n";
235
+ });
236
+ _69=_69.replace(/~0/g,"");
237
+ _4--;
238
+ return _69;
239
+ };
240
+ var _1e=function(_73){
241
+ _73+="~0";
242
+ _73=_73.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(_74,m1,m2){
243
+ var _77=m1;
244
+ var _78=m2;
245
+ _77=_79(_72(_77));
246
+ _77=_6(_77);
247
+ _77=_77.replace(/^\n+/g,"");
248
+ _77=_77.replace(/\n+$/g,"");
249
+ _77="<pre><code>"+_77+"\n</code></pre>";
250
+ return _1c(_77)+_78;
251
+ });
252
+ _73=_73.replace(/~0/,"");
253
+ return _73;
254
+ };
255
+ var _1c=function(_7a){
256
+ _7a=_7a.replace(/(^\n+|\n+$)/g,"");
257
+ return "\n\n~K"+(_3.push(_7a)-1)+"K\n\n";
258
+ };
259
+ var _23=function(_7b){
260
+ _7b=_7b.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(_7c,m1,m2,m3,m4){
261
+ var c=m3;
262
+ c=c.replace(/^([ \t]*)/g,"");
263
+ c=c.replace(/[ \t]*$/g,"");
264
+ c=_79(c);
265
+ return m1+"<code>"+c+"</code>";
266
+ });
267
+ return _7b;
268
+ };
269
+ var _79=function(_82){
270
+ _82=_82.replace(/&/g,"&amp;");
271
+ _82=_82.replace(/</g,"&lt;");
272
+ _82=_82.replace(/>/g,"&gt;");
273
+ _82=_2e(_82,"*_{}[]\\",false);
274
+ return _82;
275
+ };
276
+ var _29=function(_83){
277
+ _83=_83.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"<strong>$2</strong>");
278
+ _83=_83.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>");
279
+ return _83;
280
+ };
281
+ this.hidetable;
282
+ var _1f=function(_84){
283
+ _84=_84.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(_85,m1){
284
+ var bq=m1;
285
+ bq=bq.replace(/^[ \t]*>[ \t]?/gm,"~0");
286
+ bq=bq.replace(/~0/g,"");
287
+ bq=bq.replace(/^[ \t]+$/gm,"");
288
+ bq=_9(bq);
289
+ bq=bq.replace(/(^|\n)/g,"$1 ");
290
+ bq=bq.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(_88,m1){
291
+ var pre=m1;
292
+ pre=pre.replace(/^ /mg,"~0");
293
+ pre=pre.replace(/~0/g,"");
294
+ return pre;
295
+ });
296
+ return _1c("<blockquote>\n"+bq+"\n</blockquote>");
297
+ });
298
+ return _84;
299
+ };
300
+ var _20=function(_8b){
301
+ _8b=_8b.replace(/^\n+/g,"");
302
+ _8b=_8b.replace(/\n+$/g,"");
303
+ var _8c=_8b.split(/\n{2,}/g);
304
+ var _8d=new Array();
305
+ var end=_8c.length;
306
+ for(var i=0;i<end;i++){
307
+ var str=_8c[i];
308
+ if(str.search(/~K(\d+)K/g)>=0){
309
+ _8d.push(str);
310
+ }else{
311
+ if(str.search(/\S/)>=0){
312
+ str=_21(str);
313
+ str=str.replace(/^([ \t]*)/g,"<p>");
314
+ str+="</p>";
315
+ _8d.push(str);
316
+ }
317
+ }
318
+ }
319
+ end=_8d.length;
320
+ for(var i=0;i<end;i++){
321
+ while(_8d[i].search(/~K(\d+)K/)>=0){
322
+ var _91=_3[RegExp.$1];
323
+ _91=_91.replace(/\$/g,"$$$$");
324
+ _8d[i]=_8d[i].replace(/~K\d+K/,_91);
325
+ }
326
+ }
327
+ return _8d.join("\n\n");
328
+ };
329
+ var _11=function(_92){
330
+ _92=_92.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;");
331
+ _92=_92.replace(/<(?![a-z\/?\$!])/gi,"&lt;");
332
+ return _92;
333
+ };
334
+ var _25=function(_93){
335
+ _93=_93.replace(/\\(\\)/g,_94);
336
+ _93=_93.replace(/\\([`*_{}\[\]()>#+-.!])/g,_94);
337
+ return _93;
338
+ };
339
+ var _28=function(_95){
340
+ _95=_95.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,"<a href=\"$1\">$1</a>");
341
+ _95=_95.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(_96,m1){
342
+ return _98(_a(m1));
343
+ });
344
+ return _95;
345
+ };
346
+ var _98=function(_99){
347
+ function char2hex(ch){
348
+ var _9b="0123456789ABCDEF";
349
+ var dec=ch.charCodeAt(0);
350
+ return (_9b.charAt(dec>>4)+_9b.charAt(dec&15));
351
+ }
352
+ var _9d=[function(ch){
353
+ return "&#"+ch.charCodeAt(0)+";";
354
+ },function(ch){
355
+ return "&#x"+char2hex(ch)+";";
356
+ },function(ch){
357
+ return ch;
358
+ }];
359
+ _99="mailto:"+_99;
360
+ _99=_99.replace(/./g,function(ch){
361
+ if(ch=="@"){
362
+ ch=_9d[Math.floor(Math.random()*2)](ch);
363
+ }else{
364
+ if(ch!=":"){
365
+ var r=Math.random();
366
+ ch=(r>0.9?_9d[2](ch):r>0.45?_9d[1](ch):_9d[0](ch));
367
+ }
368
+ }
369
+ return ch;
370
+ });
371
+ _99="<a href=\""+_99+"\">"+_99+"</a>";
372
+ _99=_99.replace(/">.+:/g,"\">");
373
+ return _99;
374
+ };
375
+ var _a=function(_a3){
376
+ _a3=_a3.replace(/~E(\d+)E/g,function(_a4,m1){
377
+ var _a6=parseInt(m1);
378
+ return String.fromCharCode(_a6);
379
+ });
380
+ return _a3;
381
+ };
382
+ var _72=function(_a7){
383
+ _a7=_a7.replace(/^(\t|[ ]{1,4})/gm,"~0");
384
+ _a7=_a7.replace(/~0/g,"");
385
+ return _a7;
386
+ };
387
+ var _6=function(_a8){
388
+ _a8=_a8.replace(/\t(?=\t)/g," ");
389
+ _a8=_a8.replace(/\t/g,"~A~B");
390
+ _a8=_a8.replace(/~B(.+?)~A/g,function(_a9,m1,m2){
391
+ var _ac=m1;
392
+ var _ad=4-_ac.length%4;
393
+ for(var i=0;i<_ad;i++){
394
+ _ac+=" ";
395
+ }
396
+ return _ac;
397
+ });
398
+ _a8=_a8.replace(/~A/g," ");
399
+ _a8=_a8.replace(/~B/g,"");
400
+ return _a8;
401
+ };
402
+ var _2e=function(_af,_b0,_b1){
403
+ var _b2="(["+_b0.replace(/([\[\]\\])/g,"\\$1")+"])";
404
+ if(_b1){
405
+ _b2="\\\\"+_b2;
406
+ }
407
+ var _b3=new RegExp(_b2,"g");
408
+ _af=_af.replace(_b3,_94);
409
+ return _af;
410
+ };
411
+ var _94=function(_b4,m1){
412
+ var _b6=m1.charCodeAt(0);
413
+ return "~E"+_b6+"E";
414
+ };
415
+ this.obfuscation;
416
+ };
417
+ var Showdown=Attacklab.showdown;
418
+ if(Attacklab.fileLoaded){
419
+ Attacklab.fileLoaded("showdown.js");
420
+ }
421
+