ruhoh 0.0.2 → 0.0.3

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 (87) hide show
  1. data/Gemfile +13 -0
  2. data/README.md +5 -53
  3. data/Rakefile +56 -0
  4. data/bin/ruhoh +23 -14
  5. data/lib/ruhoh/client/client.rb +310 -0
  6. data/lib/ruhoh/client/help.yml +56 -0
  7. data/lib/ruhoh/compiler.rb +16 -19
  8. data/lib/ruhoh/converters/converter.rb +30 -3
  9. data/lib/ruhoh/db.rb +7 -17
  10. data/lib/ruhoh/deployers/s3.rb +71 -0
  11. data/lib/ruhoh/friend.rb +71 -0
  12. data/lib/ruhoh/page.rb +41 -11
  13. data/lib/ruhoh/parsers/drafts.rb +54 -0
  14. data/lib/ruhoh/parsers/layouts.rb +14 -9
  15. data/lib/ruhoh/parsers/pages.rb +47 -35
  16. data/lib/ruhoh/parsers/partials.rb +14 -2
  17. data/lib/ruhoh/parsers/posts.rb +139 -88
  18. data/lib/ruhoh/parsers/routes.rb +4 -8
  19. data/lib/ruhoh/parsers/site.rb +2 -8
  20. data/lib/ruhoh/previewer.rb +48 -0
  21. data/lib/ruhoh/templaters/base.rb +53 -0
  22. data/lib/ruhoh/templaters/helpers.rb +159 -0
  23. data/lib/ruhoh/templaters/rmustache.rb +29 -0
  24. data/lib/ruhoh/utils.rb +25 -7
  25. data/lib/ruhoh/version.rb +1 -1
  26. data/lib/ruhoh/watch.rb +22 -9
  27. data/lib/ruhoh.rb +74 -29
  28. data/ruhoh.gemspec +70 -9
  29. data/scaffolds/blog/_config.yml +33 -0
  30. data/scaffolds/blog/_drafts/.gitkeep +0 -0
  31. data/scaffolds/blog/_posts/.gitkeep +0 -0
  32. data/scaffolds/blog/_site.yml +16 -0
  33. data/scaffolds/blog/_templates/partials/categories_list +3 -0
  34. data/scaffolds/blog/_templates/partials/pages_list +7 -0
  35. data/scaffolds/blog/_templates/partials/posts_collate +9 -0
  36. data/scaffolds/blog/_templates/partials/posts_list +1 -0
  37. data/scaffolds/blog/_templates/partials/tags_list +3 -0
  38. data/scaffolds/blog/_templates/syntax/google_prettify/default.css +52 -0
  39. data/scaffolds/blog/_templates/syntax/google_prettify/desert.css +34 -0
  40. data/scaffolds/blog/_templates/syntax/google_prettify/sons-of-obsidian.css +117 -0
  41. data/scaffolds/blog/_templates/syntax/google_prettify/sunburst.css +51 -0
  42. data/scaffolds/blog/_templates/syntax/google_prettify/twitter-bootstrap.css +30 -0
  43. data/scaffolds/blog/_templates/themes/twitter/bootstrap/css/bootstrap.min.css +689 -0
  44. data/scaffolds/blog/_templates/themes/twitter/bootstrap/img/glyphicons-halflings-white.png +0 -0
  45. data/scaffolds/blog/_templates/themes/twitter/bootstrap/img/glyphicons-halflings.png +0 -0
  46. data/scaffolds/blog/_templates/themes/twitter/css/style.css +68 -0
  47. data/scaffolds/blog/_templates/themes/twitter/layouts/default.html +64 -0
  48. data/scaffolds/blog/_templates/themes/twitter/layouts/page.html +13 -0
  49. data/scaffolds/blog/_templates/themes/twitter/layouts/post.html +55 -0
  50. data/scaffolds/blog/_templates/themes/twitter/manifest.yml +11 -0
  51. data/scaffolds/blog/about.md +5 -0
  52. data/scaffolds/blog/archive.html +11 -0
  53. data/scaffolds/blog/categories.html +21 -0
  54. data/scaffolds/blog/config.ru +9 -0
  55. data/scaffolds/blog/index.html +13 -0
  56. data/scaffolds/blog/pages.html +14 -0
  57. data/scaffolds/blog/tags.html +21 -0
  58. data/scaffolds/layout.html +3 -0
  59. data/scaffolds/page.html +6 -0
  60. data/scaffolds/post.html +8 -0
  61. data/scaffolds/theme/css/style.css +0 -0
  62. data/scaffolds/theme/images/.gitkeep +0 -0
  63. data/scaffolds/theme/layouts/default.html +17 -0
  64. data/scaffolds/theme/layouts/page.html +7 -0
  65. data/scaffolds/theme/layouts/post.html +8 -0
  66. data/scaffolds/theme/partials/.gitkeep +0 -0
  67. data/spec/db_spec.rb +88 -0
  68. data/spec/page_spec.rb +200 -0
  69. data/spec/parsers/layouts_spec.rb +32 -0
  70. data/spec/parsers/pages_spec.rb +97 -0
  71. data/spec/parsers/posts_spec.rb +301 -0
  72. data/spec/parsers/routes_spec.rb +45 -0
  73. data/spec/parsers/site_spec.rb +32 -0
  74. data/spec/setup_spec.rb +72 -0
  75. data/spec/spec_helper.rb +23 -0
  76. data/system_partials/analytics/getclicky +12 -0
  77. data/system_partials/analytics/google +11 -0
  78. data/system_partials/comments/disqus +13 -0
  79. data/system_partials/comments/facebook +9 -0
  80. data/system_partials/comments/intensedebate +6 -0
  81. data/system_partials/comments/livefyre +6 -0
  82. data/system_partials/syntax/google_prettify +11 -0
  83. metadata +84 -23
  84. data/lib/ruhoh/client.rb +0 -28
  85. data/lib/ruhoh/preview.rb +0 -36
  86. data/lib/ruhoh/templaters/helper_mustache.rb +0 -109
  87. data/lib/ruhoh/templaters/templater.rb +0 -39
data/lib/ruhoh/utils.rb CHANGED
@@ -2,27 +2,45 @@ class Ruhoh
2
2
 
3
3
  module Utils
4
4
 
5
- FMregex = /^---\n(.|\n)*---\n/
5
+ FMregex = /^(---\s*\n.*?\n?)^(---\s*$\n?)/m
6
6
  ContentRegex = /\{\{\s*content\s*\}\}/i
7
7
 
8
- # Relative file_path from site_source
9
- def self.parse_file(*args)
10
- path = File.__send__ :join, args
8
+ def self.parse_file_as_yaml(*args)
9
+ filepath = File.__send__ :join, args
10
+ return nil unless File.exist? filepath
11
11
 
12
+ file = File.open(filepath)
13
+ yaml = YAML.load(file) || {}
14
+ file.close
15
+
16
+ yaml
17
+ end
18
+
19
+ def self.parse_file(*args)
20
+ path = File.__send__(:join, args)
21
+ path = File.join(Ruhoh.paths.site_source, path) unless path[0] == '/'
22
+
12
23
  raise "File not found: #{path}" unless File.exist?(path)
13
24
 
14
25
  page = File.open(path).read
15
26
  front_matter = page.match(FMregex)
16
- raise "Invalid Frontmatter" unless front_matter
27
+
28
+ return {} unless front_matter
17
29
 
18
30
  data = YAML.load(front_matter[0].gsub(/---\n/, "")) || {}
19
31
 
20
32
  {
21
- "data" => data,
33
+ "data" => self.format_meta(data),
22
34
  "content" => page.gsub(FMregex, '')
23
35
  }
24
36
  end
25
-
37
+
38
+ def self.format_meta(data)
39
+ data['categories'] = Array(data['categories'])
40
+ data['tags'] = Array(data['tags'])
41
+ data
42
+ end
43
+
26
44
  end
27
45
 
28
46
  end #Ruhoh
data/lib/ruhoh/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Ruhoh
2
- Version = VERSION = '0.0.2'
2
+ Version = VERSION = '0.0.3'
3
3
  end
data/lib/ruhoh/watch.rb CHANGED
@@ -10,7 +10,9 @@ class Ruhoh
10
10
  # Returns: Nothing
11
11
  def self.start
12
12
  raise "Ruhoh.config cannot be nil.\n To set config call: Ruhoh.setup" unless Ruhoh.config
13
- puts "=> Start watching: #{Ruhoh.paths.site_source}"
13
+ Ruhoh::Friend.say {
14
+ plain "=> Start watching: #{Ruhoh.paths.site_source}"
15
+ }
14
16
  glob = ''
15
17
 
16
18
  # Watch all files + all sub directories except for special folders e.g '_database'
@@ -30,23 +32,34 @@ class Ruhoh
30
32
  dw.add_observer {|*args|
31
33
  args.each {|event|
32
34
  path = event['path'].gsub(Ruhoh.paths.site_source, '')
33
- puts path
34
- if path =~ Regexp.new("^\/?#{Ruhoh.folders.posts}")
35
- puts "Watch: update posts"
35
+
36
+ if path == "/#{Ruhoh.files.site}"
37
+ type = "Site"
38
+ Ruhoh::DB.update(:site)
39
+ elsif path == "/#{Ruhoh.files.config}"
40
+ type = "Config"
41
+ Ruhoh::DB.update(:site)
42
+ elsif path =~ Regexp.new("^\/?#{Ruhoh.folders.posts}")
43
+ type = "Posts"
36
44
  Ruhoh::DB.update(:posts)
37
45
  Ruhoh::DB.update(:routes)
46
+ elsif path =~ Regexp.new("^\/?#{Ruhoh.folders.drafts}")
47
+ type = "Drafts"
48
+ Ruhoh::DB.update(:drafts)
49
+ Ruhoh::DB.update(:routes)
38
50
  elsif path =~ Regexp.new("^\/?#{Ruhoh.folders.templates}")
39
- puts "Watch: update themes"
51
+ type = "Themes"
40
52
  Ruhoh::DB.update(:layouts)
41
53
  Ruhoh::DB.update(:partials)
42
54
  else
43
- puts "Watch: update pages"
55
+ type = "Pages"
44
56
  Ruhoh::DB.update(:pages)
45
57
  Ruhoh::DB.update(:routes)
46
58
  end
47
-
48
- t = Time.now.strftime("%H:%M:%S")
49
- puts "[#{t}] regeneration: #{args.size} files changed"
59
+
60
+ Ruhoh::Friend.say {
61
+ yellow "Watch [#{Time.now.strftime("%H:%M:%S")}] [Update #{type}] : #{args.size} files changed"
62
+ }
50
63
  }
51
64
  }
52
65
 
data/lib/ruhoh.rb CHANGED
@@ -7,6 +7,8 @@ require 'fileutils'
7
7
  require 'mustache'
8
8
 
9
9
  require 'ruhoh/utils'
10
+ require 'ruhoh/friend'
11
+ require 'ruhoh/parsers/drafts'
10
12
  require 'ruhoh/parsers/posts'
11
13
  require 'ruhoh/parsers/pages'
12
14
  require 'ruhoh/parsers/routes'
@@ -14,63 +16,102 @@ require 'ruhoh/parsers/layouts'
14
16
  require 'ruhoh/parsers/partials'
15
17
  require 'ruhoh/parsers/site'
16
18
  require 'ruhoh/db'
17
- require 'ruhoh/templaters/helper_mustache'
18
- require 'ruhoh/templaters/templater'
19
+ require 'ruhoh/templaters/helpers'
20
+ require 'ruhoh/templaters/rmustache'
21
+ require 'ruhoh/templaters/base'
19
22
  require 'ruhoh/converters/converter'
20
23
  require 'ruhoh/page'
21
- require 'ruhoh/preview'
24
+ require 'ruhoh/previewer'
22
25
  require 'ruhoh/watch'
23
26
 
24
27
  class Ruhoh
25
28
 
26
29
  class << self; attr_reader :folders, :files, :config, :paths, :filters end
27
30
 
28
- Folders = Struct.new(:database, :posts, :templates, :themes, :layouts, :partials, :media)
31
+ Root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
32
+ DefaultExclude = ['Gemfile', 'Gemfile.lock', 'config.ru', 'README.md']
33
+ Folders = Struct.new(:database, :posts, :drafts, :templates, :themes, :layouts, :partials, :media, :syntax, :compiled)
29
34
  Files = Struct.new(:site, :config)
30
35
  Filters = Struct.new(:posts, :pages, :static)
31
- Config = Struct.new(:permalink, :theme, :asset_path)
36
+ Config = Struct.new(:permalink, :theme, :theme_path, :media_path, :syntax_path, :exclude)
32
37
  Paths = Struct.new(
33
38
  :site_source,
34
39
  :database,
35
40
  :posts,
41
+ :drafts,
36
42
  :theme,
37
43
  :layouts,
38
44
  :partials,
39
45
  :global_partials,
40
- :media
46
+ :media,
47
+ :syntax,
48
+ :compiled
41
49
  )
42
50
 
51
+
43
52
  # Public: Setup Ruhoh utilities relative to the current directory
44
53
  # of the application and its corresponding ruhoh.json file.
45
54
  #
46
- def self.setup
47
- @folders = Folders.new('_database', '_posts', '_templates', 'themes', 'layouts', 'partials', "_media")
48
- @files = Files.new('_site.yml', '_config.yml')
49
- @filters = Filters.new
50
- @config = Config.new
51
- @paths = Paths.new
52
-
53
- config = { 'site_source' => Dir.getwd }
54
- site_config = YAML.load_file( File.join(config['site_source'], '_config.yml') )
55
+ def self.setup(site_source = nil)
56
+ self.reset
55
57
 
56
- @config.permalink = site_config['permalink'] || :date
57
- @config.theme = site_config['theme']
58
- @config.asset_path = File.join('/', @folders.templates, @folders.themes, @config.theme)
58
+ @site_source = site_source if site_source
59
+ self.setup_config
60
+ self.setup_paths
61
+ self.setup_filters
62
+ end
63
+
64
+ def self.reset
65
+ @folders = Folders.new('_database', '_posts', '_drafts', '_templates', 'themes', 'layouts', 'partials', "_media", "syntax", '_compiled')
66
+ @files = Files.new('_site.yml', '_config.yml')
67
+ @filters = Filters.new
68
+ @config = Config.new
69
+ @paths = Paths.new
70
+ @site_source = Dir.getwd
71
+ end
72
+
73
+ def self.setup_config
74
+ site_config = Ruhoh::Utils.parse_file_as_yaml(@site_source, @files.config)
75
+ unless site_config
76
+ Ruhoh::Friend.say {
77
+ red "Empty site_config"
78
+ red "Please ensure ./#{Ruhoh.files.config} exists and contains valid YAML"
79
+ }
80
+ exit
81
+ end
59
82
 
60
- @paths.site_source = config['site_source']
61
- @paths.database = self.absolute_path(@folders.database)
62
- @paths.posts = self.absolute_path(@folders.posts)
83
+ theme = site_config['theme'] ? site_config['theme'].to_s.gsub(/\s/, '') : ''
84
+ raise "Theme not specified in _config.yml" if theme.empty?
63
85
 
64
- @paths.theme = self.absolute_path(@folders.templates, @folders.themes, @config.theme)
65
- @paths.layouts = self.absolute_path(@folders.templates, @folders.themes, @config.theme, @folders.layouts)
66
- @paths.partials = self.absolute_path(@folders.templates, @folders.themes, @config.theme, @folders.partials)
67
- @paths.global_partials = self.absolute_path(@folders.templates, @folders.partials)
68
- @paths.media = self.absolute_path(@folders.media)
69
-
86
+ @config.theme = theme
87
+ @config.theme_path = File.join('/', @folders.templates, @folders.themes, @config.theme)
88
+ @config.media_path = File.join('/', @folders.media)
89
+ @config.syntax_path = File.join('/', @folders.templates, @folders.syntax)
90
+ @config.permalink = site_config['permalink']
91
+ @config.exclude = Array(site_config['exclude'] || nil)
92
+ end
93
+
94
+ def self.setup_paths
95
+ @paths.site_source = @site_source
96
+ @paths.database = self.absolute_path(@folders.database)
97
+ @paths.posts = self.absolute_path(@folders.posts)
98
+ @paths.drafts = self.absolute_path(@folders.drafts)
70
99
 
71
- # filename filters:
100
+ @paths.theme = self.absolute_path(@folders.templates, @folders.themes, @config.theme)
101
+ @paths.layouts = self.absolute_path(@folders.templates, @folders.themes, @config.theme, @folders.layouts)
102
+ @paths.partials = self.absolute_path(@folders.templates, @folders.themes, @config.theme, @folders.partials)
103
+ @paths.global_partials = self.absolute_path(@folders.templates, @folders.partials)
104
+ @paths.media = self.absolute_path(@folders.media)
105
+ @paths.syntax = self.absolute_path(@folders.templates, @folders.syntax)
106
+ @paths.compiled = self.absolute_path(@folders.compiled)
107
+ end
108
+
109
+ # filename filters
110
+ def self.setup_filters
111
+ exclude = @config.exclude + DefaultExclude
112
+ exclude.uniq!
113
+
72
114
  @filters.pages = { 'names' => [], 'regexes' => [] }
73
- exclude = ['Gemfile', 'Gemfile.lock', 'config.ru', 'README.md']
74
115
  exclude.each {|node|
75
116
  @filters.pages['names'] << node if node.is_a?(String)
76
117
  @filters.pages['regexes'] << node if node.is_a?(Regexp)
@@ -80,5 +121,9 @@ class Ruhoh
80
121
  def self.absolute_path(*args)
81
122
  File.__send__ :join, args.unshift(self.paths.site_source)
82
123
  end
124
+
125
+ def self.relative_path(filename)
126
+ filename.gsub( Regexp.new("^#{self.paths.site_source}/"), '' )
127
+ end
83
128
 
84
129
  end # Ruhoh
data/ruhoh.gemspec CHANGED
@@ -7,41 +7,102 @@ Gem::Specification.new do |s|
7
7
  s.date = Time.now.strftime('%Y-%m-%d')
8
8
  s.license = "http://unlicense.org/"
9
9
  s.summary = 'Ruby based library to process your Ruhoh static blog.'
10
- s.homepage = "http://github.com/plusjade/ruhoh.rb"
10
+ s.homepage = "http://github.com/ruhoh/ruhoh.rb"
11
11
  s.email = "plusjade@gmail.com"
12
12
  s.authors = ['Jade Dominguez']
13
13
  s.description = 'Ruhoh is a Universal API for your static blog.'
14
14
  s.executables = ["ruhoh"]
15
15
 
16
16
  # dependencies defined in Gemfile
17
- s.add_dependency 'rack'
18
- s.add_dependency 'mustache'
19
- s.add_dependency 'directory_watcher'
20
- s.add_dependency 'maruku'
17
+ s.add_dependency 'rack', "~> 1.4"
18
+ s.add_dependency 'mustache', "~> 0.99"
19
+ s.add_dependency 'directory_watcher', "~> 1.4"
20
+ s.add_dependency 'maruku', "~> 0.6"
21
21
 
22
22
  # = MANIFEST =
23
23
  s.files = %w[
24
+ Gemfile
24
25
  README.md
26
+ Rakefile
25
27
  bin/ruhoh
26
28
  lib/ruhoh.rb
27
- lib/ruhoh/client.rb
29
+ lib/ruhoh/client/client.rb
30
+ lib/ruhoh/client/help.yml
28
31
  lib/ruhoh/compiler.rb
29
32
  lib/ruhoh/converters/converter.rb
30
33
  lib/ruhoh/db.rb
34
+ lib/ruhoh/deployers/s3.rb
35
+ lib/ruhoh/friend.rb
31
36
  lib/ruhoh/page.rb
37
+ lib/ruhoh/parsers/drafts.rb
32
38
  lib/ruhoh/parsers/layouts.rb
33
39
  lib/ruhoh/parsers/pages.rb
34
40
  lib/ruhoh/parsers/partials.rb
35
41
  lib/ruhoh/parsers/posts.rb
36
42
  lib/ruhoh/parsers/routes.rb
37
43
  lib/ruhoh/parsers/site.rb
38
- lib/ruhoh/preview.rb
39
- lib/ruhoh/templaters/helper_mustache.rb
40
- lib/ruhoh/templaters/templater.rb
44
+ lib/ruhoh/previewer.rb
45
+ lib/ruhoh/templaters/base.rb
46
+ lib/ruhoh/templaters/helpers.rb
47
+ lib/ruhoh/templaters/rmustache.rb
41
48
  lib/ruhoh/utils.rb
42
49
  lib/ruhoh/version.rb
43
50
  lib/ruhoh/watch.rb
44
51
  ruhoh.gemspec
52
+ scaffolds/blog/_config.yml
53
+ scaffolds/blog/_drafts/.gitkeep
54
+ scaffolds/blog/_posts/.gitkeep
55
+ scaffolds/blog/_site.yml
56
+ scaffolds/blog/_templates/partials/categories_list
57
+ scaffolds/blog/_templates/partials/pages_list
58
+ scaffolds/blog/_templates/partials/posts_collate
59
+ scaffolds/blog/_templates/partials/posts_list
60
+ scaffolds/blog/_templates/partials/tags_list
61
+ scaffolds/blog/_templates/syntax/google_prettify/default.css
62
+ scaffolds/blog/_templates/syntax/google_prettify/desert.css
63
+ scaffolds/blog/_templates/syntax/google_prettify/sons-of-obsidian.css
64
+ scaffolds/blog/_templates/syntax/google_prettify/sunburst.css
65
+ scaffolds/blog/_templates/syntax/google_prettify/twitter-bootstrap.css
66
+ scaffolds/blog/_templates/themes/twitter/bootstrap/css/bootstrap.min.css
67
+ scaffolds/blog/_templates/themes/twitter/bootstrap/img/glyphicons-halflings-white.png
68
+ scaffolds/blog/_templates/themes/twitter/bootstrap/img/glyphicons-halflings.png
69
+ scaffolds/blog/_templates/themes/twitter/css/style.css
70
+ scaffolds/blog/_templates/themes/twitter/layouts/default.html
71
+ scaffolds/blog/_templates/themes/twitter/layouts/page.html
72
+ scaffolds/blog/_templates/themes/twitter/layouts/post.html
73
+ scaffolds/blog/_templates/themes/twitter/manifest.yml
74
+ scaffolds/blog/about.md
75
+ scaffolds/blog/archive.html
76
+ scaffolds/blog/categories.html
77
+ scaffolds/blog/config.ru
78
+ scaffolds/blog/index.html
79
+ scaffolds/blog/pages.html
80
+ scaffolds/blog/tags.html
81
+ scaffolds/layout.html
82
+ scaffolds/page.html
83
+ scaffolds/post.html
84
+ scaffolds/theme/css/style.css
85
+ scaffolds/theme/images/.gitkeep
86
+ scaffolds/theme/layouts/default.html
87
+ scaffolds/theme/layouts/page.html
88
+ scaffolds/theme/layouts/post.html
89
+ scaffolds/theme/partials/.gitkeep
90
+ spec/db_spec.rb
91
+ spec/page_spec.rb
92
+ spec/parsers/layouts_spec.rb
93
+ spec/parsers/pages_spec.rb
94
+ spec/parsers/posts_spec.rb
95
+ spec/parsers/routes_spec.rb
96
+ spec/parsers/site_spec.rb
97
+ spec/setup_spec.rb
98
+ spec/spec_helper.rb
99
+ system_partials/analytics/getclicky
100
+ system_partials/analytics/google
101
+ system_partials/comments/disqus
102
+ system_partials/comments/facebook
103
+ system_partials/comments/intensedebate
104
+ system_partials/comments/livefyre
105
+ system_partials/syntax/google_prettify
45
106
  ]
46
107
  # = MANIFEST =
47
108
  end
@@ -0,0 +1,33 @@
1
+ ---
2
+ version : 0.0.3
3
+ permalink: /:categories/:title
4
+ theme : twitter
5
+
6
+ production_url : http://sample.com
7
+
8
+ comments :
9
+ provider : disqus
10
+ disqus :
11
+ short_name : jekyllbootstrap
12
+ livefyre :
13
+ site_id : 123
14
+ intensedebate :
15
+ account : 123abc
16
+ facebook :
17
+ appid : 123
18
+ num_posts: 5
19
+ width: 580
20
+ colorscheme: light
21
+
22
+ analytics :
23
+ provider : google
24
+ google :
25
+ tracking_id : 'UA-123-12'
26
+ getclicky :
27
+ site_id :
28
+
29
+ syntax :
30
+ provider : google_prettify
31
+ google_prettify :
32
+ theme: twitter-bootstrap
33
+ linenums : true
File without changes
File without changes
@@ -0,0 +1,16 @@
1
+ title : Blog Title
2
+ tagline: Blog Tagline
3
+ author :
4
+ name : Firstname Lastname
5
+ email : blah@email.test
6
+ github : username
7
+ twitter : username
8
+ feedburner : feedname
9
+
10
+ navigation :
11
+ - archive.html
12
+ - tags.html
13
+ - categories.html
14
+ - pages.html
15
+ - about.md
16
+
@@ -0,0 +1,3 @@
1
+ <li>
2
+ <a href="{{ url }}">{{ name }} <span>{{ count }}</span></a>
3
+ </li>
@@ -0,0 +1,7 @@
1
+ {{#is_active_page }}
2
+ <li class="active"><a href="{{url}}" class="active">{{title}}</a></li>
3
+ {{/is_active_page}}
4
+
5
+ {{^is_active_page}}
6
+ <li><a href="{{url}}">{{title}}</a></li>
7
+ {{/is_active_page }}
@@ -0,0 +1,9 @@
1
+ <h2>{{year}}</h2>
2
+ {{#months}}
3
+ <h3>{{month}}</h3>
4
+ <ul>
5
+ {{#posts?to_posts}}
6
+ <li><span>{{date}}</span> &raquo; <a href="{{url}}">{{title}}</a></li>
7
+ {{/posts?to_posts}}
8
+ </ul>
9
+ {{/months}}
@@ -0,0 +1 @@
1
+ <li><a href="{{url}}">{{title}}</a></li>
@@ -0,0 +1,3 @@
1
+ <li>
2
+ <a href="{{ url }}">{{ name }} <span>{{ count }}</span></a>
3
+ </li>
@@ -0,0 +1,52 @@
1
+ /* Pretty printing styles. Used with prettify.js. */
2
+
3
+ /* SPAN elements with the classes below are added by prettyprint. */
4
+ .pln { color: #000 } /* plain text */
5
+
6
+ @media screen {
7
+ .str { color: #080 } /* string content */
8
+ .kwd { color: #008 } /* a keyword */
9
+ .com { color: #800 } /* a comment */
10
+ .typ { color: #606 } /* a type name */
11
+ .lit { color: #066 } /* a literal value */
12
+ /* punctuation, lisp open bracket, lisp close bracket */
13
+ .pun, .opn, .clo { color: #660 }
14
+ .tag { color: #008 } /* a markup tag name */
15
+ .atn { color: #606 } /* a markup attribute name */
16
+ .atv { color: #080 } /* a markup attribute value */
17
+ .dec, .var { color: #606 } /* a declaration; a variable name */
18
+ .fun { color: red } /* a function name */
19
+ }
20
+
21
+ /* Use higher contrast and text-weight for printable form. */
22
+ @media print, projection {
23
+ .str { color: #060 }
24
+ .kwd { color: #006; font-weight: bold }
25
+ .com { color: #600; font-style: italic }
26
+ .typ { color: #404; font-weight: bold }
27
+ .lit { color: #044 }
28
+ .pun, .opn, .clo { color: #440 }
29
+ .tag { color: #006; font-weight: bold }
30
+ .atn { color: #404 }
31
+ .atv { color: #060 }
32
+ }
33
+
34
+ /* Put a border around prettyprinted code snippets. */
35
+ pre.prettyprint { padding: 2px; border: 1px solid #888 }
36
+
37
+ /* Specify class=linenums on a pre to get line numbering */
38
+ ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */
39
+ li.L0,
40
+ li.L1,
41
+ li.L2,
42
+ li.L3,
43
+ li.L5,
44
+ li.L6,
45
+ li.L7,
46
+ li.L8 { list-style-type: none }
47
+ /* Alternate shading for lines */
48
+ li.L1,
49
+ li.L3,
50
+ li.L5,
51
+ li.L7,
52
+ li.L9 { background: #eee }
@@ -0,0 +1,34 @@
1
+ /* desert scheme ported from vim to google prettify */
2
+ pre { display: block; background-color: #333 }
3
+ pre .nocode { background-color: none; color: #000 }
4
+ pre .str { color: #ffa0a0 } /* string - pink */
5
+ pre .kwd { color: #f0e68c; font-weight: bold }
6
+ pre .com { color: #87ceeb } /* comment - skyblue */
7
+ pre .typ { color: #98fb98 } /* type - lightgreen */
8
+ pre .lit { color: #cd5c5c } /* literal - darkred */
9
+ pre .pun { color: #fff } /* punctuation */
10
+ pre .pln { color: #fff } /* plaintext */
11
+ pre .tag { color: #f0e68c; font-weight: bold } /* html/xml tag - lightyellow */
12
+ pre .atn { color: #bdb76b; font-weight: bold } /* attribute name - khaki */
13
+ pre .atv { color: #ffa0a0 } /* attribute value - pink */
14
+ pre .dec { color: #98fb98 } /* decimal - lightgreen */
15
+
16
+ /* Specify class=linenums on a pre to get line numbering */
17
+ ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE } /* IE indents via margin-left */
18
+ li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }
19
+ /* Alternate shading for lines */
20
+ li.L1,li.L3,li.L5,li.L7,li.L9 { }
21
+
22
+ @media print {
23
+ pre { background-color: none }
24
+ pre .str, code .str { color: #060 }
25
+ pre .kwd, code .kwd { color: #006; font-weight: bold }
26
+ pre .com, code .com { color: #600; font-style: italic }
27
+ pre .typ, code .typ { color: #404; font-weight: bold }
28
+ pre .lit, code .lit { color: #044 }
29
+ pre .pun, code .pun { color: #440 }
30
+ pre .pln, code .pln { color: #000 }
31
+ pre .tag, code .tag { color: #006; font-weight: bold }
32
+ pre .atn, code .atn { color: #404 }
33
+ pre .atv, code .atv { color: #060 }
34
+ }
@@ -0,0 +1,117 @@
1
+ /*
2
+ * Derived from einaros's Sons of Obsidian theme at
3
+ * http://studiostyl.es/schemes/son-of-obsidian by
4
+ * Alex Ford of CodeTunnel:
5
+ * http://CodeTunnel.com/blog/post/71/google-code-prettify-obsidian-theme
6
+ */
7
+
8
+ .str
9
+ {
10
+ color: #EC7600;
11
+ }
12
+ .kwd
13
+ {
14
+ color: #93C763;
15
+ }
16
+ .com
17
+ {
18
+ color: #66747B;
19
+ }
20
+ .typ
21
+ {
22
+ color: #678CB1;
23
+ }
24
+ .lit
25
+ {
26
+ color: #FACD22;
27
+ }
28
+ .pun
29
+ {
30
+ color: #F1F2F3;
31
+ }
32
+ .pln
33
+ {
34
+ color: #F1F2F3;
35
+ }
36
+ .tag
37
+ {
38
+ color: #8AC763;
39
+ }
40
+ .atn
41
+ {
42
+ color: #E0E2E4;
43
+ }
44
+ .atv
45
+ {
46
+ color: #EC7600;
47
+ }
48
+ .dec
49
+ {
50
+ color: purple;
51
+ }
52
+ pre.prettyprint
53
+ {
54
+ border: 0px solid #888;
55
+ }
56
+ ol.linenums
57
+ {
58
+ margin-top: 0;
59
+ margin-bottom: 0;
60
+ }
61
+ .prettyprint {
62
+ background: #000;
63
+ }
64
+ li.L0, li.L1, li.L2, li.L3, li.L4, li.L5, li.L6, li.L7, li.L8, li.L9
65
+ {
66
+ color: #555;
67
+ }
68
+ li.L1, li.L3, li.L5, li.L7, li.L9 {
69
+ background: #111;
70
+ }
71
+ @media print
72
+ {
73
+ .str
74
+ {
75
+ color: #060;
76
+ }
77
+ .kwd
78
+ {
79
+ color: #006;
80
+ font-weight: bold;
81
+ }
82
+ .com
83
+ {
84
+ color: #600;
85
+ font-style: italic;
86
+ }
87
+ .typ
88
+ {
89
+ color: #404;
90
+ font-weight: bold;
91
+ }
92
+ .lit
93
+ {
94
+ color: #044;
95
+ }
96
+ .pun
97
+ {
98
+ color: #440;
99
+ }
100
+ .pln
101
+ {
102
+ color: #000;
103
+ }
104
+ .tag
105
+ {
106
+ color: #006;
107
+ font-weight: bold;
108
+ }
109
+ .atn
110
+ {
111
+ color: #404;
112
+ }
113
+ .atv
114
+ {
115
+ color: #060;
116
+ }
117
+ }