开发之笔记篇

这里主要放一些教程类的笔记。

全栈网络工程师 学习之路

教材: Link 利用github-pages建立个人博客

Link 全栈增长工程师实战 By Phodal

Link git same as above

用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 小标题前面的特殊标标:

W3C CSS Entities

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')

‘html.parser’ ; ‘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

把报错隐藏