如何為 tiddlywiki 設定 highlight.js

之前介紹了筆記軟體挑選 tiddlywiki 的理由,但下載後才發現根本沒有語法突顯(syntax highlighting)阿?其實不然,想要讓 tiddlywiki 變得更完善就需要善用 plugins(外掛)。

點選 設定圖示undefined —> 選擇 plugins 標籤頁 —> Get more plugins —> Open plugin library —>在 plugins(56) 的標籤頁找到 Highlight.js: syntax highlighting 並安裝。

完成後,就可以在新增一筆 tiddler 時,於內容輸入「```」和「```」即是標準的程式碼區塊,而第一個「```」緊接著輸入你想要使用的程式語言,如「```python」,就會出現對應的語法突顯(syntax highlighting)。

至於 Highlight.js:syntax highlighting 所支援的語法如下:

  • apache
  • arduino
  • arm assembly
  • asciidoc
  • autohotkey
  • awk
  • bash
  • cmake
  • coffeescript
  • cpp
  • cs
  • css
  • diff
  • dockerfile
  • erlang
  • fortran
  • go
  • gradle
  • haskell
  • html
  • http
  • ini
  • intel x86 assembly
  • java
  • javascript
  • json
  • kotlin
  • makefile
  • markdown
  • mathematica
  • matlab
  • nginx
  • objectivec
  • perl
  • php
  • powershell
  • python
  • R
  • ruby
  • rust
  • sql
  • typescript
  • vim script
  • xml
  • yaml

你疑惑地想著,如果想要的程式語言不在其中怎麼辦?像我就喜歡使用 Excel 和 VBA ,難道就沒有辦法使用語法突顯了嗎?這問題找我就對啦!

連結到 highlight.js 官方網站,標註著「185 languages and 91 styles」,感受到什麼了嗎?沒錯,除了可以支援 185種程式語法突顯,還多了 91種的色彩配置。接著就讓我們來實際操作吧

本次的目標:除了既有的語法突顯,並新增 ExcelVBA(相當於 VB.NET),同時調整風格為 A 11 Y Dark

如何設定對應程式語言的種類

在 highlight.js 網站點選 Get version 9.18.1 後,透過頁面下方所列表的程式語言,除了上面 Common 區塊已經核選,下面的 Other 區塊再逐一核選自己需要的,像是本例的 Excel 和 VB.NET,最後按下 Download 即可得到壓縮檔案。
(※別忘了把原本 tiddlywiki highlight.js 既有的加入,因為從網站下載的檔案並沒有涵蓋到原本的語法範圍喔;或者就只核選自己常用的語言即可,畢竟日後都還可以再增添。)

  1. 打開壓縮檔,使用編輯器打開 highlight.pack.js ,從 !function(e){var 開始框選到 ],i:/#(?!!)/}}); 為止複製起來;
  2. 開啟 tiddlyWiki 並切換至 plugins 選擇 Highlight.js:syntax highlighting (如上圖),按下黃色標記的 $:/plugins/tiddlywiki/highlight/highlight.js 進入編輯畫面,將剛才複製的內容完整對應地貼上,不要覆蓋到第一行和最後一行的句子,如下面所示:(第一行:var hljs ...;最後一行:exports.hljs ...),最後儲存即可正常使用囉。
var hljs = require("$:/plugins/tiddlywiki/highlight/highlight.js");
/*! highlight.js v9.15.6 | BSD3 License | git.io/hljslicense */
!function(e){var n="object"==typeof window&&window||"object"==typeof ......
.......
{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor get set",e:/\{/,eE:!0}],i:/#(?!!)/}});
exports.hljs = hljs;

如何調整色彩配置

你想到了嗎?就是去調整綠色標記的部分。(教學的部分就留給自己去研究,就在下載檔案裏面的 *.css 或者從下載頁面的「For other available styles look into the highlight.js styles directory (and don’t forget to add “.min" before “.css").」去複製)

tiddlyWiki 個人知識筆記本

是否感受到想要記住的資訊太多太雜而慌亂,那麼 tiddlyWiki 就是你的救星!

相信大家都感受到電腦科技的時代,聯繫網路帶來更多的資訊,讓人驚訝得目不轉睛,彷若世界知識寶庫都在面前,然而卻不知道要用什麼來記錄?

早期常見的做法就是使用 word, wordpad, excel 等來記錄,再來就是部落格(blog),甚至到手機上網而出現了 Evernote(方便同步各種裝置),直到近期琳瑯滿目的筆記軟體(Bear)或是平台(HackMD),甚至還帶起 markdown 寫作風潮連 GitHub 都採用此作為寫作規範。

那麼,哪個筆記軟體最好用?最好是便宜、不用錢、簡易上手、好用、美觀、筆記與筆記之間的連結、還要能秀出圖片、還要能加密、不要太複雜的語法、支援程式碼語法突顯(syntax Highlighting)、…等等,答案會是:沒有這種東西!因為我平常手機使用 Bear,偶爾需要用電腦和手機同步的 Evernote,更甚者在需要編輯 Markdown 文件時使用 Typora 或是 HackMD,所以要檢視自己的需求來衡量,什麼情境來使用什麼筆記軟體!我會推薦使用只需要瀏覽器就可以上手的 tiddlyWiki

tiddlyWiki 的資訊很豐富,只需要看官方網站即可,或者英文苦手如我就加減看中文的 tiddlyWiki 舞,其他部分都可以藉由模仿來學習使用新增筆記或是筆記的排版設計。(就先介紹到此啦。)

使用 Node.js 建立 tiddlyWiki

新手建議使用瀏覽器開啟 HTML版本 並勤快地點選儲存
(以下的教學純粹用 Node.js 執行罷了,體驗不用按下儲存的快感。)

  1. 下載 node.js 下載 安裝步驟參考
    1. 本例使用 Windows 二進位檔案 (.zip) node-v12.14.1-win-x64.zip
    2. 解壓縮後,透過 cmd 輸入下列指令皆能正常即可
C:\(路徑)>node -v
v12.14.1

C:\(路徑)>npm version
{
  npm: '6.13.4',
  ares: '1.15.0',
  brotli: '1.0.7',
  cldr: '35.1',
  http_parser: '2.8.0',
  icu: '64.2',
  llhttp: '2.0.1',
  modules: '72',
  napi: '5',
  nghttp2: '1.40.0',
  node: '12.14.1',
  openssl: '1.1.1d',
  tz: '2019c',
  unicode: '12.1',
  uv: '1.33.1',
  v8: '7.7.299.13-node.16',
  zlib: '1.2.11'
}

C:\(路徑)>npx -v
6.13.4
  1. 安裝 tiddlyWiki 步驟請參考 -> Node.js安裝說明
    1. 延續上面安裝 Node.js 完成後的步驟,輸入:
C:\(路徑)>npm install -g tiddlywiki
C:\(路徑)\tiddlywiki -> C:\(路徑)\node_modules\tiddlywiki\tiddlywiki.js
+ tiddlywiki@5.1.21
added 1 package from 1 contributor in 21.192s

C:\(路徑)>tiddlywiki --version
5.1.21

C:\(路徑)>tiddlywiki mynewwiki --init server
Copied edition 'server' to mynewwiki

C:\(路徑)>tiddlywiki mynewwiki --listen
Serving on http://127.0.0.1:8080
    1. 在瀏覽器網址輸入: http://127.0.0.1:8080/ 即可看到 tiddlyWiki 囉。
  1. 想要關閉指令列,可以點選右上角 X 或是輸入 ctrl + C 再按下 y 並 Enter 即可。

Kobo 電子書使用心得

莫名其妙的開端,帶我進入電子書世界

起初對 Kobo 電子書的印象,僅僅是在臉書上看到朋友在分享他買了什麼書、折扣多少、甚至還為此從日本拎來 Kobo e-reader,我還是無動於衷。

直到黃大謙的業配影片:

也許大家沒那麼對胃口,但就因為這樣瞎掰的介紹我就開始使用 Kobo 電子書啦

基本上就是信用卡支付、搭配使用手機 app來閱讀電子書。

為什麼會想要用 Kobo電子書?

當然是錢啊!(加上想要假掰裝文青)

Kobo 從註冊一開始就給你 200元的購物金,不用白不用。再加上動不動就給你折扣代碼,不是那種機八折,是五六折唉!!而且電子書的定價本來就低於紙本,加上折扣,理智線就會斷掉。(就像在 Steam 買遊戲本身就是一種享受XD,即便你根本沒有時間去玩)

更重要的是,中文書!

至於帶到電子紙風潮的 Kindle 對我們來說,實在太遙遠,主要就是英文書太多,也沒有台灣的繁體書。

加上也可以在筆電或是手機同步使用,這樣就沒有理由說自己不看書了,也沒有理由說書本不知道放在哪裡去了 XD

關於 Kobo 桌面應用程式

它有兩種版本,一個是暈斗死(Windows),另一個就是麥金塔(MacOS X),只要去官方網站下載即可。

暈斗死版 沒問題,像我最喜翻用 Google 帳號整合(其實是懶),所以我買書的紀錄都是歸在 Google帳號之下。但偏偏 MacOS版 就給我出問題,就是沒辦法用 Google帳號登入。你找不到可以輸入 Gmail 帳號的文字欄位,也找不到按下確認的按鈕。

折衷辦法就是,請註冊一個樂天帳號。然後在 Kobo.com 裡面我的帳戶內,連結此帳戶就可以了。(別叫我寫圖文教學,文字描述就夠了啦!)


後記:到底能不能退訂電子書?

我不知道但正在進行,因為看到臉書有個日文老師出書「這個動作,那個情形,日語….」,未加留意只有 Taaze 的電子書版本才有聲音檔,導致我買了這本書卻不能聽聲音檔不就太可惜了嗎?所以我就退訂該書,但未見客服人員的回覆,而我也確實去下訂實體書了。(也許會變成電子書和紙本書我都買,等於重複買了兩本 QQ)

當今最棒的 markdown 文檔格式(HackMD, Typora)

對於當紅的文檔格式,就非屬 Markdown 莫屬了。Markdown 是一種輕量級的標記式語言(markup languages),誠如 Wiki 上所說的「使用易讀易寫的純文字格式編寫文件,然後轉換成有效的XHTML(或者HTML)文件」。

什麼,哩公蝦?(你在說什麼?)

簡單地說,可以讓你寫出文章,又具備網頁連結的感覺

那麼就來看看基本功能吧,這樣比較能體會 Markdown 的意思。

markdown 常用功能

標題

寫文章都會有段落的區分,需要大標題、次標題、小標題等等。在 markdown 我們就用「#」來區分:

# 大標題(一級標題)
## 次標題(二級標題)
### 小標題(三級標題)以此類推

大標題(一級標題)

次標題(二級標題)

小標題(三級標題)

四級標題

水平線

有時候會想要加個水平線來區分前後文,只要用「—」即可

---
***

水平線


強調字體

只要在想要變成粗體的字詞加上「**」就可以了。

**粗體**
*斜體*
~~刪節線~~

粗體字
斜體
刪節線

圖片

通常會使用圖片的網址來張貼圖片,通常使用驚嘆號、中括弧、以及小括弧就可以了。

![](http://markdown.tw/images/208x128.png)

超連結

如果想要讓某個字詞能夠對應到某個網頁,就要用中括弧和小括弧。

維基百科裡面對[Markdown](https://zh.wikipedia.org/wiki/Markdown)的說明。

維基百科裡面對Markdown的說明。

引言

通常會用來摘錄一段文字。只要輸入「>」就可以了。如果要有層次,就再輸入「>>」。

> blahblahblah....
>> OOOOOHHHHH.....

blahblahblah….

OOOOOHHHHH…..

表格

表格是 markdown 最麻煩的東西,因為你要逐一去找表格內所對應的文字,不然會出現在錯誤的格子裡。這時候我就不得不推薦「Typora」,它真的超讚的!把找格子的問題解決了!

我們需要用「|」來畫表格,且表格的第二列每一格輸入「-」。而第二列也是影響表格內文字是否置中、置右,只要輸入「:-:」或是「-:」即可。(預設值是置左)

|標題列A|標題列B|標題列C|
|-|-|-|
|內容A|內容B|內容C|
|敘述A|敘述B|敘述C|
標題列A 標題列B 標題列C
內容A 內容B 內容C
敘述A 敘述B 敘述C

表格內文字置右
|標題列A|標題列B|標題列C|
|-:|-:|-:|
|內容A|內容B|內容C|
|敘述A|敘述B|敘述C|

表格內文字置右

標題列A 標題列B 標題列C
內容A 內容B 內容C
敘述A 敘述B 敘述C

too bad, WordPress 不支援表格向右對齊,只能自己一個個調整。

列表

如果要有清單列表的感覺,就在文字前面加上「-」和一個空白即可。

- 清單一
- 清單二
- 清單三
  • 清單一
  • 清單二
  • 清單三

程式碼張貼

最最最酷的功能就是這個啦!(因為太重要了,要強調三遍最最最XD)

只要頭和尾都輸入「“`」就可以把程式碼框起來,而且可以根據不同的語法產生對應的 highlights。例如以 javascript 為例:

<

div class="CodeMirror cm-s-inner CodeMirror-wrap “>

<

div class="CodeMirror-scroll">

<

div class="CodeMirror-sizer">

<

div class="CodeMirror-lines">

<

div class="CodeMirror-code">

```javascript
console.log("hello!");
```

</div>
</div>
</div>
</div>
</div>
</div>
<blockquote>

console.log("hello!");

</div>
</div>
</div>
</div>
</div></blockquote>


<span class="md-line md-end-block">如果是 python:</span>
<div class="CodeMirror cm-s-inner CodeMirror-wrap ">
<div class="CodeMirror-scroll" tabindex="-1">
<div class="CodeMirror-sizer">
<div class="CodeMirror-lines">
<div class="CodeMirror-code">
<div class="CodeMirror-activeline">
<pre class="">“`python
print “Hello!"
“`

print "Hello!"

很酷吧?

想要立即體驗 Markdown 嗎?那就來嘗試「HackMD」或是「Typora」吧。

HackMD

點我進入

只要點選「建立訪客筆記」就可以嘗試使用了,如果想要日後方便查找,就要使用登入。

Imgur

Typora

點我進入

Imgur

是目前最輕巧易用的離線編輯器,最重要的是即時預覽功能!讓你同時兼具寫作與閱讀的功能。

讀書筆記:日本記憶大師 教你啟動考試腦(2/5)

第一章:一本書原則

不要任意換課本!

一開始就決定好研讀的課本,切莫分心。

確實每個課本都有些微不同的教材編排,甚至解釋方式、例題、答案,但都要記住一個原則不要換課本,把它讀通。(作者表示自己指導的學生很多都發生這樣換課本的老毛病。

為了降低一本書原則的壓力,尤其是厚重的課本,不要遲疑,把它拆成冊吧!

拆成薄薄的一冊,翻閱的時候就不會有潛在心理壓力,想著怎麼那麼多還沒有讀。同時當你一冊一冊地看完,也會增加心裏的自信。

在一本書原則之下,要快速翻閱整本書的內容,加強印象。

標題、圖表、公式等等,儘量加強印象在腦海中,避免在研讀的時候掉入『見樹不見林』的盲點。

(第一章完。)

第二章:活用目錄!

其實這也是沿用前面的原則,為了避免發生『見樹不見林』的盲點。

  • 把目錄整理成一頁,或是黏貼成一大張
  • 從目錄開始估算時間使用量
  • 避免『見樹不見林』

利用目錄就是要讓自己知道位在哪裡,就像導航一樣,隨時根據不同的情境作出調整。

例如要準備剩下六個月的大考,就要開始估算剩下多少可用時數,再將其分配到各個章節。目錄就能幫助自己盯緊進度,或是調整時間使用,但都要記得自己在哪裡,以及決定是否要先進入下個章節,甚至跳讀。

(第二章完。)

第三章:課本作為筆記

MyBook 的概念就是要用自己的課本,畫上自己的筆記,日後在複習的時候效果才會顯著。

最基本的就是:整理+書寫重點。

整理:大腦對於整理過的資訊會產生印象,凌亂的資訊反而無法明確地記住。所以我們需要使用:

  1. 編號
  2. 顏色
  3. 圖表
  4. 訂定法則與規則性
  5. 替換

不過不太能理解『訂定法則與規則性』、『替換』的概念。Orz

書寫重點:其實這比較像是整理的具體作為,告訴你如何使用整理。

  1. 快速瀏覽全書,不忘整體方向(不要掉入見樹不見林的困境)
  2. 對小標題提出問題,練習自我回答(複習的關鍵)
  3. 色筆標記
  4. 利用課本空白處寫下注意事項、疑問、某年考題。
  5. 便條紙

便條紙就是空白處的延伸。然而跟『色筆標記』一樣的概念,例如:

  • 自我提問(黃色)#在第五章會再詳述。
  • 不懂的地方(藍色)
  • 考題(紅色)

(第三章完。)

第四章:緩慢速讀

說慢不慢,說快不快,那就是緩慢的速讀。XD

閱讀文章時,可以採用『咚咚咚』跳讀的方式,加快閱讀的速度。大腦可以將詞語自動拼揍成一段文句。例如下面的例子:(p.s. 這是我自己的看法)

研表究明,漢字的序順並不定一能影閱響讀,比如當你看完這句話後,才發這現裡的字全是都亂的。

看不懂的地方就跳過去,因為速讀的重點不是要你全面瞭解,而是抓住整個內容的大方向。

(第四章完。)

第五章:與標題對話

這裡接著第三章裡面的書寫重點,說明何為『自我提問』。

大標題『EU的設立及其發展』,小標題『小國的煩惱』、『EU的設立』、『EU的各種問題』。

這時可以在小標題旁邊寫下問句『為什麼小國會有煩惱?』『如何設立EU?』『設立後帶來的問題有哪些?』

接著就可以用色筆把答案劃下來。(請統一使用色筆,答案一律都用同色)

這樣提問的學習方式,會有以下的變化:

一開始:從小標題提出問題→答不出來→找出標記的答案並加以確認→促成記憶。

接著開始複習:從小標題提出問題→不用看就答出來→跟標記的答案做確認→強化記憶。

之後:從小標題提出問題→不用看就能打出正確的答案→固定記憶

總之,要記得輸出才會強化輸入的意義,否則一味地輸入是沒有長期意義的。

但是不要輕忽預習的意義:

  • 預習讓自己知道有哪些完全不懂的
  • 預習讓自己知道有哪些半信半疑的
  • 預習讓自己知道自認為了解的

預習,就是為了要帶去課堂上解決上述所列的,強化自己理解的能力。

(第五章完。)

第六章:顏色運用

這裡也是沿著第三章裡面的色筆運用,加以說明如何使用。

簡言之,不要急著上色!(因為上色就很難塗改)先用鉛筆或原子筆標記就好,等到回過頭來看的時候再上色。

就兩種顏色來看:

黃色螢光筆:標記能理解但記不太住的。

紅色螢光筆:標記不能理解的。

當然也不要忘記便條紙的運用,延伸『自我提問』、『疑惑』、『考題』。

(第六章完)


讀書筆記:日本記憶大師 教你啟動考試腦(1/5)

博客來

為何一本書的標題可以這麼聳動地告訴你『再混的學生也能在短時間考出好成績』?又是一本騙眼球的學習技巧書籍嗎?那麼就來看看他說的有沒有道理,能不能在自己身上執行。

第一章:複習如此重要

喔!複習很重要!

在學習的過程,汲取知識的過程:記誦、儲存、想起、確認

當你看到一個公式或描述,在腦海中默默記著,一直在大腦裡擱置著,直到出現了題目或是與它相關的內容,想起剛才背誦的公式或論述,同時又翻回去前面的課文,確認跟腦海中的印象是否吻合。

是不是跟考試的感覺很像呢?想想自己考試的時候,不就是把論述和公式想起,寫在答案卷上呢!

如果只是一味地強調輸入,心裡感覺上比較踏實,因為每個細節都在你眼前一一劃過,也很不切實際地,從你腦海中一一閃逝而去。

作者提出新的學習時間分配觀念,把背誦時間增加,想起的時間也增加。例如:背誦時間用 10~15 分鐘,想起時間就 5分鐘即可。

想起的方式可以是:腦海中重現內容、用筆寫下、或是用口說一遍。

作者也強調一點『看一小時的書,和看 30分鐘的書,兩者的記憶量是一樣的!』所以不要追求完整的重現,而是把時間換來多遍地記憶和重現。

(第一章完。)

第二章 預習&複習同時並行

  • 快速翻頁的速讀術
  • 遺忘記住的記憶術

快速地瀏覽要待會要上課的內容以及確認已學的內容。

國高中上課前,用短短的兩三分鐘翻閱待會上課的內容,順便回閱前面上過的內容。帶著問題的意識來上課,將不懂的東西在上課時面對它,並且解決它,而不是被動地都不懂,回去也是莫可奈何。

為了預先瞭解自己理解了哪些內容,以及不懂哪些內容。

預習的結論就是:

  • 短時間讀完課本
  • 帶著問題意識來讀課本
  • 邊提問題邊讀完課本

遺忘記住的記憶術 就是強調有遺忘才會有記住的記憶方法。

在核對答案卷的時候,總是會出現『哎呀!原來是這樣⋯⋯明明那麼努力背起來⋯⋯』。

就好像在台灣的法條考試,經常遇到『得』和『應』的一字之差,總是會讓人覺得『哎呀!又是敗在這裡⋯⋯』

後悔慚愧自責沮喪的念頭,反而會加深並強化記憶。

所以不要堅持過目不忘,反而在忘記時才會更強化你的記憶。

一直到現在為止,複習的意義依然大於預習,輸出遠大於輸入!

(第二章完。)

PDCA 學習系統!

作者提出學習的架構,是為了『在必要時刻,回答必要的問題』:

  • 以複習為主,打造自己的『MyBook』
  • 以複習為主,整理問題本和筆記。
  • 以複習為主,制定計畫和實踐的心
  • 以複習為主,建立PDCA的循環。

在這裡會先著重說明PDCA的重要性,餘下的部分留待後面章節交代。

  • P:設定目標,具體行動之細目
  • D:執行它!DO IT!
  • C:檢討實際的行動
  • A:因應必要,修正或改善實際的行動。

例如建立學習的時間:

學習時間 = 輸入時間(記憶、理解)+輸出時間(想起)

30 分鐘的學習時間,就是『 25分鐘輸入+ 5分鐘輸出』。

以此類推,總之要給 5分鐘時間來輸出!不能只有輸入而不輸出。永遠記得『輸出大於輸出』的原則!

(第三章完。)