pbsimply 3.2.2 → 3.3.1

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. checksums.yaml +4 -4
  2. data/bin/pbsimply-init +130 -355
  3. data/lib/pbsimply/frontmatter.rb +12 -3
  4. data/lib/pbsimply.rb +35 -3
  5. data/themes/contribute/README.md +2 -0
  6. data/themes/default.yaml +1 -0
  7. data/themes/kramdown/init322/.accsindex.erb +35 -0
  8. data/themes/kramdown/init322/.pbsimply.yaml +96 -0
  9. data/themes/kramdown/init322/.theme.yaml +5 -0
  10. data/themes/kramdown/init322/articles/.accs.yaml +2 -0
  11. data/themes/kramdown/init322/articles/20231028-untitled.md +22 -0
  12. data/themes/kramdown/init322/css/style.css +91 -0
  13. data/themes/kramdown/init322/index.md +10 -0
  14. data/themes/kramdown/init322/menu.yaml +3 -0
  15. data/themes/kramdown/init322/template.erb +32 -0
  16. data/themes/pandoc/_pandoc_base/.accsindex.erb +50 -0
  17. data/themes/pandoc/_pandoc_base/.pbsimply.yaml +107 -0
  18. data/themes/pandoc/_pandoc_base/css/base.css +84 -0
  19. data/themes/pandoc/_pandoc_base/css/layout.css +55 -0
  20. data/themes/pandoc/_pandoc_base/css/lightbox.css +9 -0
  21. data/themes/pandoc/_pandoc_base/css/skylightning.css +29 -0
  22. data/themes/pandoc/_pandoc_base/javascript/lightbox.js +69 -0
  23. data/themes/pandoc/_pandoc_base/post/.accs.yaml +1 -0
  24. data/themes/pandoc/_pandoc_base/post/20231028-untitled.md +22 -0
  25. data/themes/pandoc/_pandoc_base/template.html +70 -0
  26. data/themes/pandoc/_pandoc_new/.accsindex.erb +50 -0
  27. data/themes/pandoc/_pandoc_new/.pbsimply-bless.rb +10 -0
  28. data/themes/pandoc/_pandoc_new/.pbsimply.yaml +107 -0
  29. data/themes/pandoc/_pandoc_new/articles/.accs.yaml +2 -0
  30. data/themes/pandoc/_pandoc_new/articles/20231028-untitled.md +22 -0
  31. data/themes/pandoc/_pandoc_new/index.md +31 -0
  32. data/themes/pandoc/_pandoc_new/menu.yaml +5 -0
  33. data/themes/pandoc/_pandoc_new/template.html +68 -0
  34. data/themes/pandoc/bloggy/.theme.yaml +7 -0
  35. data/themes/pandoc/bloggy/css/base.css +137 -0
  36. data/themes/pandoc/bloggy/css/layout.css +54 -0
  37. data/themes/pandoc/bloggy/template.html +70 -0
  38. data/themes/pandoc/cooldark/.theme.yaml +7 -0
  39. data/themes/pandoc/cooldark/css/theme.css +117 -0
  40. data/themes/pandoc/cooldark/js/lightbox.js +62 -0
  41. data/themes/pandoc/paper/.theme.yaml +7 -0
  42. data/themes/pandoc/paper/css/theme.css +126 -0
  43. data/themes/pandoc/paper/js/lightbox.js +62 -0
  44. data/themes/pandoc/practical/.theme.yaml +7 -0
  45. data/themes/pandoc/practical/css/base.css +115 -0
  46. data/themes/pandoc/practical/css/layout.css +16 -0
  47. data/themes/pandoc/warm/.theme.yaml +7 -0
  48. data/themes/pandoc/warm/css/base.css +84 -0
  49. metadata +48 -4
@@ -0,0 +1,96 @@
1
+ ---
2
+ # Built documents output path.
3
+ # ../Build means Build directory on Source document root's parent directory.
4
+ outdir: ../Build
5
+ #outdir: /home/foo/public_html/
6
+ #
7
+ # Template file path.
8
+ # ./template.html by default.
9
+ template: template.erb
10
+ #
11
+ # Loading CSS files (userd by Pandoc's default template.)
12
+ # This values must be *server's URL*.
13
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet or cmark engine.
14
+ #css:
15
+ # - /css/layout.css
16
+ # - /css/base.css#
17
+ # Enable TOC. true or false. false by default.
18
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet, cmark or docutils engine.
19
+ # toc: true
20
+ #
21
+ # Enable eRuby template expansion. true or false. false by default.
22
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet or cmark engine.
23
+ post_eruby: false
24
+ # Default metadata. If same key exists in document's frontmatter, document's frontmatter is given priority to this settings.
25
+ default_meta:
26
+ author: "John Doe"
27
+ site_title: "My first blog"
28
+ #
29
+ # Override every ACCS index page's frontmatter.
30
+ alt_frontmatter:
31
+ title: Serial documents by ACCS
32
+ #
33
+ # Testserver (pbsimply-testserver.rb)'s port. 8000 by default.
34
+ #testserver_port: 8000
35
+ #
36
+ # Generated document's URL absolute prefix. This value replaces reading /.
37
+ #self_url_prefix: /foowebsite/
38
+ #
39
+ # Generated document's URL absolute prefix. This value replaces reading /. Used by page_url_encoded_external.
40
+ self_url_external_prefix: https://example.com/
41
+ # Database format. use JSON if set json or oj.
42
+ #dbstyle: json
43
+ #
44
+ # Blessing way. If cmd given, you external command instead of Ruby function.
45
+ #bless_style: cmd
46
+ #
47
+ # Blessing external command
48
+ #bless_cmd: [echo, BLESS]
49
+ #
50
+ # Blessing external command on ACCS.
51
+ #bless_accscmd: [echo, ACCS]
52
+ #
53
+ # Method control for find ACCS next/prev.
54
+ # numbering, date, timestamp, lexical
55
+ #blessmethod_accs_rel: date
56
+ #
57
+ # Delete output file automatically when lose source document.
58
+ #auto_delete: yes
59
+ #
60
+ #################################################
61
+ # Pandoc engine option
62
+ #################################################
63
+ #pbsimply_processor: pandoc
64
+ #
65
+ # Pandoc's default file settings.
66
+ # It is merge into default file. See https://pandoc.org/MANUAL.html#default-files
67
+ # This option used only by pandoc engine.
68
+ #pandoc_additional_options:
69
+ # metadata:
70
+ # lang: ja
71
+ # title-prefix: "Powered by PureBuilder Simply"
72
+ # include-before-body:
73
+ # - before.html
74
+ # include-after-body:
75
+ # - after.html
76
+ #
77
+ #################################################
78
+ # Kramdown engine option
79
+ #################################################
80
+ pbsimply_processor: kramdown
81
+ # An associative array passed as the second argument to `Kramdown::Document.new`. See the https://kramdown.gettalong.org/rdoc/Kramdown/Options.html for detail.
82
+ #kramdown_features: {}
83
+ #
84
+ #################################################
85
+ # RedCarpet engine option
86
+ #################################################
87
+ #pbsimply_processor: redcarpet
88
+ # An associative array showing the extensions to Redcarpet. See the https://github.com/vmg/redcarpet for details.
89
+ #redcarpet_extensions: {}
90
+ #
91
+ #################################################
92
+ # Docutils engine option
93
+ #################################################
94
+ #pbsimply_processor: docutils
95
+ # rst2html5 command line options.
96
+ #docutils_options: []
@@ -0,0 +1,5 @@
1
+ name: Init_3.2.2
2
+ description: Theme used in PureBuilder Simply 3.2.2's pbsimply-init.
3
+ initial_control:
4
+ build_cpr:
5
+ - [css]
@@ -0,0 +1,2 @@
1
+ ---
2
+ title: 1st series
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Untitled series 1
3
+ date: 2023-10-28
4
+ category: PureBuilder Simply
5
+ ---
6
+
7
+ # Untitled article
8
+
9
+ This is a series article sample.
10
+
11
+ `/articles` folder is set up as ACCS directory.
12
+ ACCS recognize articles as series, and generate index page automatically.
13
+
14
+ # How to add new article?
15
+
16
+ Add source document on `/articles`, and do `pbsimply articles`.
17
+
18
+ `pbsimply` will detect modified or new article and build it.
19
+
20
+ # How to remove this article?
21
+
22
+ Remove `/articles/20231028-untitled.md` and `../Build/articles/20231028-untitled.html`, and do `pbsimply articles`.
@@ -0,0 +1,91 @@
1
+ body, html {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+ #Overall {
6
+ max-width: 800px;
7
+ margin: 0 auto;
8
+ }
9
+ #BannerHeader {
10
+ height: 200px;
11
+ width: 100%;
12
+ }
13
+ #ContentContainer {
14
+ display: flex;
15
+ width: 100%;
16
+ }
17
+ #BannerHeader {
18
+ background-color: #8eafe3;
19
+ border-radius: 2px;
20
+ color: #000;
21
+ }
22
+ #BannerHeader h1 {
23
+ font-size: 2.1rem;
24
+ text-align: center;
25
+ position: relative;
26
+ top: calc(50% - 1em);
27
+ }
28
+ #BannerHeader h2 {
29
+ font-size: 1.2rem;
30
+ text-align: center;
31
+ position: relative;
32
+ top: 1.25em;
33
+ }
34
+
35
+ #NavigationColumn ul {
36
+ list-style-type: none;
37
+ list-style-position: outside;
38
+ margin: 3px;
39
+ padding: 0;
40
+ text-align: center;
41
+ }
42
+ #NavigationColumn li {
43
+ background-color: #b9bced;
44
+ border: 2px solid #6367a1;
45
+ color: #000;
46
+ border-radius: 4px;
47
+ margin: 3px 1px;
48
+ padding: 2px;
49
+ }
50
+ #NavigationColumn a {
51
+ color: rgb(57, 18, 183);
52
+ text-decoration: none;
53
+ }
54
+ #MainArticle {
55
+ color: #666;
56
+ padding: 8px;
57
+ }
58
+ #MainArticle h1, #MainArticle h2, #MainArticle h3, #MainArticle h4, #MainArticle h5, #MainArticle h6 {
59
+ color: #333;
60
+ }
61
+ #PBSimply {
62
+ padding: 8px;
63
+ text-align: right;
64
+ border-top: 2px solid #6b84df;
65
+ }
66
+ @media screen and (min-width: 800px) {
67
+ #ContentContainer { flex-direction: row; }
68
+ #NavigationColumn {
69
+ order: 1;
70
+ width: 250px;
71
+ }
72
+ #MainArticle {
73
+ order: 2;
74
+ width: 550px;
75
+ }
76
+ }
77
+ @media screen and (max-width: 799px) {
78
+ #ContentContainer { flex-direction: column; }
79
+ #NavigationColumn {
80
+ order: 2;
81
+ width: 100%;
82
+ }
83
+ #MainArticle {
84
+ order: 1;
85
+ width: 100%;
86
+ }
87
+ }
88
+
89
+ a {
90
+ color: #4e1efd;
91
+ }
@@ -0,0 +1,10 @@
1
+ ---
2
+ title: First article
3
+ date: 1970-01-01
4
+ ---
5
+
6
+ # This is first article
7
+
8
+ This file is shown at top page.
9
+
10
+ The first step, edit index.md file on document source root.
@@ -0,0 +1,3 @@
1
+ ---
2
+ Top page: /
3
+ Article list: /articles
@@ -0,0 +1,32 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
6
+ <meta name="date" content="<%= frontmatter["date"] %>" />
7
+ <link rel="stylesheet" href="/css/style.css" />
8
+ <title><%= frontmatter["title"] %></title>
9
+ </head>
10
+ <body>
11
+ <div id="Overall">
12
+ <div id="BannerHeader">
13
+ <h1><%= frontmatter["site_title"] %></h1>
14
+ <h2><%= frontmatter["title"] %></h2>
15
+ </div>
16
+ <div id="ContentContainer">
17
+ <nav id="NavigationColumn">
18
+ <ul>
19
+ <%
20
+ require 'yaml'
21
+ menu = YAML.load File.read("menu.yaml")
22
+ %><% menu.each {|k, v| %><%= sprintf('<li><a href="%s">%s</a></li>', v, k) %><% } %>
23
+ </ul>
24
+ </nav>
25
+ <article id="MainArticle"><%= article_body %></aritcle>
26
+ </div>
27
+ <footer id="PBSimply">
28
+ Powered by <a href="https://purebuilder.app/">PureBuilder Simply</a>
29
+ </footer>
30
+ </div>
31
+ </body>
32
+ </html>
@@ -0,0 +1,50 @@
1
+ <%= YAML.dump(
2
+ {
3
+ "title" => @index["title"],
4
+ "date" => @index["date"],
5
+ "author" => @index["author"]
6
+ }
7
+ ) %>
8
+ ---
9
+
10
+ <%
11
+ articles = Hash.new {|h,k| h[k] = Array.new }
12
+
13
+ if @config["accs_across_category"]
14
+ @indexes.each {|filename, index| articles["default"].push index }
15
+ else
16
+ @indexes.each {|filename, index| articles[(index["category"] || "default")].push index }
17
+ end
18
+
19
+ %>
20
+
21
+ % articles.keys.sort.each do |catname|
22
+ % cat = articles[catname]
23
+
24
+ % unless articles.length == 1
25
+ # <%= catname %>
26
+ % end
27
+
28
+ <%
29
+ sort_method = case @config["accs_sort_by"]
30
+ when "title"
31
+ lambda {|i| [i["title"].to_s, i["date"]] }
32
+ when "name"
33
+ lambda {|i| [i["_filename"].to_s, i["title"].to_s, i["date"]] }
34
+ when "serial"
35
+ lambda {|i| [i["serial"].to_s, i["date"], i["_filename"].to_s] }
36
+ else
37
+ lambda {|i| [i["date"], i["title"].to_s, i["_last_update"].to_i] }
38
+ end
39
+
40
+ list = if @config["accs_order"] == "desc"
41
+ cat.sort_by(&sort_method).reverse
42
+ else
43
+ cat.sort_by(&sort_method)
44
+ end
45
+
46
+ list.each do |i|
47
+ %>* [<%= i["title"] %>](<%= i["page_url"] %>)
48
+ <% end %>
49
+
50
+ % end
@@ -0,0 +1,107 @@
1
+ ---
2
+ # Built documents output path.
3
+ # ../Build means Build directory on Source document root's parent directory.
4
+ outdir: ../Build
5
+ #outdir: /home/foo/public_html/
6
+ #
7
+ # Template file path.
8
+ # ./template.html by default.
9
+ template: template.html
10
+ #
11
+ # Loading CSS files (userd by Pandoc's default template.)
12
+ # This values must be *server's URL*.
13
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet or cmark engine.
14
+ css:
15
+ - /css/theme.css
16
+ # Enable TOC. true or false. false by default.
17
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet, cmark or docutils engine.
18
+ toc: true
19
+ #
20
+ # Enable eRuby template expansion. true or false. false by default.
21
+ # This settings is not avilable on rdoc, rdoc_markdown, kramdown, redcarpet or cmark engine.
22
+ post_eruby: false
23
+ # Default metadata. If same key exists in document's frontmatter, document's frontmatter is given priority to this settings.
24
+ default_meta:
25
+ author: "John Doe"
26
+ sitename: "John Doe's Homepage"
27
+ #
28
+ # Override every ACCS index page's frontmatter.
29
+ alt_frontmatter:
30
+ title: Serial documents by ACCS
31
+ #
32
+ # Testserver (pbsimply-testserver.rb)'s port. 8000 by default.
33
+ #testserver_port: 8000
34
+ #
35
+ # Generated document's URL absolute prefix. This value replaces reading /.
36
+ #self_url_prefix: /foowebsite/
37
+ #
38
+ # Generated document's URL absolute prefix. This value replaces reading /. Used by page_url_encoded_external.
39
+ self_url_external_prefix: https://example.com/
40
+ # Database format. use JSON if set json or oj.
41
+ # marshal, json, oj or yaml.
42
+ #dbstyle: json
43
+ #
44
+ # Blessing way. If cmd given, you external command instead of Ruby function.
45
+ #bless_style: cmd
46
+ #
47
+ # Blessing external command
48
+ #bless_cmd: [echo, BLESS]
49
+ #
50
+ # Blessing external command on ACCS.
51
+ #bless_accscmd: [echo, ACCS]
52
+ #
53
+ # Method control for find ACCS next/prev.
54
+ # numbering, date, timestamp, lexical
55
+ #blessmethod_accs_rel: date
56
+ #
57
+ # Delete output file automatically when lose source document.
58
+ #auto_delete: yes
59
+ #
60
+ #################################################
61
+ # Pandoc engine option
62
+ #################################################
63
+ #pbsimply_processor: pandoc
64
+ #
65
+ # Pandoc's default file settings.
66
+ # It is merge into default file. See https://pandoc.org/MANUAL.html#default-files
67
+ # This option used only by pandoc engine.
68
+ pandoc_additional_options:
69
+ metadata:
70
+ lang: ja
71
+ title-prefix: "Powered by PureBuilder Simply"
72
+ shift-heading-level-by: 1
73
+ # include-before-body:
74
+ # - before.html
75
+ # include-after-body:
76
+ # - after.html
77
+ #
78
+ #################################################
79
+ # Kramdown engine option
80
+ #################################################
81
+ #pbsimply_processor: kramdown
82
+ #
83
+ # An associative array passed as the second argument to `Kramdown::Document.new`. See the https://kramdown.gettalong.org/rdoc/Kramdown/Options.html for detail.
84
+ #kramdown_features: {}
85
+ #
86
+ #################################################
87
+ # RedCarpet engine option
88
+ #################################################
89
+ #pbsimply_processor: redcarpet
90
+ #
91
+ # An associative array showing the extensions to Redcarpet. See the https://github.com/vmg/redcarpet for details.
92
+ #redcarpet_extensions: {}
93
+ #
94
+ #################################################
95
+ # Docutils engine option
96
+ #################################################
97
+ #pbsimply_processor: docutils
98
+ #
99
+ # rst2html5 command line options.
100
+ #docutils_options: []
101
+ #
102
+ #################################################
103
+ # Other engines without options
104
+ #################################################
105
+ #pbsimply_processor: rdoc
106
+ #pbsimply_processor: rdoc_markdown
107
+ #pbsimply_processor: cmark
@@ -0,0 +1,84 @@
1
+ body {
2
+ color: #666;
3
+ background-color: #fff;
4
+ font-family: serif;
5
+ }
6
+
7
+ #MainArticle {
8
+ padding: 1em;
9
+ }
10
+
11
+ #TitleHeader {
12
+ text-align: center;
13
+ border-bottom: 1px solid #333;
14
+ }
15
+
16
+ h1, h2, h3, h4, h5, h6, figure, figcaption, caption, dt {
17
+ font-family: sans-serif;
18
+ }
19
+
20
+ a:visited {
21
+ color: #c16ab8;
22
+ }
23
+
24
+ a:hover {
25
+ color: #c28850;
26
+ }
27
+
28
+ a {
29
+ color: #4a69ff;
30
+ }
31
+
32
+ .toc {
33
+ border: #999 solid 1px;
34
+ background-color: #fcfcff;
35
+ margin: 0.5em;
36
+ }
37
+
38
+ #SideBar {
39
+ padding-top: 15px;
40
+ }
41
+
42
+ .menu {
43
+ border: #41484c solid 1px;
44
+ background-color: #fff;
45
+ margin: auto;
46
+ padding: 1em;
47
+ max-width: 100%;
48
+ }
49
+
50
+ /****** SOUECE CODE ******/
51
+ a.sourceLine { display: inline-block; line-height: 1.25; }
52
+ a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
53
+ a.sourceLine:empty { height: 1.2em; }
54
+ .sourceCode { overflow: visible; }
55
+ code.sourceCode { white-space: pre; position: relative; }
56
+ div.sourceCode { margin: 1em 0; }
57
+ pre.sourceCode { margin: 0; }
58
+ @media screen {
59
+ div.sourceCode { overflow: auto; }
60
+ }
61
+ @media print {
62
+ code.sourceCode { white-space: pre-wrap; }
63
+ a.sourceLine { text-indent: -1em; padding-left: 1em; }
64
+ }
65
+ pre.numberSource a.sourceLine
66
+ { position: relative; left: -4em; }
67
+ pre.numberSource a.sourceLine::before
68
+ { content: attr(data-line-number);
69
+ position: relative; left: -1em; text-align: right; vertical-align: baseline;
70
+ border: none; pointer-events: all; display: inline-block;
71
+ -webkit-touch-callout: none; -webkit-user-select: none;
72
+ -khtml-user-select: none; -moz-user-select: none;
73
+ -ms-user-select: none; user-select: none;
74
+ padding: 0 4px; width: 4em;
75
+ color: #c8a280;
76
+ }
77
+ pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
78
+ div.sourceCode
79
+ { }
80
+ @media screen {
81
+ a.sourceLine::before { text-decoration: underline; }
82
+ }
83
+ /*************************/
84
+
@@ -0,0 +1,55 @@
1
+ body {
2
+ margin: 0px;
3
+ padding: 0px;
4
+ }
5
+
6
+ header#TopHeader {
7
+ display: none;
8
+ height: 180px;
9
+ width: 100vw;
10
+ margin: 0px;
11
+ }
12
+
13
+ header#TitleHeader {
14
+ width: 100vw;
15
+ margin: 0px;
16
+ }
17
+
18
+ @media screen and (min-width: 900px){
19
+ #MainContainer {
20
+ display: table;
21
+ width: 900px;
22
+ margin: auto;
23
+ }
24
+
25
+ article#MainArticle {
26
+ display: table-cell;
27
+ width: 600px;
28
+ max-width: 600px;
29
+ }
30
+
31
+ #SideBar {
32
+ display: table-cell;
33
+ width: 300px;
34
+ max-width: 300px;
35
+ overflow: hidden;
36
+ }
37
+ }
38
+
39
+ @media screen and (max-width: 899px){
40
+ #MainContainer {
41
+ display: block;
42
+ width: 100vw;
43
+ }
44
+
45
+ article#MainArticle {
46
+ display: block;
47
+ width: 100%
48
+ }
49
+
50
+ #SideBar {
51
+ display: block;
52
+ width: 100%
53
+ }
54
+
55
+ }
@@ -0,0 +1,9 @@
1
+ #LightboxWindow {
2
+ background-color: rgb(0,0,0);
3
+ position: fixed;
4
+ top: 0px;
5
+ left: 0px;
6
+ height: 100vh;
7
+ width: 100vw;
8
+ z-index: 5000;
9
+ }
@@ -0,0 +1,29 @@
1
+ code span.al { color: #ff0000; font-weight: bold; } /* Alert */
2
+ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
3
+ code span.at { color: #7d9029; } /* Attribute */
4
+ code span.bn { color: #40a070; } /* BaseN */
5
+ code span.bu { } /* BuiltIn */
6
+ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
7
+ code span.ch { color: #4070a0; } /* Char */
8
+ code span.cn { color: #880000; } /* Constant */
9
+ code span.co { color: #60a0b0; font-style: italic; } /* Comment */
10
+ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
11
+ code span.do { color: #ba2121; font-style: italic; } /* Documentation */
12
+ code span.dt { color: #902000; } /* DataType */
13
+ code span.dv { color: #40a070; } /* DecVal */
14
+ code span.er { color: #ff0000; font-weight: bold; } /* Error */
15
+ code span.ex { } /* Extension */
16
+ code span.fl { color: #40a070; } /* Float */
17
+ code span.fu { color: #06287e; } /* Function */
18
+ code span.im { } /* Import */
19
+ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
20
+ code span.kw { color: #007020; font-weight: bold; } /* Keyword */
21
+ code span.op { color: #666666; } /* Operator */
22
+ code span.ot { color: #007020; } /* Other */
23
+ code span.pp { color: #bc7a00; } /* Preprocessor */
24
+ code span.sc { color: #4070a0; } /* SpecialChar */
25
+ code span.ss { color: #bb6688; } /* SpecialString */
26
+ code span.st { color: #4070a0; } /* String */
27
+ code span.va { color: #19177c; } /* Variable */
28
+ code span.vs { color: #4070a0; } /* VerbatimString */
29
+ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
@@ -0,0 +1,69 @@
1
+ /*******************************************
2
+ * LIGHTBOX PLUGIN by Masaki Haruka 2017
3
+ *
4
+ * USAGE:
5
+ * - Load this script on your HTML.
6
+ * - Wrap your main article with box with #MainArticle ID.
7
+ * - Put lightbox modal window on your HTML.
8
+ * - Put target image into figure.
9
+ * - Puts image files .../thumb/* to thumbnail and .../full/* to fullsized.
10
+ * (you should be able to get fullsize image path with s@/thumb/@/full/@ replacement.)
11
+ *
12
+ *******************************************/
13
+
14
+ (function() {
15
+ if (! document.addEventListener ) { return false; }
16
+ Element.prototype._tn = Element.prototype.getElementsByTagName
17
+
18
+ var wrapper = document.getElementById("WrapWindow") /* ModalWindow */
19
+ var fadingTimer = false /* IntervalTimer */
20
+ var alpha = 0.0 /* ModalWindows's alpha number */
21
+ var lboxImage = document.getElementById("LBoxImage") /* target img object */
22
+
23
+ /* fading out (interval callback) */
24
+ var fadeout = function() {
25
+ if (alpha < 0.8) {
26
+ alpha = alpha + 0.05
27
+ wrapper.style.backgroundColor = "rgba(0,0,0," + alpha + ")"
28
+ } else {
29
+ clearInterval(fadingTimer)
30
+ fadingTimer = false
31
+ }
32
+ }
33
+
34
+ /* set this for event callback */
35
+ var setLightboxTrigger = function(e) {
36
+
37
+ /* Set next image */
38
+ lboxImage.src = e.currentTarget.src.replace("/thumb/", "/full/")
39
+ lboxImage.style.maxHeight = window.innerHeight || document.documentElement.clientHeight
40
+ lboxImage.style.maxWidth = window.innerWidth || document.documentElement.clientWidth
41
+
42
+ wrapper.style.visibility = "visible"
43
+ fadingTimer = setInterval(fadeout, 30)
44
+ }
45
+
46
+ /* Return from lightbox */
47
+ wrapper.addEventListener("click", function(e) {
48
+ if (fadingTimer) {
49
+ clearInterval(fadingTimer)
50
+ }
51
+ wrapper.style.backgroundColor = "transparent"
52
+ wrapper.style.visibility = "hidden"
53
+ alpha = 0.0
54
+ lboxImage.src = ""
55
+ }, false)
56
+
57
+
58
+ /***** Set event listener *****/
59
+
60
+ var art = document.getElementById("MainArticle")
61
+ var figs = art._tn("figure")
62
+ for(var i=0,l=figs.length; i<l; i++) {
63
+ var fi = figs[i]._tn("img").item(0)
64
+ if ( fi.src.indexOf("/thumb/") >= 0 ) {
65
+ fi.addEventListener("click", setLightboxTrigger, false)
66
+ }
67
+ }
68
+
69
+ })()
@@ -0,0 +1 @@
1
+ title: You give name of article.