This is a PHP extension embeds the Google V8 Javascript Engine.
V8js extension on Github
Installation
|
brew install v8 git clone https://github.com/preillyme/v8js cd v8js phpize # MacOS # ./configure CXXFLAGS="-Wno-c++11-narrowing" ./configure make; sudo make install |
Usage
check samples
and tests
folder
Problems
如果你經由 PECL 安裝 v8js:
sudo pecl install v8js
你可能會遇到一些編譯上的錯誤, 造成這個問題的原因是因為在 PECL 上的版本 0.1.3 使用了一個已經被最新版 V8 engine 所廢除的函式, 如果想要使用這個版本的話必須要使用 V8 3.15.11 的版本, 降版的方式如下:
brew install v8-3.15.11
如果之後想要切換回新版:
|
# 查看目前安裝哪些版本 brew info v8 # 切換版本 brew switch 3.17.10 |
–
修改 markdown-on-save.php
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
protected function process( $content, $id ) { $this->maybe_load_markdown(); // Links with "quoted titles" bork without stripping slashes. // Stripslashes would lose desired backslashes. So, regex. $content = preg_replace( '/\\\"/', '"', $content ); // Added by Starck Lin - parsing Github Fenced code blocks $content = preg_replace("/\n```([A-z :]+)([^```]+?)\n```/", '<pre class="lang:$1">$2</pre>', $content ); $content = preg_replace("/\n```([^```]+?)\n```/", '<pre>$1</pre>;', $content ); // convert to Markdown $content = $this->parser->transform( $content ); // reference the post_id to make footnote ids unique $content = preg_replace( '/fn(ref)?:/', "fn$1-$id:", $content ); return $content; } |
這是搭配 Crayon WP-Plugin, 如果遇到原始碼有 </pre> 的問題, 可以轉成 <
(<) 和 >
(>), 再把 crayon 的 decode 設為 true.
另外有個值得注意的點, 換行符號我是用雙引號來轉換 \n
Fork it on Github