genit 1.0.1 → 2.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.
Files changed (49) hide show
  1. data/NEWS +12 -28
  2. data/README.markdown +6 -2
  3. data/Rakefile +1 -1
  4. data/TODO +177 -12
  5. data/VERSION +1 -1
  6. data/bin/genit +18 -20
  7. data/data/styles/screen.css +5 -9
  8. data/data/templates/main.html +0 -1
  9. data/lib/genit.rb +9 -4
  10. data/lib/genit/builders/body_link_builder.rb +8 -8
  11. data/lib/genit/builders/builder_base.rb +11 -11
  12. data/lib/genit/builders/head_link_builder.rb +8 -8
  13. data/lib/genit/builders/relativizer.rb +12 -12
  14. data/lib/genit/builders/script_builder.rb +7 -7
  15. data/lib/genit/documents/document_writer.rb +14 -14
  16. data/lib/genit/documents/fragment.rb +23 -22
  17. data/lib/genit/documents/xml_document.rb +5 -1
  18. data/lib/genit/project.rb +1 -0
  19. data/lib/genit/project/compiler.rb +54 -73
  20. data/lib/genit/project/page_compiler.rb +41 -41
  21. data/lib/genit/project/pages_finder.rb +6 -6
  22. data/lib/genit/project/project_creator.rb +116 -111
  23. data/lib/genit/project/root_cleaner.rb +31 -0
  24. data/lib/genit/project/rss_feed.rb +14 -14
  25. data/lib/genit/server.rb +2 -0
  26. data/lib/genit/server/server.rb +33 -0
  27. data/lib/genit/tags/class_fragment_tag.rb +2 -2
  28. data/lib/genit/tags/class_menu_tag.rb +2 -1
  29. data/lib/genit/tags/class_news_tag.rb +24 -24
  30. data/lib/genit/tags/class_pages_tag.rb +1 -1
  31. data/lib/genit/tags/here_tag.rb +22 -18
  32. data/lib/genit/utils/news_utils.rb +3 -3
  33. data/spec/class_news_tag_spec.rb +5 -5
  34. data/spec/compiler_spec.rb +51 -60
  35. data/spec/fragment_spec.rb +19 -19
  36. data/spec/html_document_spec.rb +10 -10
  37. data/spec/page_compiler_spec.rb +13 -9
  38. data/spec/pages_finder_spec.rb +11 -11
  39. data/spec/project_creator_spec.rb +53 -102
  40. data/spec/test-files/malformed.html +5 -0
  41. data/spec/xml_document_spec.rb +5 -0
  42. metadata +6 -9
  43. data/data/styles/alsa/all.css +0 -130
  44. data/data/styles/yui/all.css +0 -3
  45. data/data/styles/yui/base.css +0 -80
  46. data/data/styles/yui/fonts.css +0 -47
  47. data/data/styles/yui/reset.css +0 -126
  48. data/data/templates/xhtml_1.0_strict +0 -5
  49. data/data/templates/xhtml_1.0_transitional +0 -5
@@ -0,0 +1,5 @@
1
+ <p>
2
+ auie
3
+ bépo
4
+ <br>
5
+ </p>
@@ -14,4 +14,9 @@ describe XmlDocument do
14
14
  doc.css("ul#menu li").size.should >= 1
15
15
  end
16
16
 
17
+ it "should exit on malformed document" do
18
+ lambda do
19
+ XmlDocument.open("spec/test-files/malformed.html")
20
+ end.should raise_error(SystemExit)
21
+ end
17
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: '2.0'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-03-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -75,6 +75,7 @@ files:
75
75
  - lib/genit/project/rss_feed.rb
76
76
  - lib/genit/project/project_creator.rb
77
77
  - lib/genit/project/page_compiler.rb
78
+ - lib/genit/project/root_cleaner.rb
78
79
  - lib/genit/project/compiler.rb
79
80
  - lib/genit/builders/head_link_builder.rb
80
81
  - lib/genit/builders/builder.rb
@@ -94,6 +95,7 @@ files:
94
95
  - lib/genit/utils/file_writer.rb
95
96
  - lib/genit/utils/news_utils.rb
96
97
  - lib/genit/builders.rb
98
+ - lib/genit/server/server.rb
97
99
  - lib/genit/utils.rb
98
100
  - lib/genit/tags/class_menu_tag.rb
99
101
  - lib/genit/tags/class_news_tag.rb
@@ -107,21 +109,15 @@ files:
107
109
  - lib/genit/documents.rb
108
110
  - lib/genit/extensions/string_extension.rb
109
111
  - lib/genit/extensions/nokogiri_extension.rb
112
+ - lib/genit/server.rb
110
113
  - lib/genit.rb
111
114
  - bin/genit
112
- - data/templates/xhtml_1.0_strict
113
115
  - data/templates/html_5
114
- - data/templates/xhtml_1.0_transitional
115
116
  - data/templates/menu.html
116
117
  - data/templates/main.html
117
118
  - data/styles/handheld.css
118
119
  - data/styles/print.css
119
- - data/styles/alsa/all.css
120
120
  - data/styles/screen.css
121
- - data/styles/yui/reset.css
122
- - data/styles/yui/all.css
123
- - data/styles/yui/base.css
124
- - data/styles/yui/fonts.css
125
121
  - data/pages/index.html
126
122
  - data/pages/index2.html
127
123
  - spec/file_writer_spec.rb
@@ -139,6 +135,7 @@ files:
139
135
  - spec/project_creator_spec.rb
140
136
  - spec/extensions_spec.rb
141
137
  - spec/bluecloth_spec.rb
138
+ - spec/test-files/malformed.html
142
139
  - spec/test-files/fragment4.html
143
140
  - spec/test-files/fragment3.html
144
141
  - spec/test-files/test.markdown
@@ -1,130 +0,0 @@
1
- /* --- STYLES DE BASE ---
2
- *
3
- * from alsacréations:
4
- * http://www.alsacreations.com/astuce/lire/654-feuille-de-styles-de-base.html
5
- */
6
-
7
- /* Page */
8
- html {
9
- font-size: 100%; /* Évite un bug d'IE 6-7. (1) */
10
- }
11
- body {
12
- margin: 0;
13
- padding: 1em; /* Remettre à zéro si nécessaire. */
14
- /* Pensez à utiliser une collection de polices (2), par ex:
15
- font-family: Arial, Helvetica, FreeSans, sans-serif; */
16
- font-size: .8em; /* À adapter pour la police choisie. (3) */
17
- line-height: 1.4; /* À adapter au design. (4) */
18
- color: black;
19
- background: white;
20
- }
21
-
22
- /* Titres */
23
- h1, h2, h3, h4, h5, h6 {
24
- margin: 1em 0 .5em 0; /* Rapproche le titre du texte. (5) */
25
- line-height: 1.2;
26
- font-weight: bold; /* Valeur par défaut. (6) */
27
- font-style: normal;
28
- }
29
- h1 {
30
- font-size: 1.75em;
31
- }
32
- h2 {
33
- font-size: 1.5em;
34
- }
35
- h3 {
36
- font-size: 1.25em;
37
- }
38
- h4 {
39
- font-size: 1em;
40
- }
41
-
42
- /* Listes */
43
- ul, ol {
44
- margin: .75em 0 .75em 32px;
45
- padding: 0;
46
- }
47
-
48
- /* Paragraphes */
49
- p {
50
- margin: .75em 0; /* Marges plus faibles que par défaut. (7) */
51
- }
52
- address {
53
- margin: .75em 0;
54
- font-style: normal;
55
- }
56
-
57
- /* Liens */
58
- a {
59
- text-decoration: underline;
60
- }
61
- a:link {
62
- color: #11C;
63
- }
64
- a:visited {
65
- color: #339;
66
- }
67
- a:hover, a:focus, a:active {
68
- color: #00F;
69
- }
70
-
71
- /* Pas de bordure autour des images dans les liens */
72
- a img {
73
- border: none;
74
- }
75
-
76
- /* Divers éléments de type en-ligne (8) */
77
- em {
78
- font-style: italic;
79
- }
80
- strong {
81
- font-weight: bold;
82
- }
83
-
84
- /* Formulaires */
85
- form, fieldset {
86
- margin: 0;
87
- padding: 0;
88
- border: none;
89
- }
90
- input, button, select {
91
- vertical-align: middle; /* Solution pb. d'alignement. (9) */
92
- }
93
-
94
- /*
95
- * 1. Bug décrit sur la page suivante: Bug avec l’unité relative em et Internet Explorer.
96
- *
97
- * 2. Pour un choix de collections de polices (font-family, voir Quelles polices de caractères
98
- * (fontes) utiliser sur le Web?.
99
- *
100
- * 3. Ici, on utilise les styles de l'élément body pour définir la taille du texte globale pour le
101
- * site. Une police Arial ou Helvetica à .8em, soit 80% de la taille du texte par défaut du
102
- * navigateur, fournit une bonne lisibilité. Il faudra adapter cette valeur suivant la police
103
- * choisie, les besoins du design, etc.
104
- *
105
- * 4. Les valeurs 1.1 et 1.2 conviennent marchent bien pour les titres, voire pour le texte dans des
106
- * colonnes étroites. Pour des lignes de texte plus longues, on utilisera plutôt des valeurs
107
- * entre 1.2 (120%) et 1.8 (180%).
108
- *
109
- * 5. Avec les styles par défaut des navigateurs, les titres ont souvent une marge supérieure et une
110
- * marge inférieure égales. Du coup, on ne reconnait pas au premier coup d'œil que le titre se
111
- * rapporte au texte qui le suit. Le style proposé corrige ce défaut. Pour retrouver le style par
112
- * défaut des navigateurs, utilisez un margin: 1em 0;.
113
- *
114
- * 6. Dans les styles par défaut des navigateurs, les titres sont en gras. Si vous souhaitez une
115
- * graisse normale pour la plupart de vos titres, utilisez plutôt font-weight: normal.
116
- *
117
- * 7. On utilise des em afin que les marges des paragraphes soient proportionnelles à la taille du
118
- * texte, ce que ne font pas tous les navigateurs (notamment IE). On utilise une valeur de .75em,
119
- * soit des retraits entre les paragraphes un peu plus faibles que ceux utilisés par défaut par
120
- * les navigateurs. À modifier selon vos besoins.
121
- *
122
- * 8. Ces styles correspondent aux valeurs par défaut des navigateurs, mais vous voudrez peut-être
123
- * les modifier pour votre projet.
124
- *
125
- * 9. Les éléments de formulaires sont assez difficiles à mettre en forme et à positionner. De plus,
126
- * l'alignement vertical des boutons, cases à cocher et autres listes déroulantes est parfois
127
- * difficile à gérer. Vu les différences de comportement entre navigateurs, il n'y a pas de
128
- * solution parfaite, mais utiliser un alignement vertical centré dans la hauteur de ligne permet
129
- * d'avoir un rendu décent avec tous les navigateurs.
130
- */
@@ -1,3 +0,0 @@
1
- @import "reset.css";
2
- @import "base.css";
3
- @import "fonts.css";
@@ -1,80 +0,0 @@
1
- /*
2
- Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3
- Code licensed under the BSD License:
4
- http://developer.yahoo.com/yui/license.html
5
- version: 3.3.0
6
- build: 3167
7
- */
8
- /* base.css, part of YUI's CSS Foundation */
9
- h1 {
10
- /*18px via YUI Fonts CSS foundation*/
11
- font-size:138.5%;
12
- }
13
- h2 {
14
- /*16px via YUI Fonts CSS foundation*/
15
- font-size:123.1%;
16
- }
17
- h3 {
18
- /*14px via YUI Fonts CSS foundation*/
19
- font-size:108%;
20
- }
21
- h1,h2,h3 {
22
- /* top & bottom margin based on font size */
23
- margin:1em 0;
24
- }
25
- h1,h2,h3,h4,h5,h6,strong {
26
- /*bringing boldness back to headers and the strong element*/
27
- font-weight:bold;
28
- }
29
- abbr,acronym {
30
- /*indicating to users that more info is available */
31
- border-bottom:1px dotted #000;
32
- cursor:help;
33
- }
34
- em {
35
- /*bringing italics back to the em element*/
36
- font-style:italic;
37
- }
38
- blockquote,ul,ol,dl {
39
- /*giving blockquotes and lists room to breath*/
40
- margin:1em;
41
- }
42
- ol,ul,dl {
43
- /*bringing lists on to the page with breathing room */
44
- margin-left:2em;
45
- }
46
- ol li {
47
- /*giving OL's LIs generated numbers*/
48
- list-style: decimal outside;
49
- }
50
- ul li {
51
- /*giving UL's LIs generated disc markers*/
52
- list-style: disc outside;
53
- }
54
- dl dd {
55
- /*providing spacing for definition terms*/
56
- margin-left:1em;
57
- }
58
- th,td {
59
- /*borders and padding to make the table readable*/
60
- border:1px solid #000;
61
- padding:.5em;
62
- }
63
- th {
64
- /*distinguishing table headers from data cells*/
65
- font-weight:bold;
66
- text-align:center;
67
- }
68
- caption {
69
- /*coordinated margin to match cell's padding*/
70
- margin-bottom:.5em;
71
- /*centered so it doesn't blend in to other content*/
72
- text-align:center;
73
- }
74
- p,fieldset,table,pre {
75
- /*so things don't run into each other*/
76
- margin-bottom:1em;
77
- }
78
- /* setting a consistent width, 160px;
79
- control of type=file still not possible */
80
- input[type=text],input[type=password],textarea{width:12.25em;*width:11.9em;}
@@ -1,47 +0,0 @@
1
- /*
2
- Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3
- Code licensed under the BSD License:
4
- http://developer.yahoo.com/yui/license.html
5
- version: 3.3.0
6
- build: 3167
7
- */
8
- /**
9
- * Percents could work for IE, but for backCompat purposes, we are using keywords.
10
- * x-small is for IE6/7 quirks mode.
11
- */
12
- body {
13
- font:13px/1.231 arial,helvetica,clean,sans-serif;
14
- *font-size:small; /* for IE */
15
- *font:x-small; /* for IE in quirks mode */
16
- }
17
-
18
- /**
19
- * Nudge down to get to 13px equivalent for these form elements
20
- */
21
- select,
22
- input,
23
- button,
24
- textarea {
25
- font:99% arial,helvetica,clean,sans-serif;
26
- }
27
-
28
- /**
29
- * To help tables remember to inherit
30
- */
31
- table {
32
- font-size:inherit;
33
- font:100%;
34
- }
35
-
36
- /**
37
- * Bump up IE to get to 13px equivalent for these fixed-width elements
38
- */
39
- pre,
40
- code,
41
- kbd,
42
- samp,
43
- tt {
44
- font-family:monospace;
45
- *font-size:108%;
46
- line-height:100%;
47
- }
@@ -1,126 +0,0 @@
1
- /*
2
- Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3
- Code licensed under the BSD License:
4
- http://developer.yahoo.com/yui/license.html
5
- version: 3.3.0
6
- build: 3167
7
- */
8
- /*
9
- TODO will need to remove settings on HTML since we can't namespace it.
10
- TODO with the prefix, should I group by selector or property for weight savings?
11
- */
12
- html{
13
- color:#000;
14
- background:#FFF;
15
- }
16
- /*
17
- TODO remove settings on BODY since we can't namespace it.
18
- */
19
- /*
20
- TODO test putting a class on HEAD.
21
- - Fails on FF.
22
- */
23
- body,
24
- div,
25
- dl,
26
- dt,
27
- dd,
28
- ul,
29
- ol,
30
- li,
31
- h1,
32
- h2,
33
- h3,
34
- h4,
35
- h5,
36
- h6,
37
- pre,
38
- code,
39
- form,
40
- fieldset,
41
- legend,
42
- input,
43
- textarea,
44
- p,
45
- blockquote,
46
- th,
47
- td {
48
- margin:0;
49
- padding:0;
50
- }
51
- table {
52
- border-collapse:collapse;
53
- border-spacing:0;
54
- }
55
- fieldset,
56
- img {
57
- border:0;
58
- }
59
- /*
60
- TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
61
- */
62
- address,
63
- caption,
64
- cite,
65
- code,
66
- dfn,
67
- em,
68
- strong,
69
- th,
70
- var {
71
- font-style:normal;
72
- font-weight:normal;
73
- }
74
- /*
75
- TODO Figure out where this list-style rule is best set. Hedger has a request to investigate.
76
- */
77
- li {
78
- list-style:none;
79
- }
80
-
81
- caption,
82
- th {
83
- text-align:left;
84
- }
85
- h1,
86
- h2,
87
- h3,
88
- h4,
89
- h5,
90
- h6 {
91
- font-size:100%;
92
- font-weight:normal;
93
- }
94
- q:before,
95
- q:after {
96
- content:'';
97
- }
98
- abbr,
99
- acronym {
100
- border:0;
101
- font-variant:normal;
102
- }
103
- /* to preserve line-height and selector appearance */
104
- sup {
105
- vertical-align:text-top;
106
- }
107
- sub {
108
- vertical-align:text-bottom;
109
- }
110
- input,
111
- textarea,
112
- select {
113
- font-family:inherit;
114
- font-size:inherit;
115
- font-weight:inherit;
116
- }
117
- /*to enable resizing for IE*/
118
- input,
119
- textarea,
120
- select {
121
- *font-size:100%;
122
- }
123
- /*because legend doesn't inherit in IE */
124
- legend {
125
- color:#000;
126
- }