点这里下载。
我老是忘记 HTML 编辑的基础东西,所以为了让生活轻松一点,我先列出一些有用的代码,以及我的模板页面之类东西的位置:
HTML 给每个条目用标签,比如一个段落或一个按钮,所以我列出编辑页面时最常用的标签:
PS:打开标签要用 <some tag inside here>,关闭标签则用 </same tag inside here>
<p> 元素,就是用来创建一个段落<button> 元素,就是用来创建一个按钮,像这样 <a href="replace with the address"> replace with content</a> 创建一个像 这个 的链接,带你到另一个页面。<p class="pic"><img src="path/path/image.jpg" alt="Description of image"></p> 给页面加一张图片,像下面这些<pre class="prettyprint linenums">stuff inside here</pre> 会让它看起来像终端,像这样:
stuff inside here

为了大致了解我的网站会是什么样子,我去了 2016 Fab Academy 学生档案,看看别人做了什么,还用了随机学生按钮。

看了几个页面后,我找到了 Yuji OKI 的页面,它把我引向了 Massimo Menichinelli 的 Fab Academy Template。
在 GitHub 上,我把 Massimo 的模板页面仓库克隆到我的硬盘。然后把它里面的内容复制到一个以我名字命名的目录。
我选择使用的代码编辑器是 Sublime_text3 和 Brackets。
Sublime 很适合写代码、对比(diff)和合并(merge)两段代码。我特别喜欢用插件 "Sublimerge3"。它可以让我比较 2 个文件,然后合并部分代码。
大多数时候,我就在那里写 HTML。Brackets 的一大功能是它会把你写的东西实时更新到浏览器页面里。这样每个修改都能看到,不用刷新。
要在 macOS 上安装它们,我只需在终端里运行以下命令:
$ brew install --cask sublime-text
$ brew install --cask brackets
CSS 让你给 HTML 设置样式。这可以用 3 种方式完成:内联、内部和外部。
因为当前模板用的是外部方式,而且这非常省时间,所以我就用了它。在我网站的一些地方,由于对 CSS 的工作原理理解不够,我可能用了内联样式。
外部样式文件是 bootstrap.css 和 fabacademy.css。这些文件在每个 HTML 文件开头的 <head> 部分被引用。
到目前为止,我只改了几个设置来得到现在的样子,它们都在 fabacademy.css 文件里:
在 bootstrap.css 里我也做了一些修改,如下所示:
background: black;,背景改成了黑色 text-align: justify;
font-family: Menlo, 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', Monaco, Consolas, monospace;
color: green;
vertical-align: center;
警告: center 不是 vertical-align 的有效值,所以浏览器会忽略那一行。正确的值是 middle。
因为我对 HTML 编辑或 CSS 几乎一无所知,为了在上述修改之前更好地理解 HTML,我看了 Massimo 关于 HTML 和 CSS 的讲座。

我也用了 w3schools.com 上的 HTML 参考。

目前文件夹结构相当简单,还需要整理一下。
/ 文件夹里。
练习或周次放在按对应周数命名的 HTML 文件里,例如 week01.html、week01b.html。因为我得把这个网站适配到当前 2018 Fab Academy 的要求,我决定通过在文件名前面加上年份来区分文件,例如 2018week01.html
/media
这包括这样的文件:STL、PNG、JPG、MP4、ZIP 等等……
/bootstrap
当前文件夹结构
为了节省服务器空间,也让网站加载更快,我们需要经常确认没有漏掉大的未压缩图片和视频文件。
sudo apt install ncdu

ncdu
ncdu 会打开,用上下箭头和回车键就能浏览你的目录。

ncdu 会把最大的文件排在前面,并给最大的文件夹或文件显示更多的井号字符 "#"。

在这个例子里,最大的文件是我最终项目草图的一个视频文件。
对于视频文件,我们会用 ffmpeg。
sudo apt install ffmpeg
ffmpeg -i input_video -vcodec libx264 -b:v 1000k -vf scale=-2:720 -an output_video.mp4
上面的代码应该能给你一个没有音频的 720p 视频。更多例子可以看 Neil 的 ffmpeg 速查表。
我用一个叫 Chocolatey 的包管理器来安装一些 Windows 软件。
它的工作原理和 apt 类似,不过是给 Windows 用的。
choco install gimp








首先,我用的是 macOS。考虑到这一点,而且有很多可能的终端应用要安装,有个 Brew 很有用。它帮助完成在终端和桌面上需要做的所有安装。
要安装它,打开终端并运行:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
警告: Homebrew 已经停用了这个 Ruby 安装器。现在来自 brew.sh 的安装命令是 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。
接着,安装 Cask。它帮助安装桌面应用。
$ brew tap caskroom/cask
警告: brew tap caskroom/cask 不再有效。Cask 现在已经内置在 Homebrew 里,所以跳过这一步,直接用 brew install --cask <app> 安装桌面应用。
接着,安装 GitHub Desktop,它也会包含 Git。
$ brew install --cask github
现在网站已经在本地搭好了,是时候把它上传到 Fab Academy 仓库了。
要做到这一点,我得把我的公共 ssh 密钥保存到 Fab Academy 的 gitlab 网站上。这样我就能用 git 访问它,不用每次输入密码。之后,需要把你的 repo 克隆到本地硬盘才能开始在上面工作。
关于怎么做的一个信息来源是 gitlab 的 ssh 帮助。下面是我怎么做的。
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
这会生成 SSH 密钥,密钥的标签就是你放在引号里的内容
Generating public/private rsa key pair. Enter file in which to save the key (/Users/someone/.ssh/id_rsa):
Enter file in which to save the key (/Users/someone/.ssh/id_rsa): /Users/someone/.ssh/id_rsafab Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/someone/.ssh/id_rsafab. Your public key has been saved in /Users/someone/.ssh/id_rsafab.pub. The key fingerprint is: SHA256:IheXdVbB4DChb7Lyo5nJPHhNyExDKAFw5kADUTMR7MU your_email@domain.com The key's randomart image is: +---[RSA 4096]----+ |XBX= . =.++o. | | =+oE . + * . | | ..o .. + . | | . oo . | | .+ooS o | | o+..+ | | ..o. | | .oo*o | | .Bo.. | +----[SHA256]-----+
$ cat ~/.ssh/id_rsafab.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRdz+KsRwD2jgojGESZzVQNtFT0uWLGZAieKRNMy4ytav//ABgEB5eAWFTU/YfjQn2apnt+YgXC7aWfjk8Ta5/AQblQ2r/randomfakekeyrandomfakekeyrandomfakekeyrandomfakekeyrandomfakekeyrandomfakekeyrandomfakekeyrandomfakekeyrandomfakekey+rEk6OvIq5F46sKZclXdCLFbj4b9CP5wlFVWm/vq/tgeEbc701587xVCSq/7Ssqv5GNbipbq8eGElKiM4J7h1xlEJmSb06uuqk7PswQjDhV2RFHTl6sNM45qJw30y9O3WkfddFmW5nQ8roP880ef0rvvWK51nvUpmm37rIrHa+rdFpPc9U0bRZ5BhYpp/wMnVHLmZB8W/9Wf2TN0TD/H1AWjvQ1O2EJxKn7GStVGUzopCcIwt+jEjcMZRC/pRZnvEjH30FAFv5F+kYQwmsKcNuZz+qLWF8D5sjVySHSdERLJ3Y7h4ObCJt0ll5+NJ7syf1S7gCotvT910Evorq1f2jb4l6Lt1gJz7uXA03va0HhaBGTKTB0mF7NRJusotyhGWncXgNTkZOkfFQ5Ps1xAcLRmB0uMt0/3MnS7ONu/TfJVuSqYqUuuUtz9hqbke4I4JsD+X7e1a4gAvsFK/nv6Usf0m8aQ== your_email@domain.com
$ eval $(ssh-agent -s) Agent pid 9284 $ ssh-add ~/.ssh/id_rsafab Identity added: /Users/someone/.ssh/id_rsafab (/Users/someone/.ssh/id_rsafab)


git clone git@gitlab.fabcloud.org:academany/fabacademy/2018/labs/yourlab/students/yourname.git
git pull git add --all git commit -m yourmessagehere git push
这一系列命令会确保:
(这里的笔记会在课程进行中陆续添加,作为 git 命令的速查表)
git remote show origin
ssh-copy-id -i ~/.ssh/mykey.pub user@host
git remote add gitlab git@gitlab.fabcloud.org:Lucio/frankenlaser.git
git rev-list --reverse master | ruby -ne 'i ||= 0; i += 1; puts $_ if i % 1 == 0' | xargs -I{} git push gitlab +{}:refs/heads/master我想把如何创建一个新 repo 并上传到 GitHub 的说明写进来,供以后参考,尽管我自己不是这么做的
git init
git add .
git commit -m "First commit"



git remote add origin copied_address_here
git push -u origin master
这样就完成了
-ss 是剪切的起点,-t 是持续时长,不是结束时间)
ffmpeg -i videoinput.mp4 -ss 00:00:11 -t 00:00:22 -async 1 videooutput.mp4
ffmpeg -ss 00:00:00 -to 00:00:37 -i videoinput.mp4 -c copy videooutput.mp4
ffmpeg -i input.mp4 -ss 00:00:00.000 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.000 output.gif
ffmpeg -i input.mp4 -vcodec libx264 -crf 25 -preset medium -vf scale=-2:360 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 output.mp4
for i in *.mp4; do ffmpeg -i "$i" -vcodec libx264 -crf 25 -preset medium -vf scale=-2:360 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 "./1/${i%.*}.mp4"; done
ffmpeg -i input.mp4 -vcodec libx264 -crf 25 -preset medium -vf scale=-2:360 -an output.mp4
(后来更正:这个命令当时还有音频选项 -q:a 4 -ar 48000 -ac 2,当 -an 去掉音频时它们不起作用,所以我把它们去掉了。)
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4