Compare commits

..

4 Commits

Author SHA1 Message Date
4aa1a57395 remove obsidian config 2026-01-07 22:49:55 +08:00
Justin Lin
340849deb2 Merge remote-tracking branch 'origin' 2026-01-07 22:46:48 +08:00
Justin Lin
5cdbc74f37 修正錯字 2026-01-07 22:34:58 +08:00
Justin Lin
332e1e5e57 加入結語,致謝,與書封 2026-01-07 21:50:21 +08:00
22 changed files with 121 additions and 1469 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.obsidian

1
.obsidian/app.json vendored
View File

@@ -1 +0,0 @@
{}

View File

@@ -1 +0,0 @@
{}

View File

@@ -1,3 +0,0 @@
[
"obsidian-git"
]

View File

@@ -1,33 +0,0 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": false,
"backlink": true,
"canvas": false,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": false,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"bases": false,
"webviewer": false
}

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +0,0 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.36.0"
}

View File

@@ -1,694 +0,0 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.workspace-leaf-content[data-type="git-view"] .button-border {
border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s);
}
.workspace-leaf-content[data-type="git-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.workspace-leaf-content[data-type="git-history-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.loading {
overflow: hidden;
}
.loading > svg {
animation: 2s linear infinite loading;
transform-origin: 50% 50%;
display: inline-block;
}
.obsidian-git-center {
margin: auto;
text-align: center;
width: 50%;
}
.obsidian-git-textarea {
display: block;
margin-left: auto;
margin-right: auto;
}
.obsidian-git-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
}
.tooltip.mod-left {
overflow-wrap: break-word;
}
.tooltip.mod-right {
overflow-wrap: break-word;
}
/* Limits the scrollbar to the view body */
.git-view {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
.git-tools {
display: flex;
margin-left: auto;
}
.git-tools .type {
padding-left: var(--size-2-1);
display: flex;
align-items: center;
justify-content: center;
width: 11px;
}
.git-tools .type[data-type="M"] {
color: orange;
}
.git-tools .type[data-type="D"] {
color: red;
}
.git-tools .buttons {
display: flex;
}
.git-tools .buttons > * {
padding: 0 0;
height: auto;
}
.workspace-leaf-content[data-type="git-view"] .tree-item-self,
.workspace-leaf-content[data-type="git-history-view"] .tree-item-self {
align-items: center;
}
.workspace-leaf-content[data-type="git-view"]
.tree-item-self:hover
.clickable-icon,
.workspace-leaf-content[data-type="git-history-view"]
.tree-item-self:hover
.clickable-icon {
color: var(--icon-color-hover);
}
/* Highlight an item as active if it's diff is currently opened */
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
/* ====== diff2html ======
The following styles are adapted from the obsidian-version-history plugin by
@kometenstaub https://github.com/kometenstaub/obsidian-version-history-diff/blob/main/src/styles.scss
which itself is adapted from the diff2html library with the following original license:
https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.theme-dark,
.theme-light {
--git-delete-bg: #ff475040;
--git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
--git-insert-hl: #23c02350;
--git-change-bg: #ffd55840;
--git-selected: #3572b0;
--git-delete: #c33;
--git-insert: #399839;
--git-change: #d0b44c;
--git-move: #3572b0;
}
.git-diff {
.d2h-d-none {
display: none;
}
.d2h-wrapper {
text-align: left;
border-radius: 0.25em;
overflow: auto;
}
.d2h-file-header.d2h-file-header {
background-color: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
font-family:
Source Sans Pro,
Helvetica Neue,
Helvetica,
Arial,
sans-serif;
height: 35px;
padding: 5px 10px;
}
.d2h-file-header,
.d2h-file-stats {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.d2h-file-header {
display: none;
}
.d2h-file-stats {
font-size: 14px;
margin-left: auto;
}
.d2h-lines-added {
border: 1px solid var(--color-green);
border-radius: 5px 0 0 5px;
color: var(--color-green);
padding: 2px;
text-align: right;
vertical-align: middle;
}
.d2h-lines-deleted {
border: 1px solid var(--color-red);
border-radius: 0 5px 5px 0;
color: var(--color-red);
margin-left: 1px;
padding: 2px;
text-align: left;
vertical-align: middle;
}
.d2h-file-name-wrapper {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 15px;
width: 100%;
}
.d2h-file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
font-size: var(--h5-size);
}
.d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
margin-bottom: 1em;
max-height: 100%;
}
.d2h-file-collapse {
-webkit-box-pack: end;
-ms-flex-pack: end;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
cursor: pointer;
display: none;
font-size: 12px;
justify-content: flex-end;
padding: 4px 8px;
}
.d2h-file-collapse.d2h-selected {
background-color: var(--git-selected);
}
.d2h-file-collapse-input {
margin: 0 4px 0 0;
}
.d2h-diff-table {
border-collapse: collapse;
font-family: var(--font-monospace);
font-size: var(--font-text-size);
width: 100%;
}
.d2h-files-diff {
width: 100%;
}
.d2h-file-diff {
/*
overflow-y: scroll;
*/
border-radius: 5px;
}
.d2h-file-side-diff {
display: inline-block;
margin-bottom: -8px;
margin-right: -4px;
overflow-x: scroll;
overflow-y: hidden;
width: 50%;
}
.d2h-code-line {
padding-left: 6em;
padding-right: 1.5em;
}
.d2h-code-line,
.d2h-code-side-line {
display: inline-block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 100%;
}
.d2h-code-side-line {
/* needed to be changed */
padding-left: 0.5em;
padding-right: 0.5em;
}
.d2h-code-line-ctn {
word-wrap: normal;
background: none;
display: inline-block;
padding: 0;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
vertical-align: middle;
width: 100%;
/* only works for line-by-line */
white-space: pre-wrap;
}
.d2h-code-line del,
.d2h-code-side-line del {
background-color: var(--git-delete-hl);
color: var(--text-normal);
}
.d2h-code-line del,
.d2h-code-line ins,
.d2h-code-side-line del,
.d2h-code-side-line ins {
border-radius: 0.2em;
display: inline-block;
margin-top: -1px;
text-decoration: none;
vertical-align: middle;
}
.d2h-code-line ins,
.d2h-code-side-line ins {
background-color: var(--git-insert-hl);
text-align: left;
}
.d2h-code-line-prefix {
word-wrap: normal;
background: none;
display: inline;
padding: 0;
white-space: pre;
}
.line-num1 {
float: left;
}
.line-num1,
.line-num2 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
/*
padding: 0 0.5em;
*/
text-overflow: ellipsis;
width: 2.5em;
padding-left: 0;
}
.line-num2 {
float: right;
}
.d2h-code-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
display: inline-block;
position: absolute;
text-align: right;
width: 5.5em;
}
.d2h-code-linenumber:after {
content: "\200b";
}
.d2h-code-side-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
overflow: hidden;
padding: 0 0.5em;
text-align: right;
text-overflow: ellipsis;
width: 4em;
/* needed to be changed */
display: table-cell;
position: relative;
}
.d2h-code-side-linenumber:after {
content: "\200b";
}
.d2h-code-side-emptyplaceholder,
.d2h-emptyplaceholder {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
}
.d2h-code-line-prefix,
.d2h-code-linenumber,
.d2h-code-side-linenumber,
.d2h-emptyplaceholder {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.d2h-code-linenumber,
.d2h-code-side-linenumber {
direction: rtl;
}
.d2h-del {
background-color: var(--git-delete-bg);
border-color: var(--git-delete-hl);
}
.d2h-ins {
background-color: var(--git-insert-bg);
border-color: var(--git-insert-hl);
}
.d2h-info {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
color: var(--text-faint);
}
.d2h-del,
.d2h-ins,
.d2h-file-diff .d2h-change {
color: var(--text-normal);
}
.d2h-file-diff .d2h-del.d2h-change {
background-color: var(--git-change-bg);
}
.d2h-file-diff .d2h-ins.d2h-change {
background-color: var(--git-insert-bg);
}
.d2h-file-list-wrapper {
a {
text-decoration: none;
cursor: default;
-webkit-user-drag: none;
}
svg {
display: none;
}
}
.d2h-file-list-header {
text-align: left;
}
.d2h-file-list-title {
display: none;
}
.d2h-file-list-line {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
text-align: left;
}
.d2h-file-list {
}
.d2h-file-list > li {
border-bottom: 1px solid var(--background-modifier-border);
margin: 0;
padding: 5px 10px;
}
.d2h-file-list > li:last-child {
border-bottom: none;
}
.d2h-file-switch {
cursor: pointer;
display: none;
font-size: 10px;
}
.d2h-icon {
fill: currentColor;
margin-right: 10px;
vertical-align: middle;
}
.d2h-deleted {
color: var(--git-delete);
}
.d2h-added {
color: var(--git-insert);
}
.d2h-changed {
color: var(--git-change);
}
.d2h-moved {
color: var(--git-move);
}
.d2h-tag {
background-color: var(--background-secondary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.d2h-deleted-tag {
border: 1px solid var(--git-delete);
}
.d2h-added-tag {
border: 1px solid var(--git-insert);
}
.d2h-changed-tag {
border: 1px solid var(--git-change);
}
.d2h-moved-tag {
border: 1px solid var(--git-move);
}
/* needed for line-by-line*/
.d2h-diff-tbody {
position: relative;
}
}
/* ====================== Line Authoring Information ====================== */
.cm-gutterElement.obs-git-blame-gutter {
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
border-width: 0px 2px 0.2px 2px;
border-style: solid;
border-color: var(--background-secondary);
background-color: var(--background-secondary);
}
.cm-gutterElement.obs-git-blame-gutter > div,
.line-author-settings-preview {
/* delegate text color to settings */
color: var(--obs-git-gutter-text);
font-family: monospace;
height: 100%; /* ensure, that age-based background color occupies entire parent */
text-align: right;
padding: 0px 6px 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
}
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
}
/* Override styling of Codemirror merge view "collapsed lines" indicator */
.git-split-diff-view .ͼ2 .cm-collapsedLines {
background: var(--interactive-normal);
border-radius: var(--radius-m);
color: var(--text-accent);
font-size: var(--font-small);
padding: var(--size-4-1) var(--size-4-1);
}
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
background: var(--interactive-hover);
color: var(--text-accent-hover);
}
.git-signs-gutter {
.cm-gutterElement {
display: grid;
}
}
.git-gutter-marker:hover {
border-radius: 2px;
}
.git-gutter-marker.git-add {
background-color: var(--color-green);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-change {
background-color: var(--color-yellow);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-changedelete {
color: var(--color-yellow);
font-weight: var(--font-bold);
font-size: 1rem;
justify-self: center;
height: inherit;
}
.git-gutter-marker.git-delete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: end;
}
.git-gutter-marker.git-topdelete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: start;
}
div:hover > .git-gutter-marker.git-change {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-add {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-delete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-topdelete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-changedelete {
font-weight: var(--font-bold);
}
.git-gutter-marker.staged {
opacity: 0.5;
}
.git-diff {
.cm-merge-revert {
width: 4em;
}
/* Ensure that merge revert markers are positioned correctly */
.cm-merge-revert > * {
position: absolute;
background-color: var(--background-secondary);
display: flex;
}
}
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
margin-inline-end: 0;
.git-signs-gutter {
margin-inline-start: -1rem;
}
}
.git-changes-status-bar-colored {
.git-add {
color: var(--color-green);
}
.git-change {
color: var(--color-yellow);
}
.git-delete {
color: var(--color-red);
}
}
.git-changes-status-bar .git-add {
margin-right: 0.3em;
}
.git-changes-status-bar .git-change {
margin-right: 0.3em;
}

View File

@@ -1,182 +0,0 @@
{
"main": {
"id": "61fecb7040290c94",
"type": "split",
"children": [
{
"id": "8b30eec979b77642",
"type": "tabs",
"children": [
{
"id": "7a2fef8d1e4c0b1e",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "New tab"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "bcb41b2102b7edc7",
"type": "split",
"children": [
{
"id": "2e48ac39452484ec",
"type": "tabs",
"children": [
{
"id": "01c378fabc8ceeb3",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "609ea2a54caccdda",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "9185358e06ba1315",
"type": "split",
"children": [
{
"id": "111c55639a79ddb0",
"type": "tabs",
"children": [
{
"id": "1231b1cf90dac69f",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks"
}
},
{
"id": "b47fa0b98efd6473",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links"
}
},
{
"id": "f01180c13f75d449",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "73803eb3bfb9fa11",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "All properties"
}
},
{
"id": "e714c7bbeaab4d11",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline"
}
},
{
"id": "a66dc2f21d7474c8",
"type": "leaf",
"state": {
"type": "git-view",
"state": {},
"icon": "git-pull-request",
"title": "Source Control"
}
}
],
"currentTab": 5
}
],
"direction": "horizontal",
"width": 300
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"daily-notes:Open today's daily note": false,
"templates:Insert template": false,
"command-palette:Open command palette": false,
"bases:Create new base": false,
"obsidian-git:Open Git source control": false
}
},
"active": "7a2fef8d1e4c0b1e",
"lastOpenFiles": []
}

View File

@@ -62,4 +62,4 @@
本書是我長期思考這些問題所留下的紀錄。 本書是我長期思考這些問題所留下的紀錄。
這本書共分成四個系列:「研究室」、「檔案室」、「工作室」與「觀察室」,分別就理論、個案與社會現象研究,以及未來改變的方向,提出我個人的看法,期待它能引發大家對於「人要如何成長」的思考。 這本書共分成四個系列:「研究室」、「檔案室」、「工作室」與「進行式」,分別就理論、個案與社會現象研究,以及未來改變的方向,提出我個人的看法,期待它能引發大家對於「人要如何成長」的思考。

View File

@@ -1,78 +1,78 @@
## 給大女兒的詩 ## 給大女兒的詩
### 失憶老爸仔 典藏之記憶片段 > ### 失憶老爸仔 典藏之記憶片段
>
> 將這些珍貴的碎片 > 將這些珍貴的碎片
> 在尚未沈入記憶的流沙之前 > 在尚未沈入記憶的流沙之前
> 寫下來送你,親愛的女兒 > 寫下來送你,親愛的女兒
> 或者其實是請你替我保存 > 或者其實是請你替我保存
> 我不想遺忘的 > 我不想遺忘的
#### 碎片一 在妳還未來到世界之前 > #### 碎片一 在妳還未來到世界之前
>
> 當你隔著媽媽的肚皮
> 用腳猛然的推我的手掌
> 那是我靈魂受過的
> 最大的撞擊
> 彷彿聽見你大聲的告訴我
> 老爸仔,我來了
當你隔著媽媽的肚皮 > #### 碎片二 新月的妳
用腳猛然的推我的手掌 >
那是我靈魂受過的 > 深夜時刻,妳頑強的堅持著
最大的撞擊 > 不願一人獨睡
彷彿聽見你大聲的告訴我 > 趴臥在我的胸前,小小身體
老爸仔,我來了 > 隨著我小心而緩慢的呼吸起伏著
> 是的,我願意在妳需要時
> 用我沈沈的心跳聲伴妳入睡
#### 碎片 新月的妳 > #### 碎片 大嘴巴小孩吞沒湯匙小船
>
> 就是要玩,即使是吃飯的時候
> 是老爸仔的堅持
> 永遠都記得你當時的笑聲
> 與滿足的臉孔
> 是否有給妳一個快樂的世界呢?
> 我確定你給了我一個快樂的時刻
深夜時刻,妳頑強的堅持著 > #### 碎片四 數不清的獅子與老虎
不願一人獨睡 >
趴臥在我的胸前,小小身體 > 一次一次重複的畫著
隨著我小心而緩慢的呼吸起伏著 > 妳心愛的動物臉孔,我知道
是的,我願意在妳需要時 > 妳想要學會描繪這世界
用我沈沈的心跳聲伴妳入睡 > 因此不厭其煩的擦了又畫
> 是否有給妳一個美麗的世界呢?
> 我確定我看見了我美麗的女兒
#### 碎片 大嘴巴小孩吞沒湯匙小船 > #### 碎片 彷彿永遠也說不完的故事
>
> 像一千零一夜裡的國王
> 妳如此迫不及待的聽著
> 圖畫書中的不同角色,出現不同的聲音
> 說著他們的事。未來
> 妳是否也有說不完的
> 要告訴老爸仔的故事?
>
> 你已經逐漸長大,希望
> 老爸仔陪伴你的這些記憶片段
> 讓妳學會
> 觸摸
> 擁抱
> 遊玩
> 描繪
> 傾聽
> 這個世界
>
> 2011.04.13 於大女兒十四歲生日書
就是要玩,即使是吃飯的時候 > ### 懶散老爸仔給少女貓的祝福
是老爸仔的堅持 >
永遠都記得你當時的笑聲 > 妳已走的比我想的還遠,親愛的女兒
與滿足的臉孔 > 像貓一般的,在人群與自我之間自由來去
是否有給妳一個快樂的世界呢? > 不害怕探索世界,勇敢面對失落
我確定你給了我一個快樂的時刻 >
> 再多一點的期待就變得貪婪了。可是我
#### 碎片四 數不清的獅子與老虎 > 還是自私地希望,你能擁有
> 屬於你的玫瑰、狐狸和一段神奇的人生旅程
一次一次重複的畫著 >
妳心愛的動物臉孔,我知道 > 2012.11.07 給大女兒的國中畢業祝福
妳想要學會描繪這世界
因此不厭其煩的擦了又畫
是否有給妳一個美麗的世界呢?
我確定我看見了我美麗的女兒
#### 碎片五 彷彿永遠也說不完的故事
像一千零一夜裡的國王
妳如此迫不及待的聽著
圖畫書中的不同角色,出現不同的聲音
說著他們的事。未來
妳是否也有說不完的
要告訴老爸仔的故事?
你已經逐漸長大,希望
老爸仔陪伴你的這些記憶片段
讓妳學會
觸摸
擁抱
遊玩
描繪
傾聽
這個世界
2011.04.13 於大女兒十四歲生日書
### 懶散老爸仔給少女貓的祝福
妳已走的比我想的還遠,親愛的女兒
像貓一般的,在人群與自我之間自由來去
不害怕探索世界,勇敢面對失落
再多一點的期待就變得貪婪了。可是我
還是自私地希望,你能擁有
屬於你的玫瑰、狐狸和一段神奇的人生旅程
2012.11.07 給大女兒的國中畢業祝福

View File

@@ -1,20 +1,20 @@
## 給二女兒的詩 ## 給二女兒的詩
### 給妙喵的祝福 > ### 給妙喵的祝福
>
我清晰的記得 稚齡的你 > 我清晰的記得 稚齡的你
寫的人生第一句詩 > 寫的人生第一句詩
「雨滴是天空的眼淚 > 「雨滴是天空的眼淚
彩虹是天空的髮飾」 > 彩虹是天空的髮飾」
那是你豐富如雨的感受 > 那是你豐富如雨的感受
與燦爛多變的心情 > 與燦爛多變的心情
>
昔日宏亮的哭聲 > 昔日宏亮的哭聲
如今成了夜后般的吟唱 > 如今成了夜后般的吟唱
即將踏著六弦的旋律 > 即將踏著六弦的旋律
走向人生的旅程 > 走向人生的旅程
期待你敏銳的心 > 期待你敏銳的心
引你找到屬於你的奇幻世界 > 引你找到屬於你的奇幻世界
>
給多變的你 > 給多變的你
不變的支持 > 不變的支持

View File

@@ -1,20 +1,20 @@
## 給兒子的詩 ## 給兒子的詩
### 理想的行者 > ### 理想的行者
>
你匆匆走過恐龍的年代 > 你匆匆走過恐龍的年代
在機器的世界短暫停留 > 在機器的世界短暫停留
用雙手認真擁抱 > 用雙手認真擁抱
每一件你喜愛的事物 > 每一件你喜愛的事物
>
一路上不斷地哼著 > 一路上不斷地哼著
自己譜寫的旋律 > 自己譜寫的旋律
在熱烈的高談闊論後 > 在熱烈的高談闊論後
像蜜蜂般忙碌準時的工作 > 像蜜蜂般忙碌準時的工作
為這紛亂的世界建構 > 為這紛亂的世界建構
簡潔無暇的運行程式 > 簡潔無暇的運行程式
>
陪伴著你,漸漸地 > 陪伴著你,漸漸地
我彷彿也找回了自己 > 我彷彿也找回了自己
願我們不是自己孤獨的王 > 願我們不是自己孤獨的王
能為普世理想的堅毅行者 > 能為普世理想的堅毅行者

11
7-end.md Normal file
View File

@@ -0,0 +1,11 @@
![](cover.jpg)
# 結語
最近幾年,在旁人的觀察與提醒下,我漸漸意識到自己確實是一個「理想主義者」,總是不斷思考與想像著一個心中的「理想世界」。也因此明白了自己長期以來為何一直關注「人」的議題,特別是「人為何感到痛苦?」,因為理想來自於人的心理期待與想像。
我很早就開始接觸佛學與哲學,對於人為何受苦是有得到一些「解釋」,但一直沒能找到具體的實踐方式。年輕時在不可抗拒的因素下讀了醫學系,然後在本性的驅使下,成為一個精神科醫師,直接面對人精神上的痛苦,從中觀察到許多痛苦的源頭。在精神分析理論的引導下,發現很多問題都來自於,早年的生活經驗如何建構出一個人的「自我」,其中「自戀」這股重要的精神能量如何受到環境影響而「流動」或「淤積」,是很大的關鍵。
於是我整理出「涵容」、「鏡映」與「理想化」這三個精神分析的概念,作為具體的實踐方式;這三個概念不僅適用於兒童成長過程中養育他們的方式,也可以作為成人心理困擾者自我理解,與周圍的人如何回應他們的參考作法。
希望本書能讓大家認識這些概念,並運用在自我成長與人際關係中,造成一些改變,讓人類社會能更接近我心目中那個「理想的世界」。

5
8-thanks.md Normal file
View File

@@ -0,0 +1,5 @@
# 致謝
本書得以完成的最大推手,是我親愛的兒子林宏信。因為他的期盼與鼓舞,讓我原本散亂的文章與人生得以凝聚;他不僅是我這本書、也是我中年生活的「責任編輯」,不斷提供我修改的方向。
也感謝美麗溫柔的藝術家女兒林沛瑤,在忙碌的求學、工作與創作之餘,協助封面與美術設計。

View File

@@ -10,7 +10,7 @@
NFT 初版2025 年 11 月 1 日 NFT 初版2025 年 11 月 1 日
定價:8 USD 定價:15 USD
出版:慢慢工作室 出版:慢慢工作室

BIN
cover.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

BIN
cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 MiB

BIN
coverB-img-only.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

BIN
coverB.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 847 KiB

View File

@@ -4,6 +4,7 @@ META=./meta.yml
OUTPUT=narcissism.epub OUTPUT=narcissism.epub
pandoc --from markdown --to epub3 \ pandoc --from markdown --to epub3 \
--metadata-file=$META \ --metadata-file=$META \
--epub-cover-image=coverB.png \
-M title="納西斯花園:關於自戀、孤獨與愛的心理筆記" \ -M title="納西斯花園:關於自戀、孤獨與愛的心理筆記" \
--output $OUTPUT \ --output $OUTPUT \
--split-level 2 \ --split-level 2 \

Binary file not shown.