-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrelease.sh
More file actions
67 lines (51 loc) · 2.06 KB
/
release.sh
File metadata and controls
67 lines (51 loc) · 2.06 KB
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
#!/bin/bash
set -o errexit
rm -rf ./release_web
mkdir ./release_web
rm -rf ./tar_tmp
mkdir -p ./tar_tmp/tutorial
cp -r Tutorial*/ ./tar_tmp/tutorial
cp -r figures/ ./tar_tmp/tutorial
cd ./tar_tmp
tar -zcf tutorial.tar.gz tutorial/
cd ..
mv ./tar_tmp/tutorial.tar.gz ./release_web
rm -rf ./tar_tmp
cp -r ./figures ./release_web
cp -r Tutorial*/ ./release_web
rm -rf ./release_pdf
mkdir -p ./release_pdf/tutorials/
process_directory() {
local dir="$1"
echo "Entering directory: $dir"
find "$dir" -maxdepth 1 -type f -name "*.ipynb" | while read -r file; do
mkdir -p "./release_web/${dir}"
html_file="${file%.ipynb}.html"
pdf_file="${file%.ipynb}.pdf"
jupyter nbconvert --to html "$file"
google-chrome --no-sandbox --headless --print-to-pdf="${pdf_file}" --no-pdf-header-footer --virtual-time-budget=10000 "$html_file"
cp "${file}" "./release_web/${dir}"
mv "${html_file}" "./release_web/${dir}"
mv "${pdf_file}" "./release_pdf/tutorials/"
done
}
export -f process_directory
# 把每个Tutorial下的文件转为html和pdf
find . -maxdepth 1 -type d -name "Tutorial*" | parallel process_directory
# 把根目录下的md文件转为html
python release_md.py
# 把根目录下的html文件转为pdf
find ./release_web/ -maxdepth 1 -type f -name "*.html" | while read -r html_file; do
pdf_file="${html_file%.html}.pdf"
google-chrome --no-sandbox --headless --print-to-pdf="${pdf_file}" --no-pdf-header-footer --virtual-time-budget=10000 "$html_file"
mv "${pdf_file}" "./release_pdf/"
done
# PDF 合并
find "./release_pdf/" -maxdepth 1 -type f -name "*.pdf" | while read -r pdf_file; do
# 获取排序后的教程 PDF 文件列表,存储在数组 tutorial_pdfs 中
mapfile -t tutorial_pdfs < <(find "./release_pdf/tutorials/" -maxdepth 1 -type f -name "*.pdf" | sort -V)
# 使用 pdftk 合并 pdf_file 和排序后的教程 PDF 文件
pdftk "${pdf_file}" "${tutorial_pdfs[@]}" cat output "${pdf_file}.merge.pdf"
rm -rf "${pdf_file}"
mv "${pdf_file}.merge.pdf" "${pdf_file}"
done