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.
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
+ }