gollum-site 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,56 @@
1
+ require 'digest/sha1'
2
+ require 'cgi'
3
+
4
+ module Gollum
5
+ class Markup
6
+
7
+ # Attempt to process the tag as a page link tag.
8
+ #
9
+ # tag - The String tag contents (the stuff inside the double
10
+ # brackets).
11
+ # no_follow - Boolean that determines if rel="nofollow" is added to all
12
+ # <a> tags.
13
+ #
14
+ # Returns the String HTML if the tag is a valid page link tag or nil
15
+ # if it is not.
16
+ def process_page_link_tag(tag, no_follow = false)
17
+ parts = tag.split('|')
18
+ name = parts[0].strip
19
+ cname = @wiki.page_class.cname((parts[1] || parts[0]).strip)
20
+ if pos = cname.index('#')
21
+ extra = cname[pos..-1]
22
+ cname = cname[0..(pos-1)]
23
+ end
24
+ tag = if name =~ %r{^https?://} && parts[1].nil?
25
+ %{<a href="#{name}">#{name}</a>}
26
+ else
27
+ presence = "absent"
28
+ link_name = cname
29
+ page = find_page_from_name(cname)
30
+ if page
31
+ presence = "present"
32
+ end
33
+ link = ::File.join(@wiki.base_path, CGI.escape(link_name))
34
+ %{<a class="internal #{presence}" href="#{link}#{extra}">#{name}</a>}
35
+ end
36
+ if tag && no_follow
37
+ tag.sub! /^<a/, '<a ref="nofollow"'
38
+ end
39
+ tag
40
+ end
41
+
42
+ # Find a page from a given cname. If the page has an anchor (#) and has
43
+ # no match, strip the anchor and try again.
44
+ #
45
+ # cname - The String canonical page name.
46
+ #
47
+ # Returns a Gollum::Page instance if a page is found, or an Array of
48
+ # [Gollum::Page, String extra] if a page without the extra anchor data
49
+ # is found.
50
+ def find_page_from_name(cname)
51
+ if page = @wiki.page(cname, @version)
52
+ return page
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,5 +1,5 @@
1
1
  module Gollum
2
2
  class Site
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
data/lib/gollum-site.rb CHANGED
@@ -6,3 +6,7 @@ require 'gollum-site/site'
6
6
  # should replace with custom Page class once issue #63 is fixed
7
7
  # http://github.com/github/gollum/issues/#issue/63
8
8
  require 'gollum-site/page'
9
+
10
+ # Markup does not use page version :(
11
+ # Markup does not handle anchor tags for absent pages
12
+ require 'gollum-site/markup'
@@ -1 +1 @@
1
- Added hashed link
1
+ Adding Page-One
Binary file
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 9b063b69e53a11210e033ba953be56135a7b0281 Daniel Reverri <reverri@gmail.com> 1288896279 -0700 clone: from /Users/dreverri/src/basho/gollum-site/test/examples/test_site.git
2
- 9b063b69e53a11210e033ba953be56135a7b0281 c3d487fda322940d75eac154fc8383093f7bcdf3 Daniel Reverri <reverri@gmail.com> 1288896347 -0700 commit: Added hashed link
1
+ 0000000000000000000000000000000000000000 45170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329 Daniel Reverri <reverri@gmail.com> 1288900058 -0700 clone: from /Users/dreverri/src/basho/gollum-site/test/examples/test_site.git
2
+ 45170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329 3134a0792941bf0df537c3a10d2502fdc3be08a5 Daniel Reverri <reverri@gmail.com> 1288900147 -0700 commit: Adding Page-One
@@ -1,2 +1,2 @@
1
- 0000000000000000000000000000000000000000 9b063b69e53a11210e033ba953be56135a7b0281 Daniel Reverri <reverri@gmail.com> 1288896279 -0700 clone: from /Users/dreverri/src/basho/gollum-site/test/examples/test_site.git
2
- 9b063b69e53a11210e033ba953be56135a7b0281 c3d487fda322940d75eac154fc8383093f7bcdf3 Daniel Reverri <reverri@gmail.com> 1288896347 -0700 commit: Added hashed link
1
+ 0000000000000000000000000000000000000000 45170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329 Daniel Reverri <reverri@gmail.com> 1288900058 -0700 clone: from /Users/dreverri/src/basho/gollum-site/test/examples/test_site.git
2
+ 45170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329 3134a0792941bf0df537c3a10d2502fdc3be08a5 Daniel Reverri <reverri@gmail.com> 1288900147 -0700 commit: Adding Page-One
@@ -0,0 +1 @@
1
+ x��K��0��)� ��e BH`�3���#�� �� s�Y�����,����Л*pȔ%����P�D�qJ�s,ю2$��͋���`Gd�1i� �1�L�M���\�w�л?�_�V}�]?�Z�s���P}�x[.`]Jц�8"������67����C��W5�)�I�
@@ -0,0 +1,2 @@
1
+ x��QJ1D��)�J��lz@�O�
2
+ {m_�)�Om
@@ -1,2 +1,2 @@
1
1
  # pack-refs with: peeled
2
- 9b063b69e53a11210e033ba953be56135a7b0281 refs/remotes/origin/master
2
+ 45170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329 refs/remotes/origin/master
@@ -1 +1 @@
1
- c3d487fda322940d75eac154fc8383093f7bcdf3
1
+ 3134a0792941bf0df537c3a10d2502fdc3be08a5
data/test/test_site.rb CHANGED
@@ -10,6 +10,7 @@ context "Site" do
10
10
 
11
11
  test "generate static site" do
12
12
  assert_equal(["/Home.html",
13
+ "/Page-One.html",
13
14
  "/Page1.html",
14
15
  "/Page2.html",
15
16
  "/static",
@@ -21,7 +22,9 @@ context "Site" do
21
22
  test "render page with layout and link" do
22
23
  home_path = File.join(@site.output_path, "Home.html")
23
24
  assert_equal(["<html><p>Site test\n",
24
- "<a class=\"internal present\" href=\"/Page1.html#test\">Page1#test</a></p></html>\n"], File.open(home_path).readlines)
25
+ "<a class=\"internal present\" href=\"/Page1.html#test\">Page1#test</a>\n",
26
+ "<a class=\"internal present\" href=\"/Page-One.html#test\">Page with anchor</a></p></html>\n"],
27
+ File.open(home_path).readlines)
25
28
  end
26
29
 
27
30
  test "render page with layout from parent dir" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gollum-site
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 5
10
- version: 0.0.5
9
+ - 6
10
+ version: 0.0.6
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Reverri
@@ -451,6 +451,7 @@ files:
451
451
  - lib/gollum-site/layout/javascript/jquery.previewable_comment_form.js
452
452
  - lib/gollum-site/layout/javascript/jquery.tabs.js
453
453
  - lib/gollum-site/layout/javascript/jquery.text_selection-1.0.0.min.js
454
+ - lib/gollum-site/markup.rb
454
455
  - lib/gollum-site/page.rb
455
456
  - lib/gollum-site/site.rb
456
457
  - lib/gollum-site/version.rb
@@ -475,7 +476,9 @@ files:
475
476
  - test/examples/test_site.git/objects/0c/e23474afb8381a2df45077c7897e72ea66bd82
476
477
  - test/examples/test_site.git/objects/12/d183189412aea09391023586297528722daa1b
477
478
  - test/examples/test_site.git/objects/24/6104cdec11f15d582a78ffefc1be08b1566561
479
+ - test/examples/test_site.git/objects/31/34a0792941bf0df537c3a10d2502fdc3be08a5
478
480
  - test/examples/test_site.git/objects/33/c6cf51b72a58596114e5d2f03261b8deaaa0f0
481
+ - test/examples/test_site.git/objects/45/170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329
479
482
  - test/examples/test_site.git/objects/4d/1311a57ece3dc2840c6e48d1b9bf5978e3dc91
480
483
  - test/examples/test_site.git/objects/4d/905a41381ad39d616dee245cf3e324f9fcc02e
481
484
  - test/examples/test_site.git/objects/6c/bc9f20aa7806196638e32f708e012568d4a959
@@ -484,15 +487,19 @@ files:
484
487
  - test/examples/test_site.git/objects/91/e0f12260f005632f42619886d02ee0a1f9cb2f
485
488
  - test/examples/test_site.git/objects/9b/063b69e53a11210e033ba953be56135a7b0281
486
489
  - test/examples/test_site.git/objects/9b/3d7fbc0ed4fc1db28f361729e4396208e6f846
490
+ - test/examples/test_site.git/objects/a5/2b08f141c77fa0cd2397fb26f3285ea17bd6ea
487
491
  - test/examples/test_site.git/objects/b1/99a056e7e0dfadc1350413de32d6c9a700e7fa
488
492
  - test/examples/test_site.git/objects/c3/d487fda322940d75eac154fc8383093f7bcdf3
493
+ - test/examples/test_site.git/objects/c4/9a9d6386a9d955b3fac30f863c6b617d5830bc
489
494
  - test/examples/test_site.git/objects/cd/68dbcff0518c406e8caee2fa163006a90626b7
490
495
  - test/examples/test_site.git/objects/d9/4ddf467ffb57a73ce424b123dd04e80c760719
491
496
  - test/examples/test_site.git/objects/dd/d9974bd919e3601cc015ee36d524f18b4b2df5
492
497
  - test/examples/test_site.git/objects/e4/2feb142e65f08532eb10ca858e2275a1135462
498
+ - test/examples/test_site.git/objects/e5/d334fc4683e3320e922b8eb07232fa6ba0d74a
493
499
  - test/examples/test_site.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
494
500
  - test/examples/test_site.git/objects/e7/0688deaa9cae7f981200111abc974a334a4426
495
501
  - test/examples/test_site.git/objects/ea/8b884d4ac9807c17383bace8393379d15f8c2f
502
+ - test/examples/test_site.git/objects/fe/8086cbd51dd30365c9cbaedf015036445fabe4
496
503
  - test/examples/test_site.git/packed-refs
497
504
  - test/examples/test_site.git/refs/heads/master
498
505
  - test/examples/test_site.git/refs/remotes/origin/HEAD
@@ -579,7 +586,9 @@ test_files:
579
586
  - test/examples/test_site.git/objects/0c/e23474afb8381a2df45077c7897e72ea66bd82
580
587
  - test/examples/test_site.git/objects/12/d183189412aea09391023586297528722daa1b
581
588
  - test/examples/test_site.git/objects/24/6104cdec11f15d582a78ffefc1be08b1566561
589
+ - test/examples/test_site.git/objects/31/34a0792941bf0df537c3a10d2502fdc3be08a5
582
590
  - test/examples/test_site.git/objects/33/c6cf51b72a58596114e5d2f03261b8deaaa0f0
591
+ - test/examples/test_site.git/objects/45/170c1c68e6ddd4d4c08adfb2aaf3c12d9b6329
583
592
  - test/examples/test_site.git/objects/4d/1311a57ece3dc2840c6e48d1b9bf5978e3dc91
584
593
  - test/examples/test_site.git/objects/4d/905a41381ad39d616dee245cf3e324f9fcc02e
585
594
  - test/examples/test_site.git/objects/6c/bc9f20aa7806196638e32f708e012568d4a959
@@ -588,15 +597,19 @@ test_files:
588
597
  - test/examples/test_site.git/objects/91/e0f12260f005632f42619886d02ee0a1f9cb2f
589
598
  - test/examples/test_site.git/objects/9b/063b69e53a11210e033ba953be56135a7b0281
590
599
  - test/examples/test_site.git/objects/9b/3d7fbc0ed4fc1db28f361729e4396208e6f846
600
+ - test/examples/test_site.git/objects/a5/2b08f141c77fa0cd2397fb26f3285ea17bd6ea
591
601
  - test/examples/test_site.git/objects/b1/99a056e7e0dfadc1350413de32d6c9a700e7fa
592
602
  - test/examples/test_site.git/objects/c3/d487fda322940d75eac154fc8383093f7bcdf3
603
+ - test/examples/test_site.git/objects/c4/9a9d6386a9d955b3fac30f863c6b617d5830bc
593
604
  - test/examples/test_site.git/objects/cd/68dbcff0518c406e8caee2fa163006a90626b7
594
605
  - test/examples/test_site.git/objects/d9/4ddf467ffb57a73ce424b123dd04e80c760719
595
606
  - test/examples/test_site.git/objects/dd/d9974bd919e3601cc015ee36d524f18b4b2df5
596
607
  - test/examples/test_site.git/objects/e4/2feb142e65f08532eb10ca858e2275a1135462
608
+ - test/examples/test_site.git/objects/e5/d334fc4683e3320e922b8eb07232fa6ba0d74a
597
609
  - test/examples/test_site.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
598
610
  - test/examples/test_site.git/objects/e7/0688deaa9cae7f981200111abc974a334a4426
599
611
  - test/examples/test_site.git/objects/ea/8b884d4ac9807c17383bace8393379d15f8c2f
612
+ - test/examples/test_site.git/objects/fe/8086cbd51dd30365c9cbaedf015036445fabe4
600
613
  - test/examples/test_site.git/packed-refs
601
614
  - test/examples/test_site.git/refs/heads/master
602
615
  - test/examples/test_site.git/refs/remotes/origin/HEAD