小寄巧——给洛谷题单快速生成一份目录
以此题单为例,首先我们在浏览器中打开,F12 切换到 Console,输入 document.querySelectorAll(".title a")
,然后复制返回的所有内容,粘贴到 VSCode 里,内容大致如下:
NodeList(15) [ a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, a.title.color-default, … ]
0: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2002" target="_blank" colorscheme="default" title="Hello,World!" data-v-b5709dda="">
1: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2025" target="_blank" colorscheme="default" title="输出字符菱形" data-v-b5709dda="">
2: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1000" target="_blank" colorscheme="default" title="超级玛丽游戏" data-v-b5709dda="">
3: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1001" target="_blank" colorscheme="default" title="A+B Problem" data-v-b5709dda="">
4: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2005" target="_blank" colorscheme="default" title="字符三角形" data-v-b5709dda="">
5: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5703" target="_blank" colorscheme="default" title="【深基2.例5】苹果采购" data-v-b5709dda="">
6: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5704" target="_blank" colorscheme="default" title="【深基2.例6】字母转换" data-v-b5709dda="">
7: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5705" target="_blank" colorscheme="default" title="【深基2.例7】数字反转" data-v-b5709dda="">
8: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5706" target="_blank" colorscheme="default" title="【深基2.例8】再分肥宅水" data-v-b5709dda="">
9: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5708" target="_blank" colorscheme="default" title="【深基2.习2】三角形面积" data-v-b5709dda="">
10: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5707" target="_blank" colorscheme="default" title="【深基2.例12】上学迟到" data-v-b5709dda="">
11: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2029" target="_blank" colorscheme="default" title="大象喝水" data-v-b5709dda="">
12: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1425" target="_blank" colorscheme="default" title="小鱼的游泳时间" data-v-b5709dda="">
13: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1421" target="_blank" colorscheme="default" title="小玉买文具" data-v-b5709dda="">
14: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P3954" target="_blank" colorscheme="default" title="[NOIP2017 普及组] 成绩" data-v-b5709dda="">
length: 15
<prototype>: NodeListPrototype { item: item(), keys: keys(), values: values(), … }
注意由于未知原因,一些浏览器 Console 复制出来的空行会有零宽字符(U+200B),这时候只需要光标放在空行处直接 Ctrl+F 搜索,如果搜到了说明有零宽字符,直接替换删除即可。
删掉首末无用的消息,只留下含有链接的行:
0: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2002" target="_blank" colorscheme="default" title="Hello,World!" data-v-b5709dda="">
1: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2025" target="_blank" colorscheme="default" title="输出字符菱形" data-v-b5709dda="">
2: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1000" target="_blank" colorscheme="default" title="超级玛丽游戏" data-v-b5709dda="">
3: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1001" target="_blank" colorscheme="default" title="A+B Problem" data-v-b5709dda="">
4: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2005" target="_blank" colorscheme="default" title="字符三角形" data-v-b5709dda="">
5: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5703" target="_blank" colorscheme="default" title="【深基2.例5】苹果采购" data-v-b5709dda="">
6: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5704" target="_blank" colorscheme="default" title="【深基2.例6】字母转换" data-v-b5709dda="">
7: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5705" target="_blank" colorscheme="default" title="【深基2.例7】数字反转" data-v-b5709dda="">
8: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5706" target="_blank" colorscheme="default" title="【深基2.例8】再分肥宅水" data-v-b5709dda="">
9: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5708" target="_blank" colorscheme="default" title="【深基2.习2】三角形面积" data-v-b5709dda="">
10: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P5707" target="_blank" colorscheme="default" title="【深基2.例12】上学迟到" data-v-b5709dda="">
11: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/B2029" target="_blank" colorscheme="default" title="大象喝水" data-v-b5709dda="">
12: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1425" target="_blank" colorscheme="default" title="小鱼的游泳时间" data-v-b5709dda="">
13: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P1421" target="_blank" colorscheme="default" title="小玉买文具" data-v-b5709dda="">
14: <a class="title color-default" data-v-0640126c="" data-v-beeebc6e="" href="/problem/P3954" target="_blank" colorscheme="default" title="[NOIP2017 普及组] 成绩" data-v-b5709dda="">
在 VSCode 中(或者其他正则表达式工具)进行替换操作:
查找
.*href="/problem/([A-Z][0-9]+)" target="_blank" colorscheme="default" title="(.*)" .*
替换为
- [$1 $2](https://www.luogu.com.cn/problem/$1)
接下来就大功告成:
- [B2002 Hello,World!](https://www.luogu.com.cn/problem/B2002)
- [B2025 输出字符菱形](https://www.luogu.com.cn/problem/B2025)
- [P1000 超级玛丽游戏](https://www.luogu.com.cn/problem/P1000)
- [P1001 A+B Problem](https://www.luogu.com.cn/problem/P1001)
- [B2005 字符三角形](https://www.luogu.com.cn/problem/B2005)
- [P5703 【深基2.例5】苹果采购](https://www.luogu.com.cn/problem/P5703)
- [P5704 【深基2.例6】字母转换](https://www.luogu.com.cn/problem/P5704)
- [P5705 【深基2.例7】数字反转](https://www.luogu.com.cn/problem/P5705)
- [P5706 【深基2.例8】再分肥宅水](https://www.luogu.com.cn/problem/P5706)
- [P5708 【深基2.习2】三角形面积](https://www.luogu.com.cn/problem/P5708)
- [P5707 【深基2.例12】上学迟到](https://www.luogu.com.cn/problem/P5707)
- [B2029 大象喝水](https://www.luogu.com.cn/problem/B2029)
- [P1425 小鱼的游泳时间](https://www.luogu.com.cn/problem/P1425)
- [P1421 小玉买文具](https://www.luogu.com.cn/problem/P1421)
- [P3954 [NOIP2017 普及组] 成绩](https://www.luogu.com.cn/problem/P3954)
效果:
之后也可以用 Python 写个工具使其更加自动化。