markdown_site 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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 146ecf99d44c8a53c22f178d63ace9d41272be90e1d056c0cf886117eb827c5c
|
4
|
+
data.tar.gz: e35fd8d39e44b6823393a5b568643a4d97ad97baea984c261a426e7bddb8542c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36a9a6a6542f2d19d1293904c1eabab92056e1c1f920e710cce2e60797cb8b24ac70950ca6b9d21727629d5c93ac93884e0f9b8a51941fc81f4c1570195ad7a2
|
7
|
+
data.tar.gz: 82078f7cc43ea5b48f236ead24d41297cb58e4f1344dae36c14f31ed7a9462ab2d81050e3949edd97921402119e30f2d1823aa83fcd05cb5bde09ffe22419a13
|
data/lib/markdown_site/config.rb
CHANGED
@@ -114,6 +114,14 @@ module MarkdownSite
|
|
114
114
|
|
115
115
|
def journals_template
|
116
116
|
return get_template_info("journals_template")
|
117
|
-
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def root_template
|
120
|
+
return get_template_info("root_template")
|
121
|
+
end
|
122
|
+
|
123
|
+
def index_template
|
124
|
+
return get_template_info("index_template")
|
125
|
+
end
|
118
126
|
end
|
119
127
|
end
|
data/lib/markdown_site/site.rb
CHANGED
@@ -4,7 +4,7 @@ require "markdown_extension"
|
|
4
4
|
|
5
5
|
module MarkdownSite
|
6
6
|
class Site
|
7
|
-
attr_accessor :config, :pages, :journals, :references, :reverse_references
|
7
|
+
attr_accessor :config, :pages_path, :pages, :journals, :references, :reverse_references
|
8
8
|
attr_accessor :nodes, :links, :citations, :languages
|
9
9
|
|
10
10
|
def initialize(config, type)
|
@@ -60,10 +60,13 @@ module MarkdownSite
|
|
60
60
|
def init_pages_by_lang(lang=nil)
|
61
61
|
pages = []
|
62
62
|
files = Dir.glob(@pages_path + lang.to_s + "/**/*.md")
|
63
|
+
files.sort! do |a,b|
|
64
|
+
folder_file_comparison(a,b)
|
65
|
+
end
|
63
66
|
files.each do |file|
|
64
67
|
unless file == @pages_path + lang.to_s + "/summary.md"
|
65
68
|
unless file.index("hls_")
|
66
|
-
page = MarkdownExtension::Page.new(file, self)
|
69
|
+
page = MarkdownExtension::Page.new(file, self, lang)
|
67
70
|
pages << page
|
68
71
|
gen_references(page.item_name , page.markdown)
|
69
72
|
end
|
@@ -72,6 +75,24 @@ module MarkdownSite
|
|
72
75
|
return pages
|
73
76
|
end
|
74
77
|
|
78
|
+
def folder_file_comparison(a,b)
|
79
|
+
a_array = a.split("/")
|
80
|
+
b_array = b.split("/")
|
81
|
+
if a_array.length == 1
|
82
|
+
if b_array.length == 1
|
83
|
+
return a<=>b
|
84
|
+
else
|
85
|
+
return 1
|
86
|
+
end
|
87
|
+
else
|
88
|
+
if a_array[0]==b_array[0]
|
89
|
+
return folder_file_comparison(a_array[1..-1].join("/"),b_array[1..-1].join("/"))
|
90
|
+
else
|
91
|
+
return a_array[0]<=>b_array[0]
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
75
96
|
def pages(lang=nil)
|
76
97
|
if @pages
|
77
98
|
return @pages
|
@@ -211,6 +232,11 @@ module MarkdownSite
|
|
211
232
|
end
|
212
233
|
|
213
234
|
def generate_index
|
235
|
+
if @languages
|
236
|
+
template = MarkdownSite::RootTemplate.new(self)
|
237
|
+
template.generate()
|
238
|
+
else
|
239
|
+
end
|
214
240
|
end
|
215
241
|
|
216
242
|
def generate_pages
|
@@ -1,7 +1,10 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
1
3
|
module MarkdownSite
|
2
4
|
class PageTemplate < Template
|
3
5
|
def initialize(site)
|
4
6
|
super(site)
|
7
|
+
@summary_page = {}
|
5
8
|
end
|
6
9
|
|
7
10
|
def add_page(page)
|
@@ -17,7 +20,50 @@ module MarkdownSite
|
|
17
20
|
end
|
18
21
|
end
|
19
22
|
|
23
|
+
def get_summary_html(lang=nil, dir=nil)
|
24
|
+
if @summary_page[lang] == nil
|
25
|
+
temp_file = false
|
26
|
+
path = @site.pages_path+"/"+lang+"summary.md"
|
27
|
+
unless File.exist?(path)
|
28
|
+
temp_file = true
|
29
|
+
f = File.new(path, 'w')
|
30
|
+
parent_path = []
|
31
|
+
@site_pages.each do |page|
|
32
|
+
if page.path.include?("/")
|
33
|
+
output_str = ""
|
34
|
+
paths = page.path.split("/")
|
35
|
+
0.upto(paths.length-2) do |i|
|
36
|
+
if parent_path[i]
|
37
|
+
if parent_path[i] == paths[i]
|
38
|
+
output_str = output_str + " "
|
39
|
+
else
|
40
|
+
output_str = output_str + "* " + paths[i] + "\n" + " "*(i+1)
|
41
|
+
parent_path[i] = paths[i]
|
42
|
+
parent_path = parent_path[0..i]
|
43
|
+
end
|
44
|
+
else
|
45
|
+
output_str = output_str + "* " + paths[i] + "\n" + " "*(i+1)
|
46
|
+
parent_path << paths[i]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
output_str = output_str + "* [" + paths[-1] + "](#{page.path}.html)\n"
|
50
|
+
f.puts(output_str)
|
51
|
+
else
|
52
|
+
f.puts("* [#{page.path}](#{page.path}.html)\n")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
f.close
|
56
|
+
end
|
57
|
+
@summary_page[lang] = MarkdownExtension::Summary.new(@site_config, lang)
|
58
|
+
File.delete(path) if temp_file
|
59
|
+
return @summary_page[lang].html(dir)
|
60
|
+
else
|
61
|
+
return @summary_page[lang].html(dir)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
20
65
|
def generate(site_pages, lang=nil)
|
66
|
+
@site_pages = site_pages
|
21
67
|
template = Liquid::Template.parse(File.read(@site_config.pages_template))
|
22
68
|
page_count = (site_pages.size / 20) + 1
|
23
69
|
1.upto(page_count) do |page_number|
|
@@ -37,11 +83,19 @@ module MarkdownSite
|
|
37
83
|
f.close
|
38
84
|
end
|
39
85
|
template = Liquid::Template.parse(File.read(@site_config.page_template))
|
86
|
+
default_lang = @site_config.languages.first[1]
|
40
87
|
site_pages.each do |page|
|
41
|
-
|
88
|
+
if page.path.include?("/")
|
89
|
+
dir = "#{@site_config.publish_dir}/#{lang}#{page.path.split("/")[0..-2].join("/")}"
|
90
|
+
FileUtils.mkdir_p(dir)
|
91
|
+
end
|
92
|
+
filename = "#{@site_config.publish_dir}/#{lang}#{page.path}.html"
|
42
93
|
f = File.new(filename, "w")
|
43
94
|
f.puts template.render(
|
44
95
|
'config'=>{'title'=>@site_config.title},
|
96
|
+
'default_lang'=>default_lang,
|
97
|
+
'languages' => @site.languages,
|
98
|
+
'summary_html' => get_summary_html(lang, page.path.split("/")[0..-2].join("/")),
|
45
99
|
'page_title' => page.item_name,
|
46
100
|
'page_html' => page.html)
|
47
101
|
f.close
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module MarkdownSite
|
2
|
+
class RootTemplate < Template
|
3
|
+
def initialize(site)
|
4
|
+
super(site)
|
5
|
+
end
|
6
|
+
def generate()
|
7
|
+
template = Liquid::Template.parse(File.read(@site_config.root_template))
|
8
|
+
default_path = @site_config.languages.first[0]
|
9
|
+
f = File.new(@site_config.publish_dir + "/index.html", "w")
|
10
|
+
f.puts template.render(
|
11
|
+
'url'=>"#{default_path}/index.html"
|
12
|
+
)
|
13
|
+
f.close
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module MarkdownSite
|
2
|
-
Version = '0.0.
|
3
|
-
end
|
2
|
+
Version = '0.0.3'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markdown_site
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zhuang Biaowei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tomlrb
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- lib/markdown_site/templates/Knowledge_graph_template.rb
|
67
67
|
- lib/markdown_site/templates/journal_template.rb
|
68
68
|
- lib/markdown_site/templates/page_template.rb
|
69
|
+
- lib/markdown_site/templates/root_template.rb
|
69
70
|
- lib/markdown_site/version.rb
|
70
71
|
homepage: https://github.com/markdown-world/markdown_site
|
71
72
|
licenses:
|