tuack 导出为更好的 lemon 格式(makefile)
tuack.dump 的 lemonlime 格式只能导出数据和 .cdf 文件。这里编写了一个 makefile 文件帮助导出带有数据、样例、std、题面、题解的更好的 lemonlime 格式文件夹。
注意要在比赛日目录下运行 make,并预先创建 .targets 文件夹。
PS = coprime conv binary # 题目名称需要自己写
PWD = $(shell pwd)
DAY = $(shell basename $$PWD)
ALL: release
.targets/lemon: $(wildcard $(PS)/data/*) $(addsuffix /conf.yaml, $(PS))
python -m tuack.dump lemon -s
rm -rf lemon/data
touch $@
.targets/statement-ccc-md: $(addsuffix /statement/zh-cn.md, $(PS))
python -m tuack.ren ccc-md -i .. -p $(DAY) -s
touch $@
.targets/statement-noi:$(addsuffix /statement/zh-cn.md, $(PS))
python -m tuack.ren noi -i .. -p $(DAY) -s
touch $@
.targets/release-data: $(wildcard $(PS)/data/*)
mkdir -p release/data
for p in $(PS); do ln -snf $(PWD)/$$p/data release/data/$$p; done
touch $@
.targets/release-down: $(wildcard $(PS)/down/*)
mkdir -p release/down
for p in $(PS); do ln -snf $(PWD)/$$p/down release/down/$$p; done
touch $@
release/$(DAY).cdf: .targets/lemon
cp lemon/$(DAY).cdf $@
release/statement.md: .targets/statement-ccc-md
> $@
for p in $(PS); do \
echo "# $$p" >> $@; \
cat ../statements/ccc/$(DAY)/$$p.md >> $@; \
echo >> $@; \
echo >> $@; \
done
release/solution.md: $(addsuffix /solution/zh-cn.md, $(PS))
echo > $@
for p in $(PS); do \
cat $$p/solution/zh-cn.md >> $@; \
done
release/$(DAY).pdf: .targets/statement-noi
cp ../statements/noi/$(DAY).pdf $@
.targets/release-std: $(addsuffix /yuki/std.cpp, $(PS))
mkdir -p release/source/std
for p in $(PS); do \
cp $$p/yuki/std.cpp release/source/std/$$p.cpp; \
done # 注意,每个人的 std 的位置都不一样,自己改一下
touch $@
release: .targets/release-down .targets/release-data release/$(DAY).cdf release/$(DAY).pdf release/statement.md release/solution.md .targets/release-std
.PHONY: clean
clean:
rm -rf release lemon ../statements/ccc/$(DAY) ../statements/noi/$(DAY).pdf .targets/*
本文来自博客园,作者:caijianhong,转载请注明原文链接:https://www.cnblogs.com/caijianhong/p/18777656
浙公网安备 33010602011771号