From 2e49f2c9e7c603572e24ffac0cbf96260c305407 Mon Sep 17 00:00:00 2001 From: Tom Preston-Werner Date: Wed, 7 Jul 2010 00:29:51 -0700 Subject: [PATCH] Minimal working frontend. --- gollum.gemspec | 3 + lib/gollum/frontend/app.rb | 62 ++++++++++++ lib/gollum/frontend/public/css/global.css | 93 ++++++++++++++++++ lib/gollum/frontend/templates/layout.mustache | 15 +++ lib/gollum/frontend/templates/page.mustache | 1 + lib/gollum/frontend/views/layout.rb | 12 +++ lib/gollum/frontend/views/page.rb | 11 +++ lib/gollum/markup.rb | 12 +-- templates/formatting.html | 92 +++++++++++++++++ .../01/676dc56d35c1999c6fe9043fe8b78d52a0e797 | Bin 0 -> 195 bytes .../07/9a5887755dc6fbacfdb672abc168b0cce698fa | Bin 0 -> 747 bytes .../11/5bbf9fe8004aa6a06274b44ab93a84a06e3204 | Bin 0 -> 196 bytes .../14/78ebf7ad4dc6a06c76cdb4aca0eba7f78796aa | Bin 0 -> 195 bytes .../1e/716a3178a76fe39ee7b88f0cf2dc4a447566f6 | Bin 0 -> 164 bytes .../28/bb2f40d2e4c82a4ae62ef619a80a4b555e23ee | Bin 0 -> 171 bytes .../2c/b9156ad383914561a8502fc70f5a1d887e48ad | Bin 0 -> 399 bytes .../37/fcc52509fb09142cafccaada0252f3de81873c | Bin 0 -> 195 bytes .../4c/770a352f1e86071b680f879a89874bf59008fa | Bin 0 -> 195 bytes .../4f/de706c7c8d3b30b6caec8c82ff4c01261350f2 | 3 + .../71/4323c104239440a5c66ab12a67ed07a83c404f | Bin 0 -> 9596 bytes .../79/8f6564abb42d7ed34621d53595cbbe84638949 | 1 + .../7c/7251d713278633fbe506e1b74aba6c91ddd562 | Bin 0 -> 125 bytes .../93/633112529b0d0bdf25c2206682e59e9f5572e5 | Bin 0 -> 759 bytes .../a3/46f056d6d8e89f034489e403b3924fbc95f201 | Bin 0 -> 195 bytes .../af/e2034d400ba21e13361f38f74900c51dbc7fde | 2 + .../b0/d108328459e44fff4a76cd19b10ddc34adce4b | Bin 0 -> 167 bytes .../b3/14b19c56ee272a7c9dc379996d9a32f5c463d7 | Bin 0 -> 194 bytes .../bc/d5c99495011915971b2c9e38da8e5aacfe875d | 2 + .../d9/e379fdea55b6ff3b71c110b3d2d7b55bbfd5ee | Bin 0 -> 124 bytes .../e3/415337d9ae2c0b4b00054a93727f4a7d3c3ca5 | Bin 0 -> 124 bytes .../f2/5eccd98e9b667f9e22946f3e2f945378b8a72d | 2 + .../f4/46205ac9df5b6a40c00785f06827f4a4dbd727 | 1 + .../fa/e7ef5344202bba4129abdc13060d9297d99465 | 3 + test/examples/lotr.git/refs/heads/master | 2 +- test/test_markup.rb | 10 +- test/test_page.rb | 2 +- test/test_wiki.rb | 16 +-- 37 files changed, 325 insertions(+), 20 deletions(-) create mode 100644 lib/gollum/frontend/app.rb create mode 100644 lib/gollum/frontend/public/css/global.css create mode 100644 lib/gollum/frontend/templates/layout.mustache create mode 100644 lib/gollum/frontend/templates/page.mustache create mode 100644 lib/gollum/frontend/views/layout.rb create mode 100644 lib/gollum/frontend/views/page.rb create mode 100644 templates/formatting.html create mode 100644 test/examples/lotr.git/objects/01/676dc56d35c1999c6fe9043fe8b78d52a0e797 create mode 100644 test/examples/lotr.git/objects/07/9a5887755dc6fbacfdb672abc168b0cce698fa create mode 100644 test/examples/lotr.git/objects/11/5bbf9fe8004aa6a06274b44ab93a84a06e3204 create mode 100644 test/examples/lotr.git/objects/14/78ebf7ad4dc6a06c76cdb4aca0eba7f78796aa create mode 100644 test/examples/lotr.git/objects/1e/716a3178a76fe39ee7b88f0cf2dc4a447566f6 create mode 100644 test/examples/lotr.git/objects/28/bb2f40d2e4c82a4ae62ef619a80a4b555e23ee create mode 100644 test/examples/lotr.git/objects/2c/b9156ad383914561a8502fc70f5a1d887e48ad create mode 100644 test/examples/lotr.git/objects/37/fcc52509fb09142cafccaada0252f3de81873c create mode 100644 test/examples/lotr.git/objects/4c/770a352f1e86071b680f879a89874bf59008fa create mode 100644 test/examples/lotr.git/objects/4f/de706c7c8d3b30b6caec8c82ff4c01261350f2 create mode 100644 test/examples/lotr.git/objects/71/4323c104239440a5c66ab12a67ed07a83c404f create mode 100644 test/examples/lotr.git/objects/79/8f6564abb42d7ed34621d53595cbbe84638949 create mode 100644 test/examples/lotr.git/objects/7c/7251d713278633fbe506e1b74aba6c91ddd562 create mode 100644 test/examples/lotr.git/objects/93/633112529b0d0bdf25c2206682e59e9f5572e5 create mode 100644 test/examples/lotr.git/objects/a3/46f056d6d8e89f034489e403b3924fbc95f201 create mode 100644 test/examples/lotr.git/objects/af/e2034d400ba21e13361f38f74900c51dbc7fde create mode 100644 test/examples/lotr.git/objects/b0/d108328459e44fff4a76cd19b10ddc34adce4b create mode 100644 test/examples/lotr.git/objects/b3/14b19c56ee272a7c9dc379996d9a32f5c463d7 create mode 100644 test/examples/lotr.git/objects/bc/d5c99495011915971b2c9e38da8e5aacfe875d create mode 100644 test/examples/lotr.git/objects/d9/e379fdea55b6ff3b71c110b3d2d7b55bbfd5ee create mode 100644 test/examples/lotr.git/objects/e3/415337d9ae2c0b4b00054a93727f4a7d3c3ca5 create mode 100644 test/examples/lotr.git/objects/f2/5eccd98e9b667f9e22946f3e2f945378b8a72d create mode 100644 test/examples/lotr.git/objects/f4/46205ac9df5b6a40c00785f06827f4a4dbd727 create mode 100644 test/examples/lotr.git/objects/fa/e7ef5344202bba4129abdc13060d9297d99465 diff --git a/gollum.gemspec b/gollum.gemspec index 62c84760..2071a8fa 100644 --- a/gollum.gemspec +++ b/gollum.gemspec @@ -24,7 +24,10 @@ Gem::Specification.new do |s| s.extra_rdoc_files = %w[README.md LICENSE] s.add_dependency('grit', [">= 2.0.0", "< 3.0.0"]) + s.add_dependency('github-markup', [">= 0.4.0", "< 1.0.0"]) s.add_dependency('albino', "~> 1.0.0") + s.add_dependency('sinatra', "~> 1.0.0") + s.add_dependency('mustache', [">= 0.11.2", "< 1.0.0"]) s.add_development_dependency('shoulda') s.add_development_dependency('mocha') diff --git a/lib/gollum/frontend/app.rb b/lib/gollum/frontend/app.rb new file mode 100644 index 00000000..e7044548 --- /dev/null +++ b/lib/gollum/frontend/app.rb @@ -0,0 +1,62 @@ +require 'rubygems' + +require 'sinatra' +require 'gollum' +require 'mustache/sinatra' + +require 'gollum/frontend/views/layout' + +$path = "~/dev/mojombo/gollum/test/examples/lotr.git" + +module Precious + class App < Sinatra::Base + register Mustache::Sinatra + + dir = File.dirname(File.expand_path(__FILE__)) + + # We want to serve public assets for now + set :public, "#{dir}/public" + set :static, true + + set :mustache, { + # Tell mustache where the Views constant lives + :namespace => Precious, + + # Mustache templates live here + :templates => "#{dir}/templates", + + # Tell mustache where the views are + :views => "#{dir}/views" + } + + # Sinatra error handling + configure :development, :staging do + set :raise_errors, false + set :show_exceptions, true + set :dump_errors, true + set :clean_trace, false + end + + get '/' do + show_page_or_file('Home') + end + + get '/*' do + show_page_or_file(params[:splat].first) + end + + def show_page_or_file(name) + wiki = Gollum::Wiki.new($path) + if page = wiki.page(name) + @content = page.formatted_data + mustache :page + elsif file = wiki.file(name) + file.raw_data + else + halt 404 + end + end + end +end + +Precious::App.run! diff --git a/lib/gollum/frontend/public/css/global.css b/lib/gollum/frontend/public/css/global.css new file mode 100644 index 00000000..f9e98c50 --- /dev/null +++ b/lib/gollum/frontend/public/css/global.css @@ -0,0 +1,93 @@ +h1, h2, h3, h4, h5, h6 { + color: #f90; + font-weight: bold; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +h1 { + font-size: 36pt; +} + +h2 { + font-size: 32pt; +} + +h3 { + font-size: 28pt; +} + +h4 { + font-size: 24pt; +} + +h5 { + font-size: 20pt; +} + +h6 { + font-size: 16pt; +} + +p { + font-family: Georgia, serif; + font-size: 14pt; + line-height: 22pt; +} + +#content { + width: 60em; + margin: 0 auto; + color: #666; +} + +/***********************/ + +.frame { + margin: 1em 0; + display: inline-block; +} + +.frame img { + display: block; +} + +.frame > span { + display: block; + border: 1px solid #aaa; + padding: 4px; +} + +.frame span span { + display: block; + font-size: 10pt; + margin: 0; + padding: 4px 0 2px 0; + text-align: center; + line-height: 10pt; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +.float-left { + float: left; + padding: .5em 1em .25em 0; +} + +.float-right { + float: right; + padding: .5em 0 .25em 1em; +} + +.align-left { + display: block; + text-align: left; +} + +.align-center { + display: block; + text-align: center; +} + +.align-right { + display: block; + text-align: right; +} \ No newline at end of file diff --git a/lib/gollum/frontend/templates/layout.mustache b/lib/gollum/frontend/templates/layout.mustache new file mode 100644 index 00000000..5d3ad456 --- /dev/null +++ b/lib/gollum/frontend/templates/layout.mustache @@ -0,0 +1,15 @@ + + + + + + Gollum - {{title}} + + + + +
+ {{{yield}}} +
+ + diff --git a/lib/gollum/frontend/templates/page.mustache b/lib/gollum/frontend/templates/page.mustache new file mode 100644 index 00000000..86ee4641 --- /dev/null +++ b/lib/gollum/frontend/templates/page.mustache @@ -0,0 +1 @@ +{{{content}}} \ No newline at end of file diff --git a/lib/gollum/frontend/views/layout.rb b/lib/gollum/frontend/views/layout.rb new file mode 100644 index 00000000..ae53aa24 --- /dev/null +++ b/lib/gollum/frontend/views/layout.rb @@ -0,0 +1,12 @@ +module Precious + module Views + class Layout < Mustache + include Rack::Utils + alias_method :h, :escape_html + + def title + "Home" + end + end + end +end diff --git a/lib/gollum/frontend/views/page.rb b/lib/gollum/frontend/views/page.rb new file mode 100644 index 00000000..a1aa9b0d --- /dev/null +++ b/lib/gollum/frontend/views/page.rb @@ -0,0 +1,11 @@ +module Precious + module Views + class Page < Layout + attr_reader :content + + def title + "A Page" + end + end + end +end diff --git a/lib/gollum/markup.rb b/lib/gollum/markup.rb index c7ad7bd9..d1a7010b 100644 --- a/lib/gollum/markup.rb +++ b/lib/gollum/markup.rb @@ -100,7 +100,7 @@ module Gollum containered = true align ||= 'left' if %w{left right}.include?(align) - classes << "float-#{align};" + classes << "float-#{align}" end elsif %w{top texttop middle absmiddle bottom absbottom baseline}.include?(align) attrs << %{align="#{align}"} @@ -136,12 +136,12 @@ module Gollum if opts['frame'] || containered classes << 'frame' if opts['frame'] - %{
} + - %{
} + + %{} + + %{} + %{} + - (alt ? %{

#{alt}

} : '') + - %{
} + - %{
} + (alt ? %{#{alt}} : '') + + %{} + + %{} else %{} end diff --git a/templates/formatting.html b/templates/formatting.html new file mode 100644 index 00000000..dd0b3df5 --- /dev/null +++ b/templates/formatting.html @@ -0,0 +1,92 @@ + + +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. + +

+
+ +

Google

+
+
+ +Fusce ullamcorper orci enim. Duis lectus elit, convallis ac convallis sit amet, euismod imperdiet dolor. Nunc egestas nisi quis magna feugiat vitae fringilla elit fermentum. + +
+
+ +

Google

+
+
+ +Vivamus sollicitudin dolor sit amet elit mollis ultricies. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas hendrerit eros felis. Nunc non enim at dolor malesuada pellentesque a quis nibh. Aliquam sit amet pretium ante.

+ +

+
+ +

Google

+
+
+ +

Phasellus porta dignissim leo vel hendrerit. Nulla pellentesque nisi ac nunc malesuada aliquam. Nullam et cursus augue. Sed rhoncus pharetra odio, vel dictum diam facilisis et. Etiam molestie justo ut purus elementum rhoncus. Fusce nec augue lectus. Proin a nisl ac lectus facilisis tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent blandit tempus libero, in interdum odio dignissim quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec quis arcu a metus tincidunt scelerisque eget sed mauris. Nullam pellentesque faucibus sodales. Integer ullamcorper enim id nibh tempor ultricies.

+ +
+
+ +

Google

+
+
+ +

Phasellus porta dignissim leo vel hendrerit. Nulla pellentesque nisi ac nunc malesuada aliquam. Nullam et cursus augue. Sed rhoncus pharetra odio, vel dictum diam facilisis et. Etiam molestie justo ut purus elementum rhoncus. Fusce nec augue lectus. Proin a nisl ac lectus facilisis tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent blandit tempus libero, in interdum odio dignissim quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec quis arcu a metus tincidunt scelerisque eget sed mauris. Nullam pellentesque faucibus sodales. Integer ullamcorper enim id nibh tempor ultricies.

+ +

+

+
+ +
+
+

+ +

Phasellus porta dignissim leo vel hendrerit. Nulla pellentesque nisi ac nunc malesuada aliquam. Nullam et cursus augue. Sed rhoncus pharetra odio, vel dictum diam facilisis et. Etiam molestie justo ut purus elementum rhoncus. Fusce nec augue lectus. Proin a nisl ac lectus facilisis tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent blandit tempus libero, in interdum odio dignissim quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec quis arcu a metus tincidunt scelerisque eget sed mauris. Nullam pellentesque faucibus sodales. Integer ullamcorper enim id nibh tempor ultricies.

+
+ +
+
Phasellus porta dignissim leo vel hendrerit. Nulla pellentesque nisi ac nunc malesuada aliquam. Nullam et cursus augue. Sed rhoncus pharetra odio, vel dictum diam facilisis et. Etiam molestie justo ut purus elementum rhoncus. Fusce nec augue lectus. Proin a nisl ac lectus facilisis tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent blandit tempus libero, in interdum odio dignissim quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec quis arcu a metus tincidunt scelerisque eget sed mauris. Nullam pellentesque faucibus sodales. Integer ullamcorper enim id nibh tempor ultricies.

\ No newline at end of file diff --git a/test/examples/lotr.git/objects/01/676dc56d35c1999c6fe9043fe8b78d52a0e797 b/test/examples/lotr.git/objects/01/676dc56d35c1999c6fe9043fe8b78d52a0e797 new file mode 100644 index 0000000000000000000000000000000000000000..6ff4cb8945f10a355c02f3be731498ae185ee399 GIT binary patch literal 195 zcmV;!06hPA0V^p=O;s?oG-NO|FfcPQQEYF!db67`ac%NP!Cv765^Et{jSigD5tv+XNdLiAXnYCQ6DQ}s$x zD@rnRQW<_de;@3kpuNjcbM+lzHr`3oZ%#=yF#rMu-~6JK{33>$qQL9I>TSlqpRzsN x?zJmt;@zuBP=n&#^7Bhli$G3#bIXWz-$Pf0Ra=+uHYlFN<~_Nu833dfOJ4;%Up@c; literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/07/9a5887755dc6fbacfdb672abc168b0cce698fa b/test/examples/lotr.git/objects/07/9a5887755dc6fbacfdb672abc168b0cce698fa new file mode 100644 index 0000000000000000000000000000000000000000..682d63571cb575aa8afd49d4edb73edde1170578 GIT binary patch literal 747 zcmV_ZVyq&{jMRQ*uo$kLVhSVMS}z09&h$oOd;CI4DB+P7)aC-*_jcplXX_2lBz_ zf^3;utZ0Y1X+l+#fc!nxPHwWyI^1MNsG)EB!563m4`j?3GXxr;0f-8{ccuU}v<|${ zmNCaP=>fenz(v5Cep{5g&U%Iu!Ev!kVSmY{!P^2wfEoKXJ80~&r3qrY&Lb8h#IrqsNlOzH@# zzk)5a;6eg)&as}9*_&mO=u7aBZ(xj)85~7kE6f>pf+ITmn9BtO8)60a_Jpzxeag;& zUzqC`%M{jr~r5M<0!Vy}Q_C)6xljp1+=%_MMML-Ki-is@(5EEKg0p5}4u9WaG^ zmeC6v~CYy??jY)IWI{JgoeGz4BFcfosj;|LcdgsXzKI dFh$Ouo}P|B%e%l*(96AV4|8ZK`304fh3Y?;ai#zO literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/11/5bbf9fe8004aa6a06274b44ab93a84a06e3204 b/test/examples/lotr.git/objects/11/5bbf9fe8004aa6a06274b44ab93a84a06e3204 new file mode 100644 index 0000000000000000000000000000000000000000..25024714322cbf9ee362ebfa10770a6c59f90924 GIT binary patch literal 196 zcmV;#06YJ90V^p=O;s?oG-NO|FfcPQQEYF!db67`ac%NP!Cv765^Et{jSigD5tv+XNdLiAXnYCQ6DQ}s$x zD@rnRQW<_de;@3kpuNjcbM+lzHr`3oZ%#=yF#rMu-~6JK{33>%k1PMa3f=bKy6~XD y=1bSNM(@A+4r)-mTYi2?Y7xjuZ*Cc}?tAE}uxjh_-3G;z*t{qAH3I-Wq)t>#6JP%T literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/14/78ebf7ad4dc6a06c76cdb4aca0eba7f78796aa b/test/examples/lotr.git/objects/14/78ebf7ad4dc6a06c76cdb4aca0eba7f78796aa new file mode 100644 index 0000000000000000000000000000000000000000..e9ffb99969c7339af742b2b627e418a65e9d924c GIT binary patch literal 195 zcmV;!06hPA0V^p=O;s?oG-NO|FfcPQQEUNfH&w4B zwW1_5CzavX^Y_6n3fj9IHCNveX5*bS{pOTZ69XVn@Xaqu$uDBydnH*t+4^R4v7m3{ x@h8(YN~Avjgc=m@mY-jeS_E>^n_EV#`yRR~tlGMKw?XkFHt)%O%>YcLOWk&|VRrxk literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/1e/716a3178a76fe39ee7b88f0cf2dc4a447566f6 b/test/examples/lotr.git/objects/1e/716a3178a76fe39ee7b88f0cf2dc4a447566f6 new file mode 100644 index 0000000000000000000000000000000000000000..42fc78435f6f21a83129dfdcd6ec9100daa691b7 GIT binary patch literal 164 zcmV;V09*ff0iBLZ3IZ_@1zqP9eF3HO?F2+Tf(yZQCh7QrOiPUSch2DUQANEXy+0=y zYj$%m1L{Db79XnhMW>WXXq?d5#&Mxoy~)UwNWJsmbwX}z(7Ngnmuxg^YlCh!HgXBE zcwLu5t+LAB`H%ru>2MkRnX>M0JXRiXoYK!-UeXsi6zM0>hN2^FeS|#{qT1H&<=o)^ SeD&=4&M>#`NBsc5%t`zSeN<8a literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/28/bb2f40d2e4c82a4ae62ef619a80a4b555e23ee b/test/examples/lotr.git/objects/28/bb2f40d2e4c82a4ae62ef619a80a4b555e23ee new file mode 100644 index 0000000000000000000000000000000000000000..3669331255811f4b3c9ba7223db33d50a5ea67a0 GIT binary patch literal 171 zcmV;c095~Y0iBLPYQr!P0DIOe_5%)*z1GSQLZ8q>A?KB}B1t1}kmdi^`9iM43{28m z?;XZz`RYvs98!>2h%@Ho+4@92<%pcvN@OY&Xz|SE#ZA@@(Pn4EGzOd(K`f;pzYDiS zXLC*ya!!KL@ZN9Q;8!dBG}*eY!&TZU4bENbch!g1sHdd$0&b*$-qY-0uw<<{=yBN( Z`Lo_U@9Q7zFW9sSY<(}q`~yOVPEXogSjqqZ literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/2c/b9156ad383914561a8502fc70f5a1d887e48ad b/test/examples/lotr.git/objects/2c/b9156ad383914561a8502fc70f5a1d887e48ad new file mode 100644 index 0000000000000000000000000000000000000000..9d786ae31c1c1864fd91f1fa423f8c2493e2dcfd GIT binary patch literal 399 zcmV;A0dW3!0gaL|i`+mAg;V=i2(H)!_Pmhdij*4?av>?Q*^t7RL$+mGcsw$i@tOVi z(Rgh_x`3OJ-#mSKn#xH9PfzdPJiwVBV;{2YpCfR9*b_`D5j*i5B1j8YD;32T zsVa_T3FsR@7X(HeC;&oBONP@#sOW2}uwSoy6K&G<KW4fI@JXo>HA(i%w`{TW)W8)Tg*?liZQ47n zv3gX+)vp%Ig5xn6FFn`2p}4ihK1YK8&Q0U!(V~kcP|6NUrn?;=TA0C^mw1aHkte*C zjn-;&fLC$zNP7YoBRY!=>HOQUN7TAMZtLCFigWC33{#|yZkeTR?!Es0{K?K7*g0!& tGk#9}i$2Eb!|6mmUwGh&8pd3-JEhZUeMm3cyDH!QzxG|8{Q;Bt>+DyY%WMDu literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/37/fcc52509fb09142cafccaada0252f3de81873c b/test/examples/lotr.git/objects/37/fcc52509fb09142cafccaada0252f3de81873c new file mode 100644 index 0000000000000000000000000000000000000000..88edefe55b7fe458e8beabcf79bfc13320112fc4 GIT binary patch literal 195 zcmV;!06hPA0V^p=O;s?oG-NO|FfcPQQEe>(?DaW5-R-VmJwJwPziF(P!WekV6*v;pdmd(*u#W?AS+4dDJA$qJ(H6Ho7sd^=; z6(yNDsSLlKzYlg%(B9>!x%!SU8}Fp)H>aeU7yyBSZ+=lqeh~xTE6M7~);F7r1$`rr xKbfvkBK7$v)S!5`{QQ#CB9N2b+%jU__s~^g)z;;^4T>kRc~9YF!db67`ac%NP!Cv765^Et{jSigD5tv+XNdLiAXnYCQ6DQ}s$x zD@rnRQW<_de;@3kpuNjcbM+lzHr`3oZ%#=yF#rMu-~6JK{2~UvSCZ9}t#39L3;ISL xe==R8MC$WTs6p{=`S~TOMIa}=xn;z<@1d*0s;$d+8x&7s^Pb$-3;=sLN{2e$TtWZ< literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/4f/de706c7c8d3b30b6caec8c82ff4c01261350f2 b/test/examples/lotr.git/objects/4f/de706c7c8d3b30b6caec8c82ff4c01261350f2 new file mode 100644 index 00000000..78a9ea4e --- /dev/null +++ b/test/examples/lotr.git/objects/4f/de706c7c8d3b30b6caec8c82ff4c01261350f2 @@ -0,0 +1,3 @@ +xK +1]}ɯ{":iy +^̐vIِCɖBXBRy4Fim`,uՔs+p!tqӐvi䘥AZ9Yt9v^յ3F}ɆJ \ No newline at end of file diff --git a/test/examples/lotr.git/objects/71/4323c104239440a5c66ab12a67ed07a83c404f b/test/examples/lotr.git/objects/71/4323c104239440a5c66ab12a67ed07a83c404f new file mode 100644 index 0000000000000000000000000000000000000000..b003ac7ff853cb9f457515ce9f101ccebffbe17a GIT binary patch literal 9596 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 literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/79/8f6564abb42d7ed34621d53595cbbe84638949 b/test/examples/lotr.git/objects/79/8f6564abb42d7ed34621d53595cbbe84638949 new file mode 100644 index 00000000..df9cf90a --- /dev/null +++ b/test/examples/lotr.git/objects/79/8f6564abb42d7ed34621d53595cbbe84638949 @@ -0,0 +1 @@ +xA@ 9ϯMO ı 8P8TrObe27G-WU}FfcPQQE;tH)%8!)4NfdA%FolwO<`c4713TAd+hg` zzuSsdAI#Wr=Gly2P_?O*sd`xj=?sO=$_H7Lr#LJ+VOOQhz*e z?Kp`<$`OIoL!#8PGxOfOH(M{QU(&PZFJC-*LT9%^pIW-)9K5TlcM^mcpXfWGUQNnD zBKelmT86{;IUasoRqu05L!e*#RbE+LIkM8;*BRk?373}T@H&wZmn0nR#HHMPJaCW^ zO5Pt5hIl#u!3XI``Q*FH(~K@y(3K-;!PX#s zQvxKJt|5S@kW(m6H8F&fu9rYLIHul*lr;G;qf2RUU?U+gEp;ib)Jf`$Hrb)c>l}Eg zr9X;Or>N7A(`fN`OuEb#=iwVv)L2@x8Nz_)!&0dY0Ib&XA^sLPVX4p^`; zxr^*(bPi%GfVSeP8xGghaF4E$7*@1a4X`!p$az=OhJzx6-z0&7{*8BH3aX|!wj&>m zPRJ(KVnti9<9>Ypv&Wx3}}#^Dk$#`&uk8{NkS?%T$IsZwp2N87$&xt$vO5 zO;8z+>Yc@4r7inD2Y{8}fjDjX%n0@e?QR$+ZM@B?FLN!fX<&PeQQ_Ume?zBXf_=6d zbzGzyD7T!=Ae$ijE5?WxT&4p9FhT@{%wmtmWRBmoXgPVmF^-S~f>t72~8QX4_Y^gy^wC)p+FRrs|cX zR+MDsq%!<^{yx}6L3@{@=IT4bY`l}E-<*!o$L)y`dG(~!U zOt9!qb1(yjR*JV?r?3|Q1bgZBwdFDGU+7*ldY*`(@Qj5==( z1L9U|GtD|hulXwjzNEwF;J+#R`J2bi1Flp0N0+DcESDnv2F8Zyw#|kFXC1Uwi>}ML VYF!db67`ac%NP!Cv765^Et{jSigD5tv+XNdLiAXnYCQ6DQ}s$x zD@rnRQW<_de;@3kpuNjcbM+lzHr`3oZ%#=yF#rMu-~6JK{33?Oj=|K]0f Gʀp SNh[~-nN}ނ-rL 0&YRiN_+8/%L|d0+,Vl=YGhu-G)A$ЩLrבR2ILaH?.R-+u+#FU_<3&Tկ۶/7u=GmWg.P +%]7`K{ O/7ppXߎ=6v+ŋ /n>O1x? fݎR3h+n}Dnoml \ No newline at end of file diff --git a/test/examples/lotr.git/objects/d9/e379fdea55b6ff3b71c110b3d2d7b55bbfd5ee b/test/examples/lotr.git/objects/d9/e379fdea55b6ff3b71c110b3d2d7b55bbfd5ee new file mode 100644 index 0000000000000000000000000000000000000000..721127b6e8e556175d4a3e413aa06033f79d2455 GIT binary patch literal 124 zcmV-?0E7Q{0V^p=O;s>7G-WU}FfcPQQE;tH)%8!)4NfdA%FolwO<~}BwM{G1fGuqc zr_HDH3#T3YcbBgasy4MURWGX`ouSZK`5=q(6o;k9vNmd^zhz%xMmanH literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/e3/415337d9ae2c0b4b00054a93727f4a7d3c3ca5 b/test/examples/lotr.git/objects/e3/415337d9ae2c0b4b00054a93727f4a7d3c3ca5 new file mode 100644 index 0000000000000000000000000000000000000000..5f5e49e09c62f9c8836c3a26e38abb02700b022d GIT binary patch literal 124 zcmV-?0E7Q{0V^p=O;s>7G-WU}FfcPQQE;tH)%8!)4NfdA%FolwO<|avY$y~oo0t2( z>LG=+rl<4fhZa4Bs!gp-)ypbKXDD=5KFFdx#bN2Otc_afZ`oJaIQT=Al;o%6>y=cL eFmTA96a>^ literal 0 HcmV?d00001 diff --git a/test/examples/lotr.git/objects/f2/5eccd98e9b667f9e22946f3e2f945378b8a72d b/test/examples/lotr.git/objects/f2/5eccd98e9b667f9e22946f3e2f945378b8a72d new file mode 100644 index 00000000..8b7776d1 --- /dev/null +++ b/test/examples/lotr.git/objects/f2/5eccd98e9b667f9e22946f3e2f945378b8a72d @@ -0,0 +1,2 @@ +xKj0@))#{$@hd&,k|CiuK͞q#EDn<ҐmBjׅE!jQ +TZJl1uU;|٧n/ x?hZ]Y`@4'=/)zsmp<`.ϣ5,L \ No newline at end of file diff --git a/test/examples/lotr.git/objects/f4/46205ac9df5b6a40c00785f06827f4a4dbd727 b/test/examples/lotr.git/objects/f4/46205ac9df5b6a40c00785f06827f4a4dbd727 new file mode 100644 index 00000000..15bedfdd --- /dev/null +++ b/test/examples/lotr.git/objects/f4/46205ac9df5b6a40c00785f06827f4a4dbd727 @@ -0,0 +1 @@ +xKj0@))#i,KPJEk}fhd&8^`).9&AO#)5-КGM(,F"-E"By T,V=VW9x]xl
b

\n" + output = "

a b

\n" relative_image(content, output) end end test "image with float" do content = "a\n\n[[alpha.jpg|float]]\n\nb" - output = "

a

\n\n

\n\n

b

\n" + output = "

a

\n\n

\n\n

b

\n" relative_image(content, output) end test "image with float and align" do %w{left right}.each do |align| content = "a\n\n[[alpha.jpg|float|align=#{align}]]\n\nb" - output = "

a

\n\n

\n\n

b

\n" + output = "

a

\n\n

\n\n

b

\n" relative_image(content, output) end end test "image with frame" do content = "a\n\n[[alpha.jpg|frame]]\n\nb" - output = "

a

\n\n

\n\n

b

\n" + output = "

a

\n\n

\n\n

b

\n" relative_image(content, output) end test "image with frame and alt" do content = "a\n\n[[alpha.jpg|frame|alt=Alpha]]\n\nb" - output = "

a

\n\n

\"Alpha\"

Alpha

\n\n

b

\n" + output = "

a

\n\n

\"Alpha\"Alpha

\n\n

b

\n" relative_image(content, output) end diff --git a/test/test_page.rb b/test/test_page.rb index 45b19b91..b5dac678 100644 --- a/test/test_page.rb +++ b/test/test_page.rb @@ -28,7 +28,7 @@ context "Page" do test "page versions" do page = @wiki.page('Bilbo Baggins') - assert_equal ['5bc1aaec6149e854078f1d0f8b71933bbc6c2e43'], + assert_equal ["f25eccd98e9b667f9e22946f3e2f945378b8a72d", "5bc1aaec6149e854078f1d0f8b71933bbc6c2e43"], page.versions.map { |v| v.id } end diff --git a/test/test_wiki.rb b/test/test_wiki.rb index 8d3ceded..2bb913de 100644 --- a/test/test_wiki.rb +++ b/test/test_wiki.rb @@ -17,25 +17,27 @@ context "Wiki" do test "shows paginated log with no page" do Gollum::Wiki.per_page = 3 assert_equal %w( - f01428b3138994aab19d5f880b6f37336ddf1f24 - fbabba862dfa7ac35b39042dd4ad780c9f67b8cb - df26e61e707116f81ebc6b935ec6d1676b7e96c4), + 4fde706c7c8d3b30b6caec8c82ff4c01261350f2 + 1e716a3178a76fe39ee7b88f0cf2dc4a447566f6 + afe2034d400ba21e13361f38f74900c51dbc7fde), @wiki.log.map { |c| c.id } end test "shows paginated log with 1st page" do Gollum::Wiki.per_page = 3 assert_equal %w( - f01428b3138994aab19d5f880b6f37336ddf1f24 - fbabba862dfa7ac35b39042dd4ad780c9f67b8cb - df26e61e707116f81ebc6b935ec6d1676b7e96c4), + 4fde706c7c8d3b30b6caec8c82ff4c01261350f2 + 1e716a3178a76fe39ee7b88f0cf2dc4a447566f6 + afe2034d400ba21e13361f38f74900c51dbc7fde), @wiki.log(:page => 1).map { |c| c.id } end test "shows paginated log with next page" do Gollum::Wiki.per_page = 3 assert_equal %w( - 5bc1aaec6149e854078f1d0f8b71933bbc6c2e43), + f25eccd98e9b667f9e22946f3e2f945378b8a72d + b0d108328459e44fff4a76cd19b10ddc34adce4b + f01428b3138994aab19d5f880b6f37336ddf1f24), @wiki.log(:page => 2).map { |c| c.id } end end