0%

四、2024年2月更换新mac airbook 安装的记录

新版本的一些改变,需求修改的部分

  1. # - 之前必须有空行(不是很确定)
  2. img 不能有空的 “ ”,需要替换。
  3. - 换行不起作用 需要在前面加Tab;(不是很 确定)。
  4. 文章中yaml部分的Title 和文件名必须一致。
  5. > 符号前面和后面要空行。
  6. 代码块的前后标签都需要单独一行。
  7. 行内公式的用法,之前和独行公式混了,需要重新修改。
  8. ` 必须用\ 转义
  9. 多个-之间不要有空行,否则显示出来就是每个-之间都空一行。

换行的问题

参考: hexo 回车换行无效?

markdown的换行规范:

段落与换行

  1. 段落的前后必须是空行:
    空行指的是行内什么都没有,或者只有空白符(空格或制表符)
    相邻两行文本,如果中间没有空行 会显示在一行中(换行符被转换为空格).
  2. 如果需要在段落内加入换行(<br>):
    可以在前一行的末尾加入至少两个空格.
    然后换行写其它的文字.
  3. Markdown 中的多数区块都需要在两个空行之间。

markdown的规范是软回车,键盘上的回车键是硬回车。一般回车是代表换段。在markdown中,要创建段落,请使用空白行将一行或多行文本进行分隔。

问题:

mac上,之前使用hexo(19年配置的)+next皮肤,回车键就是换行符号了,用起来很丝滑。
最近hexo频繁报错,我就重新装了个最新版本,必须要加,极为难用,而且之前的也要一个一个改正,把 ,十分痛苦。
问问各位大佬,如何改为之前那种使用。

回答:

终于弄好了,尝试更改了marked,marked-i,pand.....等渲染,mathjax数学公式,捣鼓一天,全都不work,有冲突。最后将以前的package.json中的所有依赖重新安装,就和以前一样了。主要是 mathjax 的锅,加了mathjax:true后就没法自动换行了。所以建议大家图省事的话也是找一个没问题的package.json,全部无脑照着安装就行。

个人搞了好久,使用原先的kramed渲染器,回车换行倒是可以了,但数学公式很多地方显示不正常。并且kramed已经停止更新好多年了,所以决定不再用。
markdown-it支持KaTex,但对MathJax的支持不好,所以也没用。
后来还是保留了pandoc的渲染器。即使需要批量修改原先的md文件,特别是段内换行的问题比较突出。

发现在pakage.json中,renderer部分就保留了:

"hexo-renderer-ejs": "^2.0.0",
"hexo-renderer-pandoc": "^0.4.0",
"hexo-renderer-stylus": "^3.0.1",

其实就是使用了next的mathjax引擎,然后安装hexo的pandoc渲染器。

pandoc语法的几个常见注意事项:

  • 换行前加两个空格。
  • 图片使用绝对路径。
  • 标题前两个回车。
  • 把本地图片地址变为绝对路径。

使用 pandoc 渲染器 切换 hexo-renderer-pandoc 后,公式倒是能正常显示,但是图片,文本格式需要按 pandoc 的 markdown 格式修改,因此,做了批量调整:

pandoc导致历史md文件格式问题在sublime text中调整方法:

有时,我们可能需要将文件中的换行符替换为其他字符,比如英文逗号、分号等。
Sublime Text 使用正则表达式来替换文本内容非常方便。
举例,一个回车键替换成 空格+空格+回车,以实现段内换行的效果。
你可以通过以下步骤来替换:
1. 打开 Sublime Text 编辑器
2. 打开要替换的文件
3. 按下快捷键「Ctrl + H」(「Cmd + Shift + H」在 Mac 上)
4. 在「Find What」输入框中输入需要替换的字符串:\n
5. 在「Replace With」输入框中输入替换后的字符串:空格+空格+\n
6. 选择「Regular Expression」复选框 (sublime 里面的 .* 那个按钮)
7. 点击「Replace」或「Replace All」按钮进行替换
如果你需要使用正则表达式语法,例如匹配数字、单词等,请参考其它资源了解正则表达式语法。
注意事项,替换的时候因为yaml部分也增加了两个空格,导致出错,需要把yaml那些多出来的空格删除。

软件升级最大的问题,规范变了,导致历史的文章需要根据新的规范做修改。

安装完成后执行 hexo clean. 命令来清空以前生成的 HTML 文件,然后重新 hexo g -d 发布。

关于markdown换行的一篇好文章。 markdown段内换行的说明

渲染器的问题

Hexo 作为一个优秀的 Markdown 博客框架,自然也诞生了很多适用的 Markdown 渲染器,这里对比分析一下 Hexo 下几种常用的 Markdown 渲染器: hexo-renderer-marked , hexo-renderer-kramed , hexo-renderer-pandoc , hexo-renderer-markdown-it , hexo-renderer-markdown-it-plus 。

Next 提供了两个渲染引擎来显示数学方程: MathJax 和 KaTeX。要使用这个特性,您只需要选择一个渲染引擎并打开它的 enable(位于home config file)。 然后你需要安装相应的 Hexo 渲染器来完全支持数学方程式的显示。

ssh key的问题

git config --global user.name “hongyitong”
git config --global user.email “hogyuanjiao@hotmail.com”
ssh-keygen -t rsa -b 4096 -C “hogyuanjiao@hotmail.com”

  1. 查看本地是否存在SSH密钥
    命令:ls -al ~/.ssh
    如果在输出的文件列表中发现id_rsa和id_rsa.pub的存在,证明本地已经存在SSH密钥,请执行第3步

  2. 查看SSH公钥
    命令:cat /Users/电脑用户名/.ssh/id_rsa.pub
    复制打印出来的信息,在GitLab或者GitHub的SSH Keys中进行相应设置即可

  3. 警告的信息
    > You've successfully authenticated, but GitHub does not provide shell access.
    这句话其实一直存在,它只是想告诉你,github 不允许 shell 交互。仅此而已。

mac技巧

Mac用户注意了,要使用管理员权限,首先:“sudo -s”,回车,输入密码,再回车,然后:“npm install -g hexo-cli”,回车,等待下载安装即可!

参考的资料

Mac OS环境下使用Hexo搭建个人博客

三、多机搭建(更换电脑搭建)

其实简单说,就是四个部分:
1、备份
备份source文件夹(所有的MD文件都在这里);备份站点的_config.yml,主题的的_config.yml;
如果担心,可以把整个hexo目录备份下来;
2、安装
按照指引安装(其实可以按照第一次的安装来处理),只是涉及github 仓库那一部分是不需要了;
3、恢复
1)把source目录恢复覆盖;
2)两个_config.yml的内容,比较,然后把需要的部分copy到新装的文件里面替换对应内容。注意,这里不要用整个文件覆盖的模式,因为可能对应的软件的版本不一致了。
4、安装相关的插件
包括支持数学公式、置顶、搜索等等;

因为之前上传到百度网盘的MD源文件,下载之后的创建日期都变成下载那天的时间,导致之前很多没有定义date时间的都默认成下载的日期了。
花了好长时间把MD文件的date属性都加上了发布的时间。

多机部署参考:
多机更新 Hexo 博客
上文中提到的:先在电脑中的某一位置建立好 your_name.github.io 文件夹,比如 D:_name.github.io;
因为之前习惯取了hexo的名字,其实 hexo目录就是这里所谓的 youre_name.githubo.io文件夹。

一、第一次搭建过程资料

经过几天的努力,终于把个人的博客搭建得差不多了。个人的博客现在存在Github和Coding两个地方,地址分别是:
Github版
Coding版     !Coding版本因为有100M的空间限制,无法发布了!

Coding用不了之后,使用了码云Oschina,具体的设置如下(不过Oschina还有有点不稳定和刷新速度比较慢。):
Oschina版
Oschina免费版限制空间了,因为博客容量太大,无法再从github中pull过来了
码云
搭建个人免费博客:利用Hexo在码云上部署博客

在搭建过程当中,参考了以下的文档,特此记录!
如何利用GitHub Pages和Hexo快速搭建个人博客     (这个博客不知道什么原因,访问不了:()
参考一下以下几个吧:
知行合一 用 Hexo 搭建博客
Hexo+nexT主题搭建个人博客
手把手教你使用Hexo + Github Pages搭建个人独立博客

hexo同时托管到coding.net与github
如何将Hexo Blog同时发布到GitHub跟Coding上
|Hexo优化|如何向google提交sitemap(详细)

设置 Google站点管理工具 的验证字符串,用于提交 sitemap

获取 google site verification code
登录 Google Webmaster Tools,导航到验证方法,并选择 HTML Tag。将会获取到一段代码:

1
<meta name="google-site-verification" content="XXXXXXXXXXXXXXXXXXXXXXX" />

将 content 里面的 XXXXXXXXXXXXXXXXXXXXXXX 复制出来。
设置主题。编辑 站点配置,新增字段 google_site_verification。
google_site_verification: XXXXXXXXXXXXXXXXXXXXXXX

在google加了github的收录,但是在增加百度收录的时候,一直生成不了baidusitemap.xml文件。暂时放弃。(后来重启电脑就自动有了:-()
hexo干货系列:(六)hexo提交搜索引擎(百度+谷歌)

本地预览没问题,deploy后主页显示大面积空白

二、优化过程及问题

!!!!!如果本地预览没问题,部署到github有问题的话,先 hexo clean掉在重新 hexo d -g

1、搜索

因为Swiftype收费了,转向了微搜索:
NexT主题下的两种搜索服务的问题

后来简单点,直接使用了Next主题的本地搜索了,具体见下文!
Hexo博客添加站内搜索
补充一点,还需要修改主题下的_config.yml文件,把enable:false改成true

1
2
3
# Local search
local_search:
enable: true

2、数学公式

如何在Hexo中使用MathJax

3、文章发表时间显示了两遍

文章发表时间显示了两遍

4、Hexo文章置顶

Hexo文章置顶

5、如何链接站内文章

A:next或者hexo,链接站内文章的方法?
B:关于引用站内文章的链接,可以使用以下语法:

1
{% post_link markdown-learning-by-maxiang 点击这里查看这篇文章 %}

markdown-learning-by-maxiang是你的文章名称。如果文章不存在,这段代码将会被直接忽略。
点击这里查看这篇文章是该链接的标题。如果置空,则自动提取文章的标题。
ps:这个功能跟主题无关。

6、git远程库与本地联系报错:fatal: Not a git repository (or any of the parent directories): .git

在github上新建了一个仓库,然后相与本地的仓库联系起来
$ Git remote add origin https://github.com/liona329/learngit.git fatal: Not a git repository (or any of the parent directories): .git
总是报这个错
解决方法:git init
成功

7、github build出错信息会发到注册的邮箱

1
2
3
4
5
6
7
8
9
10
11
12
[hongyitong/hongyitong.github.io] Page build failure
G
GitHub <support@github.com>
今天, 16:12

The page build failed for the `master` branch with the following error:

The tag `fancybox` on line 77 in `themes/landscape/README.md` is not a recognized Liquid tag. For more information, see https://help.github.com/articles/page-build-failed-unknown-tag-error/.

For information on troubleshooting Jekyll see:

https://help.github.com/articles/troubleshooting-jekyll-builds

8、Error: Cannot find module 'hexo-util'

升级NexT主题以后,执行hexo clean,出错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
✗ hexo clean         
ERROR Script load failed: themes/next/scripts/tags/exturl.js
Error: Cannot find module 'hexo-util'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/lib/hexo/index.js:213:21)
at /Users/lisanlai/lisanlai.github.io/themes/next/scripts/tags/exturl.js:8:12
at /Users/lisanlai/lisanlai.github.io/node_modules/hexo/lib/hexo/index.js:229:12
at tryCatcher (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:502:31)
at Promise._settlePromise (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:559:18)
at Promise._settlePromise0 (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:604:10)
at Promise._settlePromises (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:683:18)
at Promise._fulfill (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:628:18)
at Promise._resolveCallback (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:423:57)
at Promise._settlePromiseFromHandler (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:514:17)
at Promise._settlePromise (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:559:18)
at Promise._settlePromise0 (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:604:10)
at Promise._settlePromises (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:683:18)
at Promise._fulfill (/Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:628:18)
at /Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/bluebird/js/release/nodeback.js:42:21
at /Users/lisanlai/lisanlai.github.io/node_modules/hexo/node_modules/hexo-fs/node_modules/graceful-fs/graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)
INFO Deleted database.

解决办法:重新安装hexo-util模块

1
npm install -- save-dev hexo-util

9、HEXO-NexT的Local Search转圈圈的问题

可以在浏览器中输入 博客网址:

1
http://localhost:4000/search.xml 

其中 search.xml是搜索的内容文档,在hexo 对应的pubic目录下。

如果有错,浏览器会报出具体的错误。

可以找到引起错误的md文件,然后在search.xml文档中找到对应的段落,可以使用https://www.xmlvalidation.com/ 来验证对应段落的具体错误原因。
具体的文档可以见:https://guahsu.io/2017/12/Hexo-Next-LocalSearch-cant-work/

10、本地预览没问题deploy后主页显示大面积空白

本地预览没问题,deploy后主页显示大面积空白

11、Hexo 博客无法搜索的终极解决方法

http://www.sqlsec.com/2017/12/hexosearch.html

12、文章添加阅读次数,访问量等

Hexo+Next主题 文章添加阅读次数,访问量等:
https://blog.csdn.net/xr469786706/article/details/78166227
hexo博客解决不蒜子统计无法显示问题:
https://www.jianshu.com/p/fd3accaa2ae0

13、解决MacOS升级后出现xcrun: error: invalid active developer path, missing xcrun的问题

今天升级macOS High Sierra,终端里使用git的时候,弹出一行莫名其妙的错误:

1
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 

解决方法,重装xcode command line:

1
xcode-select --install 

如果没有解决问题,执行以下命令

1
sudo xcode-select -switch / 

黑格尔说过,人类从历史中得到的教训就是:人类从来不记取历史教训。
比较了好多关于清朝历史方面的书,《正说清朝十二帝》因为丰富的彩色插图吸引了我。书中每个章节根据内容,配有各类的图片,包括人物画像、物品图、景色图、书法图、名画等等。
但可能是正说的缘故,书中文字还是比较晦涩,故事也比较平淡,缺少了《明朝那些事儿》的诙谐、有趣感。
清朝处在一个特殊的时代,中国已经从盛唐时期的万国之国,没落成了落后挨打的一方。
当时,西方主要的国家,英国、法国、德国、美国,都走上了资本主义发展的道路,这些国家对内努力发展工业,提高科学技术,对外进行殖民扩张。近邻日本也实行了明治维新,实现了国家的现代化。而清朝还沉浸在“天朝统御万国”、“天朝物产丰盛,无所不有,原不藉外夷货物,一通有无”的幻境中。在强敌面前,清朝皇帝采取“率祖旧章”、“持盈保泰”的保守态度,导致国家一步步滑向了灭国的境地。

阅读全文 »

一本不错的信息处理数学原理科普书。一些复杂的信息问题、工程问题,经作者之手,把背后的数学原理通过简单的形式展示出来,让普通读者明白到了数学解决问题的能力,体会到了数学的美。
这本书,背后也道出了一个道理,那就是基础数学理论研究对计算机科学的发展能起到非常重要的作用。
例如,书中提到,布尔代数,在19世纪布尔提出的80多年时间里,一直默默无闻,在实际生活中也没有起到任何作用。直到1938年香农提出在电路开关中应用布尔代数来处理之后,才开始在数字电路方面得到了广泛应用。

布尔(George Boole) 是十九世纪英国一位小学数学老师。他生前没有人认为他是数学家。布尔在工作之余,喜欢阅读数学论著、思考数学问题。1854 年“思维规律” (An Investigation of the Laws of Thought, on which are founded the Mathematical Theories of Logic and Probabilities)一书,第一次向人们展示了如何用数学的方法解决逻辑问题。

读者也许会问这么简单的理论能解决什么实际问题。布尔同时代的数学家们也有同样的问题。事实上在布尔代数提出后80 多年里,它确实没有什么像样的应用,直到 1938 年香农在他的硕士论文中指出用布尔代数来实现开关电路,才使得布尔代数成为数字电路的基础。所有的数学和逻辑运算,加、减、乘、除、乘方、开方等等,全部 能转换成二值的布尔运算。

不管索引如何复杂,查找的基本操作仍然是布尔运算。布尔运算把逻辑和数学联系起来了。它的最大好处是容易实现,速度快,这对于海量的信息查找是至关重要的。它的不足是只能给出是与否的判断,而不能给出量化的度量。因此,所有搜索引擎在内部检索完毕后,都要对符合要求的网页根据相关性排序,然后才返回给用户。

像作者说的,布尔代数对于数学的意义,等同于量子力学对于物理学的意义,他们将我们对世界的认识从连续状态扩展到了离散的状态。
因为作者是搜索方面的专家,所以,作者对搜索涉及的数学建模、有向图、矩阵、统计、概率、迭代等方面进入了深入浅出的描述。
印象最深刻的是,作者在讨论到比较两个集合的是否一样的时候,提到了各种算法的优劣性。最基本的算法是采用逐个元素的比较,好一点的是排序后再比较。但是作者提出,其实最优的方案的是,采集每个词的信息指纹----数字,然后对这些数字求和比较,就能马上知道两个集合是否有差异了。因为采用的信息指纹是伪随机数,不同信息指纹加减乘除之后相同的概率非常小。信息指纹在判断网页相似性、论文抄袭等方面发挥了重要的作用。
另外说的一点是,因为密码学不是作者的专业,感觉本书在密码学方面讲得不够透。密码方面的知识建议参考(知乎)关于老和尚小和尚讨论密码的问题

阅读全文 »

受不了新浪博客乱七八糟的广告,终于下定决心搭建GitHub个人博客了。GitHub及Hexo的安装,NexT主题配置,Sublime Text编辑器、Mark的使用,一天的努力,终于大功告成。
从今天开始,以后就在这里记录工作心得、生活心得、读书心得,分享亲子时刻。
之前几年记录的博客做了备份,并且还保留在新浪博客上忆桐之家
以后有空再蚂蚁搬家般,把新浪博客迁移过来,目前貌似只能手工处理:-(

阅读全文 »

全书看完,受到的启发是,关注20%有价值的事情,只做最重要的事情!
根据80/20(帕累托法则)的思维,阐述了一种反常规的思想:我们所说的一分耕耘一分收获并不存在,我们收获的80%往往是耕耘的20%所产生。所以我们的当务之急应该是找出那创造了80%价值的20%投入,这样才能达到事半功倍的效果。

阅读全文 »

参考资料:架构设计中常用的视图模型----架构蓝图--软件架构 "4+1" 视图模型
一本大杂烩,涵盖了软件架构方方面面的知识,包括宏观的、微观的。所以看的过程觉得特别混乱。
不过如果在实践软件架构过程中,还是一本好的参考书,在架构处理的过程中的各种情况,作者都有涉猎。
另外,就是本书的翻译有点拗口,很多都是按英语的语序直接翻译过来,有些术语的翻译也不是很准确,建议对于一些术语的翻译,最好同时还保留英文,方便读者的理解。
本书的读书笔记如下。

一、架构的总体原理

1、总图

阅读全文 »

从0到1,从无到有,是质的变化,是推动人类进步的主要力量,也是一个公司能够拥有垄断利润的关键。每个企业都必须时刻思考如果抓住0到1的机会,而不是挤入从1到n的那种完全竞争状态的市场。
从0到1,是一种跨越性的创新,应对了中国那句古话,“道生一,一生二,二生三,三生万物”。道生一,就是从无到有的跳跃。从0到1,所以从奇点形成了我们的宇宙;从0到1,所以有了现代工业革命;从0到1,所以有了现代的信息技术。
从0到1是一种思维方式,一种追求。但是如何能够让自己发现0到1的机会,这才是成功者和普通人的区别。作者强调了要敢于挑战、独具一格的性格,要在别人意想不到的地方寻找利基市场,再利用自己技术壁垒,扩大市场,并形成垄断性的利润。那种通过技术的创新改变人类生活的垄断,是有助于社会的进步,因为他们通过解决独一无二的问题取得了创造性垄断的地位。像作者说的,每个企业都在追求垄断性的利润,完全竞争会吞噬企业的利润,使企业只着眼于目前的利益。所以,每个企业要思考未来10、20的世界的样子,然后思考企业能利用到哪个机会,从而抢先一步,占领市场,并且必须使自己的产品或者技术是替代品10倍优势,来保证你的竞争优势。
作者在文中也提到了Paypal黑帮的个人背景和性格,这几个人后来都成了硅谷的著名的创业者或投资人(例如火箭发射回收、特斯拉电动汽车的创始人马斯克Musk)。他们那种敢于挑战、独立思考、敢于和别人不一样的风格是他们创业成功的必要素质,而反思中国的教育,却是希望把大家培养成一个模子的,人云亦云的考试机器。
作者也思考了未来社会智能机器人的竞争问题,作者认为,人类之间的竞争,是涉及一种资源竞争的零和竞争。而机器人不需要和人类竞争资源,所以机器人应该是人类的好帮手,是人类提升生活水平的工具。当然,当超人工智能的出现,人类的将来是怎么样,其实谁也说不清楚。
名句摘录:
1、尼采曾在精神错乱前写道:“个人发生精神错乱很少见,但对群体、政党、国家、时代而言,精神错乱却很普遍。”

阅读全文 »

一本关于机器学习的实用教程,涵盖了从原理、案例到程序实现(Python)的全面介绍。
机器学习就是从数据中发现数据背后的本质,捕获数据中有价值的信息和模式。
机器学习的核心就是算法,而算法的基础就是一序列的数学知识,包括统计、概率、矩阵等方面的知识。机器学习除了能模拟专家做出一些有目标的预测之外,还能根据数据获取背后的分类和关联关系,并做出预测。
在这个大数据的时代,数据无处不在,如何利用好这些数据、如何发挥这些数据的价值,是人类的挑战,也是每个人的机会。
工业革命使机器成为了人类的另一双手,让人类从繁重的体力劳动转向脑力劳动;而信息技术,特别是人工智能(机器学习)将成为人类的另一个大脑,促进人类从目前的脑力劳动升级到更有创造力的活动中去,造福人类的生活。
在以后的年代,因为机器学习的基础就是统计,统计学将成为一门最热门的科学。
这本书烧了好多脑,从第一遍的一知半解,再到第二遍的难点突破和脑图笔记分解,到第三遍的框架理解和梳理。
也不说那么多了,经过整理的框架如下,具体的内容在脑图文件中可以展开。
如果想深入学习机器学习的算法的话,这本书还是一个不错的推荐。

一个幸福美满的家庭,随着女儿莉迪亚的死亡,轰然倒塌。
事情真相,像洋葱一样,一层一层的剥开, 死亡的真相渐渐明朗。
一个建立在互不沟通基础上的幸福,像五彩肥皂泡一样,脆弱得承受不了一根稻草的压力。
悲剧的根源,有社会的、家庭的、个人的,这一切交错在一起,导演了一出令人惊讶的故事。
书中有一句话,“一个来自混血家庭背景的孩子,通常难以找到自己的定位”,一句简单的话语,把美国种族问题现状尖锐的抛了出来。一个混血的孩子,特别是一个华人特征的混血孩子,在美国这种以白人为主的社会里,总是显得格外的与众不同。与众不同的结果就是处处难以融入你身边的社会。不管莉迪亚的爸爸多么鼓励她要学会交朋友、要学会融入集体,但是,这些反而给莉迪亚带来了更大的压力,反而让莉迪亚通过表面的、欺骗性交友的应付她的父亲,为以后悲剧埋下了伏笔。上帝造了人,有不同的色彩,同时也有不同的性格,所以作为父母,需要尊重孩子的特性,接受孩子的不一样,让孩子按照她的想法去生活。
莉迪亚母亲玛丽琳的壮志未酬、与众不同的思想,潜移默化的附加到了莉迪亚身上。又因为玛丽琳出走事件的影响,把莉迪亚置于一种一定要完成母亲心愿的高度压力之下。母亲的压力、学习的退步,把自尊心极强的莉迪亚整个信心给摧毁。而玛丽琳就像鸵鸟一样,自欺欺人,看不到或者说不愿意看到真相,生活在一个自己编造的幻觉当中,母女俩维护着一种自欺欺人的平衡当中。
而哥哥内斯要到哈佛上学的事件,把莉迪亚唯一能说说心里话,或者说,在这个家庭中唯一能理解自己的人,又要离开了。这把莉迪亚进一步推到了崩溃的边缘。杰克和哥哥内斯的关系成了压垮莉迪亚的最后一根稻草,成了莉迪亚独自走向湖中,独自走完了人生最后一程的推手……
这一切,只有那个不起眼的妹妹汉娜,在默默的关注着这一切,也只有她清楚这些故事背后的真相。

这本书每章都以书店老板A.J.一篇短小书评来开篇。
全书用一种质朴、平和的文字,描写与世隔绝的艾丽丝岛上书店老板A.J.平凡又不平常的一生。
想要了解一个人,你只需要问一个问题:“你最喜欢哪一本书?”
没有谁是一座孤岛。我们不是我们所收集的、得到的、所读的东西,只要我们还活着,我们就是爱,我们所爱的事物,们所爱的人,我认为真的会存活下去。
这就是A.J.给我们传递的关于阅读和爱的真谛。
因为阅读,他找到了和他有共同阅读兴趣的出版社业务员艾米。
因为爱,A.J.收养了孤儿玛雅,像作者所说的:“一旦一个人开始在乎一件事,就不得不在乎一切事。”因为爱,A.J.把中年丧妻之后的消沉抛之脑后,努力使自己的人生变得美好而辽阔。
虽然后来因为癌症而离开人世,但他的爱在他深爱的两个女人身上得到了延续,他的阅读兴趣在深爱的两个女人那里得到了传承。
本书开篇从艾米代替上任业务员到小岛给书店老板A.J.推销图书开始,到艾米下任到岛上给下任老板兰比亚斯推销图书结束。这些,就像阅读和爱,不断的在你所爱的人中循环着,无始无终。
唯爱与阅读,不可辜负。