Skip to content

Commit 49edbf8

Browse files
authored
Merge pull request #3035 from znz/markdown/add-manual-tree
manual/: Markdown ソースツリーの追加とビルドの切り替え
2 parents 1dbdecb + 99f7439 commit 49edbf8

1,266 files changed

Lines changed: 203096 additions & 50 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Gemfile.lock

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
GIT
22
remote: https://github.com/rurema/bitclust.git
3-
revision: 2a2028ac761cee63a27eb24f7b6673da4b9fbd3e
3+
revision: c7500e5e2f5d2ed765af5e81e524d7e50734829d
44
specs:
55
bitclust-core (1.4.0)
66
drb
7+
json
78
nkf
89
progressbar (>= 1.9.0, < 2.0)
910
rack
@@ -16,15 +17,16 @@ GIT
1617
GEM
1718
remote: https://rubygems.org/
1819
specs:
19-
drb (2.2.1)
20-
nkf (0.2.0)
20+
drb (2.2.3)
21+
json (2.20.0)
22+
nkf (0.3.0)
2123
progressbar (1.13.0)
22-
rack (3.1.21)
24+
rack (3.2.6)
2325
rackup (2.1.0)
2426
rack (>= 3)
2527
webrick (~> 1.8)
2628
rake (13.2.1)
27-
webrick (1.8.2)
29+
webrick (1.9.2)
2830

2931
PLATFORMS
3032
ruby

Rakefile

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,32 @@ def system(*commands)
1414
super(*commands)
1515
end
1616

17+
# ソースは manual/ の Markdown ツリー(manual/doc は manual/api から自動で取り込まれる)。
18+
# 旧 refm/ は移行ウィンドウ中の凍結ソース。旧経路でビルドしたい場合は
19+
# BITCLUST_SOURCE=refm を指定する。
1720
def generate_database(version)
1821
puts "generate database of #{version}"
1922
db = "/tmp/db-#{version}"
2023
succeeded = system("bundle", "exec",
2124
"bitclust", "--database=#{db}",
2225
"init", "version=#{version}", "encoding=UTF-8")
2326
raise "Failed to initialize BitClust database" unless succeeded
24-
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}",
25-
"update", "--stdlibtree=refm/api/src")
26-
raise "Failed to update BitClust database" unless succeeded
27-
capi_files = Dir.glob("refm/capi/src/*")
28-
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}", "--capi",
29-
"update", *capi_files)
30-
raise "Failed to update BitClust C API database" unless succeeded
27+
if ENV["BITCLUST_SOURCE"] == "refm"
28+
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}",
29+
"update", "--stdlibtree=refm/api/src")
30+
raise "Failed to update BitClust database" unless succeeded
31+
capi_files = Dir.glob("refm/capi/src/*")
32+
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}", "--capi",
33+
"update", *capi_files)
34+
raise "Failed to update BitClust C API database" unless succeeded
35+
else
36+
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}",
37+
"update", "--markdowntree=manual/api")
38+
raise "Failed to update BitClust database" unless succeeded
39+
succeeded = system("bundle", "exec", "bitclust", "--database=#{db}", "--capi",
40+
"update", "--markdowntree=manual/capi")
41+
raise "Failed to update BitClust C API database" unless succeeded
42+
end
3143
end
3244

3345
def generate_statichtml(version)
@@ -57,7 +69,7 @@ def generate_statichtml(version)
5769
raise "Failed to generate static html" unless succeeded
5870
end
5971

60-
task :default => [:check_indent_in_samplecode, :generate, :check_format]
72+
task :default => [:check_filename_case_conflicts, :check_indent_in_samplecode, :generate, :check_format]
6173

6274
namespace :generate do
6375
ALL_VERSIONS.each do |version|
@@ -151,10 +163,27 @@ task check_format: [:statichtml] do
151163
end
152164
end
153165

166+
desc 'Check file names that differ only in case'
167+
task :check_filename_case_conflicts do
168+
# 大文字小文字のみが異なるファイル名は macOS/Windows の case-insensitive な
169+
# ファイルシステムでチェックアウト不能になる(manual/api/rdoc/rdoc.lib.md の
170+
# ような .lib 回避と front matter の name: については bitclust の
171+
# doc/markdown-samples/MARKUP_SPEC.md §1.3 を参照)
172+
errors = Dir.glob('{manual,refm}/**/*')
173+
.group_by(&:downcase).values
174+
.select { |paths| paths.size > 1 }
175+
.map { |paths| "大文字小文字のみが異なるファイル名があります: #{paths.sort.join(' / ')}" }
176+
177+
unless errors.empty?
178+
puts errors
179+
fail
180+
end
181+
end
182+
154183
desc 'Check unnecessary indentation in samplecode'
155184
task :check_indent_in_samplecode do
156185
errors = []
157-
`grep -rlF '\#@samplecode' refm`.lines(chomp: true).each do |path|
186+
`grep -rlF '\#@samplecode' manual refm`.lines(chomp: true).each do |path|
158187
lines = File.read(path).lines(chomp: true)
159188
lines.each.with_index(1) do |line, lineno|
160189
next unless line.start_with?('#@samplecode')

0 commit comments

Comments
 (0)