sancho 0.6.2

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.
data/lib/tasks.rake ADDED
@@ -0,0 +1,80 @@
1
+ require 'erb'
2
+ require 'tmpdir'
3
+ require_relative 'sancho'
4
+ include Sancho
5
+
6
+ LAYOUT = '_layouts'.freeze
7
+
8
+ namespace :sancho do
9
+ desc "init"
10
+ task :init do
11
+ if Dir.exist?(LAYOUT)
12
+ puts "Sancho initialized already"
13
+ exit(0)
14
+ end
15
+ cp_r "#{Sancho.assets}/.", LAYOUT, verbose: false
16
+ basics = Dir.glob(File.join(LAYOUT, '*.*'))
17
+ .map{|e| "#{?\s * 4}created #{e}"}.join(?\n)
18
+ Conf.read
19
+ puts <<~EOF
20
+ Punching basics..
21
+ #{basics}
22
+
23
+ Punching config..
24
+ created #{Conf::CONF}
25
+
26
+ Sancho initialized!
27
+
28
+ To create Site Pages:
29
+ $ rake sancho:init
30
+ $ rake sancho:docs
31
+ $ rake sancho:serve
32
+ EOF
33
+ end
34
+
35
+ desc "docs"
36
+ task :docs do
37
+ site = Sancho::DOCS
38
+ docs = Sancho.docs
39
+ mkdir_p %w[images css js].map{ File.join(site, _1)}
40
+ styles = File.join(LAYOUT, 'styles.css')
41
+ cp styles, File.join(site, 'css')
42
+
43
+ # process .erb
44
+ samples = Dir.glob("#{LAYOUT}/*.erb")
45
+ @site = docs
46
+ samples.each {|erb|
47
+ body = ERB.new(File.read(erb), trim_mode: '%<>').result(binding)
48
+ name = File.join(site, File.basename(erb, '.erb'))
49
+ File.write(name, body)
50
+ }
51
+
52
+ index = docs.pages.find{|page| page.source.downcase =~ /^index/ }
53
+ docs << Page.new(docs.pages.first.source, 'index.html') unless index
54
+
55
+ tmpdir = Dir.mktmpdir
56
+ begin
57
+ header = File.join(tmpdir, 'header.html')
58
+ footer = File.join(tmpdir, 'footer.html')
59
+ sh "pandoc -o #{header} #{LAYOUT}/header.md"
60
+ sh "pandoc -o #{footer} #{LAYOUT}/footer.md"
61
+
62
+ docs.each_page{|page|
63
+ options = []
64
+ options << "-s --toc"
65
+ options << "--template #{LAYOUT}/layout.html -c css/styles.css"
66
+ options << "-B #{header} -A #{footer} "
67
+ sh "pandoc #{options.join(?\s)} -o #{site}/#{page.url} #{page.source}"
68
+ }
69
+ ensure
70
+ remove_entry tmpdir
71
+ end
72
+ end
73
+
74
+ desc "serve"
75
+ task serve: [:docs] do
76
+ ru = File.join(Sancho.lib, 'config.ru')
77
+ sh "rackup #{ru}"
78
+ end
79
+
80
+ end
data/sancho.gemspec ADDED
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/sancho"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "sancho"
7
+ spec.version = Sancho::VERSION
8
+ spec.authors = ["Nikolay Voynov"]
9
+ spec.email = ["nvoynov@gmail.com"]
10
+
11
+ spec.summary = "Github Pages Generator"
12
+ # spec.description = "Simple Site Generator from Markdown to Html by Pandoc"
13
+ # spec.homepage = "https://github/nvoynov/sancho"
14
+ spec.required_ruby_version = ">= 2.6.0"
15
+
16
+ # spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
17
+
18
+ # spec.metadata["homepage_uri"] = spec.homepage
19
+ # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
20
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(__dir__) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
27
+ end
28
+ end
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
32
+
33
+ # Uncomment to register a new dependency of your gem
34
+ # spec.add_dependency "example-gem", "~> 1.0"
35
+
36
+ # For more information and examples about making a new gem, check out our
37
+ # guide at: https://bundler.io/guides/creating_gem.html
38
+ end
data/sancho.yml ADDED
@@ -0,0 +1,6 @@
1
+ domain: noynov.github.io/sancho
2
+ title: Sancho Pages Puncher
3
+ pages:
4
+ - README.md
5
+ - CHANGELOG.md
6
+ - STORY.md
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sancho
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.2
5
+ platform: ruby
6
+ authors:
7
+ - Nikolay Voynov
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2024-03-09 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ - nvoynov@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - CHANGELOG.md
21
+ - Gemfile
22
+ - Gemfile.lock
23
+ - README.md
24
+ - Rakefile
25
+ - STORY.md
26
+ - _layouts/footer.md
27
+ - _layouts/header.md
28
+ - _layouts/layout.html
29
+ - _layouts/robots.txt.erb
30
+ - _layouts/sitemap.xml.erb
31
+ - _layouts/styles.css
32
+ - docs/changelog.html
33
+ - docs/css/styles.css
34
+ - docs/index.html
35
+ - docs/readme.html
36
+ - docs/robots.txt
37
+ - docs/sitemap.xml
38
+ - docs/story.html
39
+ - docs/styles.css
40
+ - lib/config.ru
41
+ - lib/sancho.rb
42
+ - lib/sancho/conf.rb
43
+ - lib/sancho/page.rb
44
+ - lib/sancho/site.rb
45
+ - lib/tasks.rake
46
+ - sancho.gemspec
47
+ - sancho.yml
48
+ homepage:
49
+ licenses: []
50
+ metadata: {}
51
+ post_install_message:
52
+ rdoc_options: []
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 2.6.0
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubygems_version: 3.5.5
67
+ signing_key:
68
+ specification_version: 4
69
+ summary: Github Pages Generator
70
+ test_files: []