Solve conflicts between still-open pull and master branch

The version in previous pull by Lidienfu contains older version of Ch.21, 22, so all commits (including newest one) cannot be merged.
I just solve these conflicts, fix some typo and hyperlink then pull again.