forked from jerryscript-project/jerryscript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate-webpage.sh
executable file
·119 lines (101 loc) · 4.84 KB
/
update-webpage.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/bash
# Copyright JS Foundation and other contributors, http://js.foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ $# -ne 1 ]; then
echo "Please, specify your gh-pages clone directory: update-webpage <gh-pages clone dir>"
exit 1
fi
gh_pages_dir=$1
docs_dir=`dirname $(readlink -f $0)`"/../docs"
GETTING_STARTED_MD="00.GETTING-STARTED.md"
CONFIGURATION_MD="01.CONFIGURATION.md"
API_REFERENCE_MD="02.API-REFERENCE.md"
API_EXAMPLES_MD="03.API-EXAMPLE.md"
INTERNALS_MD="04.INTERNALS.md"
PORT_API_MD="05.PORT-API.md"
REFERENCE_COUNTING_MD="06.REFERENCE-COUNTING.md"
DEBUGGER_MD="07.DEBUGGER.md"
CODING_STANDARDS_MD="08.CODING-STANDARDS.md"
EXT_REFERENCE_ARG_MD="09.EXT-REFERENCE-ARG.md"
EXT_REFERENCE_HANDLER_MD="10.EXT-REFERENCE-HANDLER.md"
EXT_REFERENCE_AUTORELEASE_MD="11.EXT-REFERENCE-AUTORELEASE.md"
EXT_REFERENCE_MODULE_MD="12.EXT-REFERENCE-MODULE.md"
DEBUGGER_TRANSPORT_MD="13.DEBUGGER-TRANSPORT.md"
EXT_REFERENCE_HANDLE_SCOPE_MD="14.EXT-REFERENCE-HANDLE-SCOPE.md"
MODULE_SYSTEM_MD="15.MODULE-SYSTEM.md"
MIGRATION_GUIDE_MD="16.MIGRATION-GUIDE.md"
declare -A titles
titles[$GETTING_STARTED_MD]="Getting Started"
titles[$CONFIGURATION_MD]="Configuration"
titles[$API_REFERENCE_MD]="API Reference"
titles[$API_EXAMPLES_MD]="API Examples"
titles[$INTERNALS_MD]="Internals"
titles[$PORT_API_MD]="Port API"
titles[$REFERENCE_COUNTING_MD]="Reference Counting"
titles[$DEBUGGER_MD]="Debugger"
titles[$CODING_STANDARDS_MD]="Coding Standards"
titles[$EXT_REFERENCE_ARG_MD]="'Extension API: Argument Validation'"
titles[$EXT_REFERENCE_HANDLER_MD]="'Extension API: External Function Handlers'"
titles[$EXT_REFERENCE_AUTORELEASE_MD]="'Extension API: Autorelease Values'"
titles[$EXT_REFERENCE_MODULE_MD]="'Extension API: Module Support'"
titles[$DEBUGGER_TRANSPORT_MD]="'Debugger Transport'"
titles[$EXT_REFERENCE_HANDLE_SCOPE_MD]="'Extension API: Handle Scope'"
titles[$MODULE_SYSTEM_MD]="'Module System (EcmaScript2015)'"
titles[$MIGRATION_GUIDE_MD]="Migration Guide"
for docfile in $docs_dir/*.md; do
docfile_base=`basename $docfile`
permalink=`echo $docfile_base | cut -d'.' -f 2 | tr '[:upper:]' '[:lower:]'`
missing_title=`echo $permalink | tr '-' ' '`
# the first three documents belong to the navigation bar
category=$([[ $docfile_base =~ ^0[0-3] ]] && echo "navbar" || echo "documents")
# generate appropriate header for each *.md
echo "---" > $gh_pages_dir/$docfile_base
echo "layout: page" >> $gh_pages_dir/$docfile_base
echo "title: ${titles[$docfile_base]:-$missing_title}" >> $gh_pages_dir/$docfile_base
echo "category: ${category}" >> $gh_pages_dir/$docfile_base
echo "permalink: /$permalink/" >> $gh_pages_dir/$docfile_base
echo "---" >> $gh_pages_dir/$docfile_base
echo >> $gh_pages_dir/$docfile_base
echo "* toc" >> $gh_pages_dir/$docfile_base
echo "{:toc}" >> $gh_pages_dir/$docfile_base
echo >> $gh_pages_dir/$docfile_base
# the file itself removing underscores inside links
gawk \
'
!/\[.*\]\(#/ {
print $0
}
/\[.*\]\(#/ {
link_start_pos = index($0, "](#");
line_beg = substr($0, 1, link_start_pos+2);
line_remain = substr($0, link_start_pos+3);
link_end_pos = index(line_remain, ")")
link = substr(line_remain, 1, link_end_pos-1);
line_end = substr(line_remain, link_end_pos)
printf "%s%s%s\n", line_beg, link, line_end
}
' $docfile >> $gh_pages_dir/$docfile_base
# fix image links
sed -i -r -e 's/^!\[.*\]\(/&{{ site.github.url }}\//' $gh_pages_dir/$docfile_base
sed -i -r -e 's/^!\[.*\]\(\{\{ site\.github\.url \}\}\/img.*$/&{: class="thumbnail center-block img-responsive" }/' $gh_pages_dir/$docfile_base
# turn filenames into permalinks
sed -i -r -e 's/docs\/[0-9]+\.(.*)\.md/\L\1/g' $gh_pages_dir/$docfile_base
# replace span tags to div
sed -i 's/<span class=/<div class=/g' $gh_pages_dir/$docfile_base
sed -i 's/<\/span>/<\/div>/g' $gh_pages_dir/$docfile_base
# remove table header separators
sed -i '/^| ---/d' $gh_pages_dir/$docfile_base
# update images
cp -Ru $docs_dir/img $gh_pages_dir
done