簡體   English   中英

如何在語法突出顯示的降價代碼中標記搜索短語?

[英]How to mark search phrase in syntax highlighted markdown code?

在我的rails博客應用中,我可以編寫帖子正文markdown(我正在使用redcarpet進行Markdown解析,並使用CodeRay進行語法高亮顯示)。

我有一個搜索頁面,該頁面返回包含搜索查詢字符串的帖子。

我使用rails助手突出顯示查詢:

@post.body = highlight(@post.body, @query_phrase, highlighter: '<span class=\\'highlighted\\'>\\1</span>'))

我使用CSS將突出顯示的類的背景設置為黃色。

帖子正文按在文本區域中輸入的形式存儲(如markdown,未轉換),並且在渲染諸如posts#show和搜索結果之類的只讀視圖時處理markdown。

問題是當我搜索單詞'ruby'時,輸入的markdown使用帶有語言名稱的帶圍欄的代碼塊來突出顯示語法,搜索結果變得混亂。

這是身體減價:

ruby

```ruby
puts "Hello, world"
```

這是搜索結果的屏幕截圖:

搜索結果截圖

這是可以理解的,因為在受防護的代碼塊之后的匹配“ ruby​​”被span和class包裹起來以突出顯示,但是markdown現在可以看到

```<span class='highlighted'>ruby</span> 

並按原樣輸出跨度。

並且在代碼內也會發生類似的問題,其中代碼內的匹配項也會被包裝並隨搜索結果中的跨度一起輸出。

如何避免這種情況,並讓搜索突出顯示所輸出markdown中的實際短語,最好不必保留markdown的html輸出?

您應該先將其轉換為HTML,然后再通過highlight進行傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM