我一直在使用rouge
的R語法高亮了一小會兒,這樣我就可以確認它在rouge
工作了不僅僅是這個月長一些,並且它確實一個相當體面的工作(個人觀點)。
我有一個GitHub pages網站生成使用jekyll
和我經歷了相同的過程切換到rouge
作爲熒光筆不久前。但現在R代碼運行良好。以下是我的網站的示例屏幕截圖(我添加了一些額外的代碼以使本文受益)。
爲library(ggseas)
和library("ggseas")
(我平時寫的方式)的頁面上的代碼是如你所說:
<span class="n">library</span><span class="p">(</span><span class="n">ggseas</span><span class="p">)</span>
<span class="n">library</span><span class="p">(</span><span class="s2">"ggseas"</span><span class="p">)</span>
正如你所看到的,PRIMITIVE_FUNCTIONS
的特殊高亮指突出顯示就像我們在for循環中看到for
和in
那樣。
但是,這與突出顯示在流行的IDE Studio中關於ggplot()
和ggsea
的作用相同。只有library()
(還有其他一些功能,如require()
)不包括在PRIMITIVE_FUNCTIONS
列表,所以沒有得到突出,因爲他們應該:
所以,我很好奇你的代碼是什麼樣子在此之前,您無法使用rouge
。 如果您只需要修復突出顯示library()
和require()
(可能還有其他幾個),那麼您應該可以將它們添加到PRIMITIVE_FUNCTIONS
列表中,正如您猜測的那樣。但是如果你想爲所有非基函數特別突出顯示,那麼它會變得更加複雜。
如果有幫助,我已發佈我的_config.yml
文件的最後一部分,用於我的jekyl
生成的網站。
# Build settings
destination: _site
paginate: 10
permalink: /:year/:title/
markdown: kramdown #redcarpet
highlighter: rouge
#redcarpet:
# extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "strikethrough", "superscript", "with_toc_data"]
#redcarpet:
# extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
kramdown:
# use Github Flavored Markdown
input: GFM
auto_ids: true
syntax_highlighter: rouge
# do not replace newlines by <br>s
hard_wrap: false
gems: ['jekyll-paginate']
exclude: ['README.md', 'Gemfile', 'Gemfile.lock', 'screenshot.png']
我也只注意到它不確實的顏色代碼括號和大括號,這是可取的。
您是否嘗試使用[Pygments](http://pygments.org/)熒光筆? –
我一直使用顏料,但隨着網站的發展,它在Jekyll-ruby-Python工具鏈中越來越搖擺不定。然後,Jekyll用計算機更換升級到3.x似乎完全殺死了它。基本上,從分界線移動是什麼提示這個問題。 –
這不是直接找到你想要的,但是你可以嘗試修改vim的[Nvim-R]插件(https://github.com/jalvesaq/Nvim-R)中使用的方法,因爲它會更新R環境中加載的軟件包列表以突出顯示庫函數。也許你可以對R進行一次性調用,以填充這樣的函數列表,然後將其注入到CSS中。 – Philip