概要

インストール

  • setup-x86_64.exeなどから、rubyrubygemsなどをインストール
  • ~/.gemrcを作成
    ---
    gem: "--no-ri --no-rdoc --user-install"
    :benchmark: false
    :verbose: true
    :backtrace: true
    :update_sources: true
    :bulk_threshold: 1000
    :sources:
    - http://gemcutter.org
    - http://gems.rubyforge.org/
    - http://gems.github.com
    
gem install jekyll
    #
    # Error
    #
    class Error < ::StandardError
      module Kernel32
        extend Fiddle::Importer
        dlload "kernel32.dll"
      end
#     FormatMessageA = Kernel32.extern "int FormatMessageA(int, void *, int, int, void *, int, void *)", :stdcall
#     def initialize(code)
#       @code = code
#       msg = "\0".force_encoding(Encoding::ASCII_8BIT) * 1024
#       len = FormatMessageA.call(0x1200, 0, code, 0, msg, 1024, 0)
#       msg = msg[0, len].force_encoding(Encoding.find(Encoding.locale_charmap))
#       super msg.tr("\r", '').chomp
#     end
      FormatMessageW = Kernel32.extern "int FormatMessageW(int, void *, int, int, void *, int, void *)", :stdcall
      def initialize(code)
        @code = code
        msg = "\0\0".force_encoding(Encoding::UTF_16LE) * 1024
        len = FormatMessageW.call(0x1200, 0, code, 0, msg, msg.size, 0)
        msg = msg[0, len].encode(Encoding.find(Encoding.locale_charmap))
        super msg.tr("\r".encode(msg.encoding), '').chomp
      end
      attr_reader :code
    end
  • /usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: -lcrypt が見つかりませんとエラーになる場合
    • libcrypt-develsetup-x86_64.exeからインストールしてgem install jekyllを再実行
export PKG_CONFIG_PATH="/lib/pkgconfig"
gem install jekyll

Jekyll で google-code-prettify

パーサーをkramdownにして、行頭タブ(4スペース)ブロックの直後に{:class="prettyprint"}、または{:.prettyprint}を追加

 def parse_pre(lines)
   [%Q|#{lines.map {|line| "\t".concat(line) }.join("\n")}|, %Q|{:class="prettyprint"}|]
 end
### サンプルコード
	trayIcon.displayMessage("caption", "text", TrayIcon.MessageType.ERROR);
{:class="prettyprint"}

結果

<h3 id="section">サンプルコード</h3>
<pre class="prettyprint"><code>trayIcon.displayMessage("caption", "text", TrayIcon.MessageType.ERROR);
</code></pre>

default.htmlprettify.js, prettify.cssを追加

<link href="{{ ASSET_PATH }}/css/prettify.css" type="text/css" rel="stylesheet" />
</head>
<body onload="prettyPrint()">
...
<script src="{{ ASSET_PATH }}/js/prettify.js"></script>
</body>

redcarpet

# _config.yml
markdown: redcarpet
redcarpet:
   renderer: Redcarpet::Render::XHTML
   extensions: ["xhtml", "fenced_code_blocks", "strikethrough", "no_intra_emphasis", "lax_spacing"]
  • no_intra_emphasis
    • <pre><code>の中でも、アンダーライン(例: InputMap im = combobox.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);)が、<em>...</em>に変換されるので、no_intra_emphasisで回避

コメント