markdown_site 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
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:
|