开发笔记
开发之笔记篇
这里主要放一些教程类的笔记。
全栈网络工程师 学习之路
用github page jekyll 建博客
setup 就不写啦,GitHub的help sheet已经很详细了。主要在这分享自定义的内容。
[2020-04-10]
Customize CSS
Jekyll的theme会不断地自动更新所以,如果我们要自定义CSS,Layout,Javascript的话,我们得先把它的默认自动更新去掉。方法也很简单:
Check the “Overriding theme defaults” section (Jekyll document)
(这里我是在mac上做的,windows的朋友请看上面的链接吧。)
得先用bash命令在你的网页的根目录下调用:
bundle info --path minima
或者
bundle show minima
查看它存放默认的 _layouts _includes _scss
等文件夹的目录。然后去到目标目录把里面的内容复制回网页的根目录下,这样,它以后就不会自动更新theme啦。
完成这一步后,在根目录下,打开 asset 里的 main.scss
文件,用这个覆盖里面的内容:
---
---
@import "minima";
来源:Github help
然后在最后面另起一行编辑自定义的css就可以啦!
自定义 Javascript + mini map
过几天再写!
CSS header title marker 小标题前面的特殊标标:
Python 笔记
Regular Express 正规表达
finditer
import re
for i in re.finditer('Pattern', 'TEXT'):
# <re.Match object; span=(198, 205), match='</font>'>
i
i.start()
i.end()
BeautifulSoup
Find Search 查找
from bs4 import BeautifulSoup
html = """
<div>something 1</div>
<div>something 2
<p> else 3 </p>
And here 4
</div>
<div class='magical'>hi there 5</div>
<p>ok 6</p>
"""
soup = BeautifulSoup(html, 'html.parser')
# or
soup = BeautifulSoup(html, 'lxml')
所有的tag:
# 5 - 'html.parser'
len(soup.find_all())
# 7 - 'lxml'
len(soup.find_all())
注意用两个parser, 结果不一样, 在这个例子 lxml 会在根目录加<html>和 <body>两个additional的 parent tag。
注意, tag是指所有的tags, 即
` <div>something 2 <p> else 3 </p> And here 4 </div> `
` <p> else 3 </p> `
是两个分开独立的tag, 它们都会在 find_all() 里返回。
unwrap
remove with children
直接替换, 没有返回值, WithChildren 是保留Children的意思
for match in soup.find_all('div'):
match.replaceWithChildren()
"""
something 1
something 2
<p> else 3 </p>
And here 4
hi there 5
<p>ok 6</p>
"""
extract
不保留Children 直接用 空行代替
for match in soup.find_all('div'):
# match.replaceWithChildren()
match.extract()
print(soup)
"""
<p>ok 6</p>
"""
所以这是一个非常危险的命令, 比如说下面这个例子:
```python
soup = BeautifulSoup(html, 'html.parser')
for match in soup.find_all():
if '6' in match.get_text():
match.extract()
print(soup)
"""
<div>something 1</div>
<div>something 2
<p> else 3 </p>
And here 4
</div>
<div class="magical">hi there 5</div>
"""
把含有6的tag给删除了。
如果我们这次用 ‘lxml’ 作为 parser 那最后我们会得到一个空的result
因为 lxml多了两个root tag, 然后第一次loop 就把整个文件全部去掉了, 除非我们可以去改这个loop的顺序。
所以所有的remove命令, 用之前都要很确定这个tag是不是我们想要的目标。
2021上半年
看自己的电脑用的啥显卡
lspci | grep ' VGA '
开启/关闭 local mongo server
brew services start mongodb-community
brew services stop mongodb-community
https://medium.com/@nrk25693/how-to-add-your-conda-environment-to-your-jupyter-notebook-in-just-4-steps-abeab8b8d084
往jupyter 增加kernal
python -m ipykernel install --user --name=firstEnv
即使浏览器关了, 数据还是可以保存在本地
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage#storing_simple_data_%E2%80%94_web_storage
find . -name "fileYouWantToFind" 2> /dev/null
把报错隐藏