Help us understand the problem. What is going on with this article?

Markdownを印刷する

html化にはqiita-markdownを使用。activesupportを前もって入れているのは、qiita-markdownのdependencyにactivesupportを要求するのがあり、最新のactivesupportはRuby 2.3にはインストールできないからである。
なおこのactivesupportはqiita-markdownのdevelopment dependencyと同じバージョン。

pdf化には、wkhtmltopdfを使いたかったが、先頭のfont-familyだけが使われるバグがあるようなので、google-chromeを使うしかなさそう。ヘッダを消去するためにmarginを調整。

if ! ruby -rqiita-markdown -e1 2>/dev/null; then
  sudo gem install -v 4.2.6 activesupport --no-ri
  # sudo gem install charlock_holmes --with-cxxflags=\'-Wno-reserved-user-defined-literal -std=c++11\'
  sudo gem install -v 0.27.0 qiita-markdown --no-ri
fi

dir=$(dirname "$(basename "$0")")
cd "$dir"
./md2html.rb src.md
google-chrome --headless  --disable-gpu --print-to-pdf=src.md.pdf src.md.html

CSSはdefault-theme.cssが使える模様。
https://github.com/increments/kobito-oss/blob/master/application/src/styles/default-theme.scss をコンパイルすることで取得できます。最短手順は以下。

brew install sass/sass/sass
script/build
cd application/src/styles
sass default-theme.scss > default-theme.css

本来ハイライトエンジンがhighlight.jsとpygments.rbで違うので、もろもろおかしくてもしかたないのだが、幸いmarkdown_content.scss部分がまあまあいい感じに効くらしい。

一応。https://pastebin.com/4fTAxbHa にもgz.b64を置いておきました。

md2html.rb
#!/usr/bin/ruby
#coding:utf-8

require 'qiita-markdown'

dir = File.dirname File.realpath __FILE__
if ARGV.empty?
  STDERR.puts 'generate.rb source.md'
  exit
end
mdfile = ARGV[0]

doc = File.read mdfile
processor = Qiita::Markdown::Processor.new hostname:'example.com'
parse_result = processor.(doc)
File.write mdfile+'.html',<<EOM
<html><head>
<link rel="stylesheet" href="default-theme.css" type="text/css"></link>
<style type="text/css">
<!--
@media print {
  @page {
    margin-top: 20px;
    margin-bottom: 20px;
  }
}
body {
  overflow: visible;
  word-break: break-all;
}
.highlight pre {
  width: 99%;
  white-space: pre-wrap;
}
.markdown-content .code-frame {
  background-color: #e8e8e8;
}
-->
</style>
</head><body>
<div class="markdown-content">
#{parse_result[:output].to_html}
</div>
</body></html>
EOM

追伸

OSX版KobitoのCSSが使いたくて実験環境作ろうとしたが、そもそもハイライトエンジンが違うから無駄だったっていうね。悲惨。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした