Podświetlanie składni markdown bloków kodu w Jekyll (bez użycia znaczników liquid)
Wygląda na to, że podświetlanie składni w Jekyll jest ograniczone do używania znaczników liquid i pigmentów w ten sposób:
{% highlight bash %}
cd ~
{% endhighlight %}
Ale zaimportowałem mój istniejący blog z WordPressa i został napisany w markdown (używając bloków kodu markdown) i nie chcę przechodzić przez każdy post i naprawiać bloki kodu. Chcę również zachować moje posty w czystym formacie markdown na wypadek, gdybym znowu musiał przełączyć platformy blogowe.
Zamieniłem mój Parser Jekyll na redcarpet
z nadzieją, że mogę użyć składnia this markdown:
```bash
cd ~
```
Ale to chyba nie działa. Po prostu zawija go w normalny code
blok. Jakieś pomysły? 9 answers
Ogrodzone bloki zostały wprowadzone z Redcarpet 2. Jekyll Teraz obsługuje Redcarpet 2
Na marginesie używam Redcarpet z Rouge do Obsługa Kramdown jest dostępny.
DODATKOWO niektórzy wolą Nanoc za Jekylla.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-26 14:18:26
Alternatywne rozwiązanie
Markdown pozwala na HTML, więc jeśli nie masz nic przeciwko dodaniu trochę JS, możesz to zrobić:
## A section
Here is some Ruby code.
<pre>
<code class="ruby">
puts "hello"
</code>
</pre>
Wtedy możesz użyć podświetlenia.js (documentation here) aby dodać podświetlenie na podstawie tej klasy.
Nie jest to idealne rozwiązanie, ale powinno działać z każdym parserem Markdown.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-04 19:16:20
Skończyło się na przełączeniu na kramdown na parse markdown, który jest dostarczany z coderay do podświetlania składni. Ma to tę zaletę, że jest czystym rozwiązaniem ruby, które działa na heroku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-28 22:49:17
Punkt 1. Install Redcarpet .
gem install redcarpet
Punkt 2. zaktualizuj ustawienia budowania w swoim _config.yaml
w ten sposób.
# Build settings
#markdown: kramdown
markdown: redcarpet
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-18 05:12:53
W najnowszych blokach kodu jekyll wsparcie, ale jeśli używasz starszej wersji, trzeba włamać.
Może poniżej?
Spróbuj dodać plik poniżej jako swój _plugin/triple-backtick.rb
module Jekyll
class MarkdownConverter
alias :old_convert :convert
def convert(content)
content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text|
cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}"
"<pre class=\"#{cls}\"><code>#{$2}</code></pre>"
end
old_convert(content)
end
end
end
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-06 00:00:52
Redcarpet jest domyślnie zintegrowany z Jekyll i podświetlanie kodu będzie działać zgodnie z oczekiwaniami.
Dla starszych blogów Jekylla:
-
Zainstaluj klejnot redcarpet:
gem install redcarpet
-
Update _config.yaml
markdown: redcarpet
Dla odniesienia i dalszych informacji patrz:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-29 01:32:32
Opisałem 2 alternatywne rozwiązania do dodawania poprawnie sformatowanych fragmentów kodu do witryny napędzanej Jekyll. http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html . nie polegają na wtyczkach stron 3-rd i są kompatybilne z darmowym hostingiem stron GitHub.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 18:16:36
Więc wpadłem na ten problem, jak również i po walenie głową wokół wielu miejscach w końcu zdałem sobie sprawę z oficjalnego wsparcia redcarpet2 w Jekyll jest to dość proste. Zapisz to w swoim _config.yml
# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
Upewnij się, że Masz plik pygments css i jest on dołączony. TEN KROK JEST WAŻNY.
Możesz przeczytać mój wpis na bloguhttp://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/{[9]po szczegóły.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 22:29:13
Można również użyć składni triple-tilde:
~~~ruby
class Base
def two
1 + 1
end
end
~~~
, który jest obsługiwany przez Kramdown (Jekyll).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-22 23:28:02