sancho 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5f82ecb02dbfd8049052cfd187eabe8be36d054494d4cfb5f5c0a057a44f0f85
4
+ data.tar.gz: a2952518cff02c6e2fb5ef44ac86a321a579cc682b0dce3f0743f7758ac94a48
5
+ SHA512:
6
+ metadata.gz: eeb013e3f4b519c11eea6df4a596eb6f6e355e5bce51895a6b6e64c579f5f3caabee3cb3b50ced9634e31bbbd6101f080712c0cb854843e2c5417d404947250d
7
+ data.tar.gz: 16845d4840dd0abceab7fe1a27a123a051c3326afd3b56dd5632aaa6c08ec2ee9e6a9d0d2874d84fcbdf3609ff259df928df7344ff5f6e66934be3b9b1df940f
data/CHANGELOG.md ADDED
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: Sancho Changelog
3
+ keywords:
4
+ - static-site-generator
5
+ - github-pages-generator
6
+ - ruby
7
+ ...
8
+
9
+ ## [TODO]
10
+
11
+ - [ ] having template, is there any sense in header, footer?
12
+ - [ ] page collections with own collection layout and index.html
13
+
14
+ ## [Unreleased]
15
+
16
+ ## [0.6.2] - 2024-03-09
17
+
18
+ - designed new model based on Data.define
19
+ - designed tests for tasks.rake
20
+ - designed new `sancho:serve` tasks
21
+ - improved `sancho:init` output
22
+ - improved `sancho:docs` using Dir.mktempdir
23
+ - removed `docs branch` stuff
24
+
25
+ ## [0.3.0] - 2023-02-11
26
+
27
+ - packed as a gem
28
+ - added `sancho:init` rake task
29
+
30
+ ## [0.2.0] - 2023-01-30
31
+
32
+ - added styles (pandoc.css with sticky navbar and changed code)
33
+ - added rackup
34
+
35
+ ## [0.1.0] - 2023-01-28
36
+
37
+ - Project released
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in sancho.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.1"
9
+ gem "rack", "~> 3.0"
10
+ gem "rackup"
11
+ gem "minitest", "~> 5.22"
data/Gemfile.lock ADDED
@@ -0,0 +1,31 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ sancho (0.6.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ minitest (5.22.2)
10
+ rack (3.0.9.1)
11
+ rackup (2.1.0)
12
+ rack (>= 3)
13
+ webrick (~> 1.8)
14
+ rake (13.1.0)
15
+ webrick (1.8.1)
16
+
17
+ PLATFORMS
18
+ arm64-darwin-23
19
+ x64-mingw-ucrt
20
+ x64-mingw32
21
+ x86_64-linux
22
+
23
+ DEPENDENCIES
24
+ minitest (~> 5.22)
25
+ rack (~> 3.0)
26
+ rackup
27
+ rake (~> 13.1)
28
+ sancho!
29
+
30
+ BUNDLED WITH
31
+ 2.4.5
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Sancho Readme
3
+ keywords:
4
+ - ruby
5
+ - github-pages-generator
6
+ ...
7
+
8
+ `Sancho` is static site generator for [Github Pages](https://pages.github.com/). Site content should to be written in Markdown or [Pandoc Markdown](https://pandoc.org/MANUAL.html#pandocs-markdown). And it will be rendered with [Pandoc](https://pandoc.org/)
9
+
10
+ ## Installation
11
+
12
+ Run
13
+
14
+ $ bundle add sancho --git https://github.com/nvoynov/sancho.git
15
+
16
+ Require it in the Rakefile
17
+
18
+ ```ruby
19
+ require "sancho"
20
+ source, folders = Sancho.tasks
21
+ Rake.application.rake_require source, folders
22
+ ```
23
+
24
+ Install [pandoc](https://pandoc.org/installing.html)
25
+
26
+ ## Usage
27
+
28
+ To initialize site content, run the initialization task
29
+
30
+ $ rake sancho:init
31
+
32
+ Configure the site content by customizing `sancho.yml`
33
+
34
+ Render HTML content from markdown sources
35
+
36
+ $ rake sancho:docs
37
+
38
+ Serve it locally by
39
+
40
+ $ rake sancho:serve
41
+
42
+ [Template]{.underline}
43
+
44
+ You can provide your own HTML template by placing `_layouts/template.html` file. Read [Pandoc Templates](https://pandoc.org/MANUAL.html#templates) section for details.
45
+
46
+ ## Links
47
+
48
+ - [Zenweb, stupid fast static website generation](https://www.zenspider.com/projects/zenweb.html)
49
+ - [Creating Static Sites in Ruby with Rack](https://devcenter.heroku.com/articles/static-sites-ruby)
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ require "rake"
2
+ require_relative "lib/sancho"
3
+ source, folders = Sancho.tasks
4
+ Rake.application.rake_require source, folders
5
+
6
+ require "bundler/gem_tasks"
7
+ require "rake/testtask"
8
+
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << "test"
11
+ t.libs << "lib"
12
+ t.test_files = FileList["test/**/test_*.rb"]
13
+ end
14
+
15
+ task default: :test
data/STORY.md ADDED
@@ -0,0 +1,13 @@
1
+ ---
2
+ title: Sancho Story
3
+ date: 2023-01-28
4
+ keywords:
5
+ - ruby
6
+ - github-pages-generator
7
+ ...
8
+
9
+ Exercising with [Punch](https://github.com/nvoynov/punch) and inspired by the result I decided to propose my private "clean domain development" services. Having written some content drafts, my first thought was to just use Jekyll as it is on nvoynov.github.io, but have searched a bit through the Internet I bumped into [zenweb](https://github.com/seattlerb/zenweb) and decided to give it a try.
10
+
11
+ Fortunately, something went wrong :) and a few of my content pages, despite all my dancing with a tambourine, just failed to translate into HTML. Being looking through `zenweb` code I realized that it's actually easy to design on my own.
12
+
13
+ So meet the Sancho :)
@@ -0,0 +1,4 @@
1
+ <div id="footer">
2
+ ***
3
+ © 2022-2023 <a href="http://nvoynov.github.io/">nvoynov</a>
4
+ </div>
@@ -0,0 +1,3 @@
1
+ <p class="navbar">
2
+ [ = **"Sancho" Pages Puncher** = [Readme](readme.html) ~ [Changelog](changelog.html) ~ [Story](story.html) ~ [Github](https://github.com/nvoynov/sancho)]{.smallcaps}
3
+ </p>
@@ -0,0 +1,73 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="pandoc" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7
+ $for(author-meta)$
8
+ <meta name="author" content="$author-meta$" />
9
+ $endfor$
10
+ $if(date-meta)$
11
+ <meta name="dcterms.date" content="$date-meta$" />
12
+ $endif$
13
+ $if(keywords)$
14
+ <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
15
+ $endif$
16
+ $if(description-meta)$
17
+ <meta name="description" content="$description-meta$" />
18
+ $endif$
19
+ <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
20
+ <style>
21
+ $styles.html()$
22
+ </style>
23
+ $for(css)$
24
+ <link rel="stylesheet" href="$css$" />
25
+ $endfor$
26
+ $for(header-includes)$
27
+ $header-includes$
28
+ $endfor$
29
+ $if(math)$
30
+ $math$
31
+ $endif$
32
+ <!--[if lt IE 9]>
33
+ <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
34
+ <![endif]-->
35
+ </head>
36
+ <body>
37
+ $for(include-before)$
38
+ $include-before$
39
+ $endfor$
40
+ $if(title)$
41
+ <header id="title-block-header">
42
+ <h1 class="title">$title$</h1>
43
+ $if(subtitle)$
44
+ <p class="subtitle">$subtitle$</p>
45
+ $endif$
46
+ $for(author)$
47
+ <p class="author">$author$</p>
48
+ $endfor$
49
+ $if(date)$
50
+ <p class="date">$date$</p>
51
+ $endif$
52
+ $if(abstract)$
53
+ <div class="abstract">
54
+ <div class="abstract-title">$abstract-title$</div>
55
+ $abstract$
56
+ </div>
57
+ $endif$
58
+ </header>
59
+ $endif$
60
+ $if(toc)$
61
+ <nav id="$idprefix$TOC" role="doc-toc">
62
+ $if(toc-title)$
63
+ <h2 id="$idprefix$toc-title">$toc-title$</h2>
64
+ $endif$
65
+ $table-of-contents$
66
+ </nav>
67
+ $endif$
68
+ $body$
69
+ $for(include-after)$
70
+ $include-after$
71
+ $endfor$
72
+ </body>
73
+ </html>
@@ -0,0 +1,4 @@
1
+ User-agent: *
2
+ Allow: /
3
+
4
+ Sitemap: https://<%= @site.domain %>/sitemap.xml
@@ -0,0 +1,20 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+ xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
4
+ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
+
6
+ <url>
7
+ <loc><%= @site.domain %>/</loc>
8
+ <lastmod><%= @site.pages_by_date.first.date %></lastmod>
9
+ <changefreq>weekly</changefreq>
10
+ <priority>1.0</priority>
11
+ </url>
12
+ <% @site.pages.each do |page| %>
13
+ <url>
14
+ <loc><%= @site.domain %>/<%= page.url %></loc>
15
+ <lastmod><%= page.date %></lastmod>
16
+ <changefreq>weekly</changefreq>
17
+ <priority>0.8</priority>
18
+ </url>
19
+ <% end %>
20
+ </urlset>
@@ -0,0 +1,92 @@
1
+ body {
2
+ margin: auto;
3
+ padding-right: 1em;
4
+ padding-left: 1em;
5
+ max-width: 44em;
6
+ color: black;
7
+ font-family: Verdana, sans-serif;
8
+ font-size: 100%;
9
+ line-height: 140%;
10
+ color: #333;
11
+ }
12
+
13
+ pre {
14
+ border: 1px dotted gray;
15
+ background-color: #ececec;
16
+ color: #1111111;
17
+ padding: 0.5em;
18
+ }
19
+
20
+ code {
21
+ font-family: monospace;
22
+ font-size: 140%;
23
+ color: #b34700;
24
+ }
25
+
26
+ h1 a, h2 a, h3 a, h4 a, h5 a {
27
+ text-decoration: none;
28
+ color: #7a5ada;
29
+ }
30
+
31
+ h1, h2, h3, h4, h5 {
32
+ font-family: verdana;
33
+ font-weight: bold;
34
+ border-bottom: 1px dotted black;
35
+ color: #7a5ada;
36
+ }
37
+
38
+ h1 {
39
+ font-size: 130%;
40
+ }
41
+
42
+ h2 {
43
+ font-size: 110%;
44
+ }
45
+
46
+ h3 {
47
+ font-size: 95%;
48
+ }
49
+
50
+ h4 {
51
+ font-size: 90%;
52
+ font-style: italic;
53
+ }
54
+
55
+ h5 {
56
+ font-size: 90%;
57
+ font-style: italic;
58
+ }
59
+
60
+ h1.title {
61
+ font-size: 200%;
62
+ font-weight: bold;
63
+ padding-top: 0.2em;
64
+ padding-bottom: 0.2em;
65
+ text-align: left;
66
+ border: none;
67
+ }
68
+
69
+ dt code {
70
+ font-weight: bold;
71
+ }
72
+
73
+ dd p {
74
+ margin-top: 0;
75
+ }
76
+
77
+ #footer {
78
+ padding-top: 1em;
79
+ font-size: 70%;
80
+ color: gray;
81
+ text-align: center;
82
+ }
83
+
84
+ .navbar {
85
+ background: #fff;
86
+ border-bottom: 1px solid #000;
87
+ margin: 0 0 1em;
88
+ padding: 1em 0;
89
+ position: sticky;
90
+ top: 0;
91
+ z-index: 100;
92
+ }
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="generator" content="pandoc" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7
+ <meta name="keywords" content="static-site-generator, github-pages-generator, ruby" />
8
+ <title>Sancho Changelog</title>
9
+ <style>
10
+ code{white-space: pre-wrap;}
11
+ span.smallcaps{font-variant: small-caps;}
12
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
13
+ div.column{flex: auto; overflow-x: auto;}
14
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
15
+ ul.task-list{list-style: none;}
16
+ ul.task-list li input[type="checkbox"] {
17
+ width: 0.8em;
18
+ margin: 0 0.8em 0.2em -1.6em;
19
+ vertical-align: middle;
20
+ }
21
+ .display.math{display: block; text-align: center; margin: 0.5rem auto;}
22
+ </style>
23
+ <link rel="stylesheet" href="css/styles.css" />
24
+ <!--[if lt IE 9]>
25
+ <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
26
+ <![endif]-->
27
+ </head>
28
+ <body>
29
+ <p class="navbar">
30
+ <span class="smallcaps">= <strong>“Sancho” Pages Puncher</strong> = <a
31
+ href="readme.html">Readme</a> ~ <a href="changelog.html">Changelog</a> ~
32
+ <a href="story.html">Story</a> ~ <a
33
+ href="https://github.com/nvoynov/sancho">Github</a></span>
34
+ </p>
35
+ <header id="title-block-header">
36
+ <h1 class="title">Sancho Changelog</h1>
37
+ </header>
38
+ <nav id="TOC" role="doc-toc">
39
+ <ul>
40
+ <li><a href="#todo" id="toc-todo">[TODO]</a></li>
41
+ <li><a href="#unreleased" id="toc-unreleased">[Unreleased]</a></li>
42
+ <li><a href="#section" id="toc-section">[0.6.0] - 2024-03-08</a></li>
43
+ <li><a href="#section-1" id="toc-section-1">[0.6.0] -
44
+ 2024-03-07</a></li>
45
+ <li><a href="#section-2" id="toc-section-2">[0.3.0] -
46
+ 2023-02-11</a></li>
47
+ <li><a href="#section-3" id="toc-section-3">[0.2.0] -
48
+ 2023-01-30</a></li>
49
+ <li><a href="#section-4" id="toc-section-4">[0.1.0] -
50
+ 2023-01-28</a></li>
51
+ </ul>
52
+ </nav>
53
+ <h2 id="todo">[TODO]</h2>
54
+ <ul class="task-list">
55
+ <li><input type="checkbox" />fix config.ru for serving locally; provide
56
+ it for clients</li>
57
+ <li><input type="checkbox" />having template, is there any sense in
58
+ header, footer?</li>
59
+ <li><input type="checkbox" />page collections with own collection layout
60
+ and index.html</li>
61
+ </ul>
62
+ <h2 id="unreleased">[Unreleased]</h2>
63
+ <h2 id="section">[0.6.0] - 2024-03-08</h2>
64
+ <ul>
65
+ <li>fixed config.ru</li>
66
+ <li><code>serve</code> task depends on <code>docs</code></li>
67
+ </ul>
68
+ <h2 id="section-1">[0.6.0] - 2024-03-07</h2>
69
+ <ul>
70
+ <li>designed new model based on Data.define</li>
71
+ <li>designed tests for tasks.rake</li>
72
+ <li>designed new <code>sancho:serve</code> and
73
+ <code>sancho:release</code> tasks</li>
74
+ <li>improved <code>sancho:init</code> output</li>
75
+ <li>improved <code>sancho:docs</code> using Dir.mktempdir</li>
76
+ </ul>
77
+ <h2 id="section-2">[0.3.0] - 2023-02-11</h2>
78
+ <ul>
79
+ <li>packed as a gem</li>
80
+ <li>added <code>sancho:init</code> rake task</li>
81
+ </ul>
82
+ <h2 id="section-3">[0.2.0] - 2023-01-30</h2>
83
+ <ul>
84
+ <li>added styles (pandoc.css with sticky navbar and changed code)</li>
85
+ <li>added rackup</li>
86
+ </ul>
87
+ <h2 id="section-4">[0.1.0] - 2023-01-28</h2>
88
+ <ul>
89
+ <li>Project released</li>
90
+ </ul>
91
+ <div id="footer">
92
+ <hr />
93
+ <p>© 2022-2023 <a href="http://nvoynov.github.io/">nvoynov</a></p>
94
+ </div>
95
+ </body>
96
+ </html>
@@ -0,0 +1,92 @@
1
+ body {
2
+ margin: auto;
3
+ padding-right: 1em;
4
+ padding-left: 1em;
5
+ max-width: 44em;
6
+ color: black;
7
+ font-family: Verdana, sans-serif;
8
+ font-size: 100%;
9
+ line-height: 140%;
10
+ color: #333;
11
+ }
12
+
13
+ pre {
14
+ border: 1px dotted gray;
15
+ background-color: #ececec;
16
+ color: #1111111;
17
+ padding: 0.5em;
18
+ }
19
+
20
+ code {
21
+ font-family: monospace;
22
+ font-size: 140%;
23
+ color: #b34700;
24
+ }
25
+
26
+ h1 a, h2 a, h3 a, h4 a, h5 a {
27
+ text-decoration: none;
28
+ color: #7a5ada;
29
+ }
30
+
31
+ h1, h2, h3, h4, h5 {
32
+ font-family: verdana;
33
+ font-weight: bold;
34
+ border-bottom: 1px dotted black;
35
+ color: #7a5ada;
36
+ }
37
+
38
+ h1 {
39
+ font-size: 130%;
40
+ }
41
+
42
+ h2 {
43
+ font-size: 110%;
44
+ }
45
+
46
+ h3 {
47
+ font-size: 95%;
48
+ }
49
+
50
+ h4 {
51
+ font-size: 90%;
52
+ font-style: italic;
53
+ }
54
+
55
+ h5 {
56
+ font-size: 90%;
57
+ font-style: italic;
58
+ }
59
+
60
+ h1.title {
61
+ font-size: 200%;
62
+ font-weight: bold;
63
+ padding-top: 0.2em;
64
+ padding-bottom: 0.2em;
65
+ text-align: left;
66
+ border: none;
67
+ }
68
+
69
+ dt code {
70
+ font-weight: bold;
71
+ }
72
+
73
+ dd p {
74
+ margin-top: 0;
75
+ }
76
+
77
+ #footer {
78
+ padding-top: 1em;
79
+ font-size: 70%;
80
+ color: gray;
81
+ text-align: center;
82
+ }
83
+
84
+ .navbar {
85
+ background: #fff;
86
+ border-bottom: 1px solid #000;
87
+ margin: 0 0 1em;
88
+ padding: 1em 0;
89
+ position: sticky;
90
+ top: 0;
91
+ z-index: 100;
92
+ }