« IPython Notebook使ってみた。 | トップページ | TortoiseHgでDropbox上にリポジトリを置いてみる »

2013年1月31日 (木)

ココログでpygmentsを使ってコードのハイライト

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter

def py2htmlcss(codeblock, basename='test', style='monokai'):
    
    with open(basename+'.html', 'w') as htmlfile:
        highlight(codeblock, PythonLexer(), HtmlFormatter(), htmlfile)

    with open(basename+'.css', 'w') as cssfile:
        CSS = HtmlFormatter(style=style).get_style_defs('.highlight')
        cssfile.write(CSS)

Pythonのライブラリであるpygmentsで出てきたHTMLとCSSを使ってココログに綺麗にコードを貼っつけるtestです。ハイライトされてない。。。

追記。そうか、HtmlFormatter(full=True)でフルオプションを指定して、スタイル指定を含んだHTMLを出力して、スタイルの部分をブログのサブタイトル(キャッチフレーズ)の部分に埋め込めばいいのか。(紆余曲折しましたが、ちゃんとカスカムCSSからできました。)

追記2。pygmentize.exeを使えば、こんなコード書かなくともよいのですね。まだmonokaiの背景色のグレーっぽい色が来ないなぁ。

追記3 HtmlFormatter(style='monokai')でmonokaiを指定すべきところ、あほでHtmlFormatter().get_style_defs('.monokai')なんてやっていたのでCSSに.monokaiというクラスの定義で60行できて、HTMLの方ではクラス名がデフォルトのhighlightになっているのがうまくいかない原因だった。

まとめ

普通はpygmentize.exeでやるのかもしれませんが、出てくるCSSが.hll { background-color: #49483e }からはじまっていて、.highlightを各行の頭に追加しないとhighlightのクラスだけに有効にしたいデザインが他のところにも影響してしまいます。

上のコードでやると、そのまま使えるHTMLとCSSが出てきます。

使い方:

codeblockに整形済みテキストでコードを渡すと、basenameで指定したファイル名でtest.htmlとかtest.cssとかができます。できたcssはそのままカスタムCSSに貼っつけ、あとはhtmlの方も記事そのままはっつけます。ちゃんとHTMLの編集タブの方に切り替えてから貼っつけましょう。わかってしまえば結構、簡単。

まあSyntaxHighlighterというjavascriptのライブラリを使うのが普通かもしれませんし、ココログでも使えるようです。どっちで行くかまよったんですが、pygmentsで先にレンダリングすると変換がないのでおそらくページの読み込みが速いのと、javascriptを切っていれもちゃんと見れるあたりがちょっと利点ですね。

追記4 コードに長い行があると右端で切れてしまうのでスクロールバーを足しました。CSSにpre { line-height: 125%; white-space: pre; overflow: auto; }を追加でうまくいきました。

« IPython Notebook使ってみた。 | トップページ | TortoiseHgでDropbox上にリポジトリを置いてみる »

パソコン・インターネット」カテゴリの記事

Python」カテゴリの記事

ココログ」カテゴリの記事

コメント

https://www.goldengoosesales.us.com/
https://www.pandora-jewelryoutlets.us.com/
https://www.pandorasjewelrycharms.us.com/
https://www.balenciagas.us.org/
http://www.yeezys.com.co/
https://www.pandorasjewelryofficialsite.us.com/
https://www.cheapnfljerseyswholesalefromchina.com.co/
https://www.jerseyswholesaleforcheap.us.com/
https://www.pandora-outletcharms.us.com/
https://www.cheapfootballjerseysfromchina.us.com/
https://www.pandorastores.us.com/
https://www.pandoracharms-bracelets.us.com/
https://www.pandoraoutletscharms.us/
https://www.shoeslouboutin.us.com/
https://www.jordan-4.us.com/
https://www.monclersjacketsoutlet.us.com/
https://www.jordan-shoesformen.us.com/
https://www.footballjerseysforcheap.us.com/
https://www.outletgoldengoose.us.com/
https://www.monclersale.com.co/
https://www.golden-gooses.us/
https://www.jordan11red.us.com/
https://www.jamesharden-shoes.us.org/
https://www.air-jordans11.us.com/
https://www.pandorashops.us.com/
https://www.nikeairforce1.us.org/
https://www.pandorajewelrysofficialsite.us.com/
https://www.curry-shoes.us.com/
https://www.asicsrunningshoess.us.com/
https://www.soccercleats.us.com/
https://www.cheapmoncler.com.co/
https://www.pandorass.us/
https://www.nflfootballjerseysnew.us.com/
https://www.pandorajewelrywebsites.us.com/
https://www.pandorasjewellery.us.com/
https://www.pandorasjewelry-officialsite.us.com/
https://www.pandorabraceletsjewelry.us.com/
https://www.newfootballjerseys.us.com/
https://www.nikeairjordan.us.com/
https://www.pandorasjewelrysite.us.com/
https://www.hockeyjerseyscheap.us.com/
https://www.pandoracharmsjewelrys.us/
https://www.kyrieirving-shoes.us.org/
https://www.cheapnfljerseyswholesale.com.co/
https://www.pandoraofficialsites.us.com/
https://www.ggdbshoes.us.com/
https://www.goldengoosesneakerss.us.com/
https://www.jerseyswholesalevip.us/
https://www.nike--shoes.us.com/
https://www.jordan-12.us.com/
https://www.pandorashops.us/
https://www.nikeoutletstoresonlineshopping.us.com/
https://www.pandorajewelrysbracelets.us.com/
https://www.outletnikestore.us.com/
https://www.airjordan11s.us.com/
https://www.jacketsmoncleroutlet.us.com/
https://www.goyardhandbagsoutlet.us.com/
https://www.new-jordans.us.com/
https://www.pandoraringsjewelry.us.com/
https://www.pandorasstore.us.com/
https://www.ferragamo-outlets.us/
https://www.eccos.us.com/
https://www.balenciagastores.us.com/
https://www.nikeshoes-cheap.us.com/
https://www.pandorascom.us.com/
https://www.cheapnfljerseysfromchina.com.co/
https://www.airforceoneshoes.us.com/
https://www.pandora-charmssaleclearance.us/
https://www.monclersfactory.us.com/
https://www.monclersaleoutlets.us.com/
https://www.pandoracharmss.us.com/
https://www.bestbasketballshoes.us/
https://www.adidasyeezysshoes.us.com/
https://www.cheapestmonclerjackets.us/
https://www.monclerjacketsstore.us.com/
https://www.pandorabraceletscharms.us.com/
https://www.airmax270.us.org/
https://www.pandorasofficialsite.us.com/
https://www.goldengoosessneakers.us.com/
https://www.ferragamosbelts.us.com/
https://www.pandorasjewelryoff.us.com/
https://www.red-bottomsshoes.us.com/
https://www.airjordansneakers.us.com/
https://www.pandoracanadajewelry.ca/
https://www.pandoracom.us/
https://www.pandorasjewelry.ca/
https://www.jordans-sneakers.us.com/
https://www.pandoracharms-bracelets.us/
https://www.balenciagasneakersoutlet.us.com/
https://www.nikeairmax98.us/
https://www.pandorajewelryofficial-site.us/
https://www.jordan11winlike96.us/
https://www.jordanshoess.us.com/
https://www.pandorajewelryshop.us.com/
https://www.wholesalecheapjerseysfromchina.us/
https://www.huarachesnike.us.com/
https://www.officialfootballjerseys.us.com/
https://www.pandorajewelrysblackfriday.us.com/
https://www.pandoraonline.us/
https://www.jordanshoesretro.us.com/
https://www.jordan9.us.com/
https://www.newjordansshoes.us.com/
https://www.jordan10.us.com/
https://www.goldengoosecom.us/
https://www.goldengooseshoess.us.com/
https://www.jordans11.us.com/
https://www.mlbshops.com.co/
https://www.pandorajewelry-officialsites.us/
https://www.monclervest.us.com/
https://www.canadapandoracharms.ca/
https://www.monclercoatsjacketsoutlet.us.com/
https://www.baseballjerseyssale.us.com/
https://www.pandorabraceletsclearance.us.com/
https://www.monclerstores.us.com/
https://www.ggdbs.us.com/
https://www.valentinosshoes.us.org/
https://www.yeezys-shoes.us.org/
https://www.nikeair-maxs.us.com/
https://www.nflstores.com.co/
https://www.yeezys-shoes.us.com/
https://www.sneakersgoldengoose.us.com/
https://www.airjordanretro11.us.com/
https://www.ferragamos.us.org/
http://www.pandorarings.us.com/
https://www.pumashoess.us.com/
https://www.fitflop-shoes.us.org/
https://www.adidasnmdr1.us.org/
https://www.pandoras-charms.us.com/
https://www.monclercom.us.com/
https://www.pandoraoutletjewelry.us.com/
https://www.goldengoosemidstar.us.com/
https://www.shoesasicsoutlet.us.com/
https://www.balenciagasneakerssales.us.com/
https://www.redbottomslouboutin.us.org/
https://www.retro-jordans.us/
https://www.charmspandoras.us/
https://www.goldensgoose.us.com/
https://www.newshoes2021.us/
https://www.louboutinsshoes.us.com/
https://www.jordanretros.us.com/
https://www.nflfanshop.com.co/
https://www.outletsmonclerjackets.us.com/
https://www.trainersforsale.uk.com/
https://www.monclerstoreoutlet.us.com/
https://www.moncler-outletjackets.us.com/
https://www.pandoraringssite.us/
https://www.pandorasjewelrys.us.com/
https://www.birkin-bag.us.com/
https://www.fjallraven-kanken.us.com/
https://www.pandora-jewellery.us.com/
https://www.moncleroutletstoreonline.us.com/
https://www.goldengooseoutletfactory.us.com/
https://www.ggdbsneakers.us.com/
https://www.air-max90.us.com/
https://www.balenciagatriples.us.org/
https://www.jameshardenshoes.com.co/
https://www.monclercoat.com.co/
https://www.jordan14.us.com/
https://www.nike-airmax2018.us.com/
https://www.jordanretro-11.us.com/
https://www.pandora-braceletcharms.us/
https://www.pandorasbraceletcharms.us.com/
https://www.hockeyjerseyswholesale.us.com/
https://www.yeezyonline.us.com/
https://www.outletstoreonlineshopping.com.co/
https://www.monclerjacket.us.org/
https://www.airmax-95.us.com/
https://www.nmds.us.com/
https://www.redbottomshoeslouboutin.us.com/
https://www.pandorasoutlet.us.com/
https://www.monclerjacket.com.co/
https://www.nflfootballjerseys.com.co/
https://www.pandoraoutletsonline.us.com/
https://www.pandoracharmsstore.us.com/
https://www.jewelryspandora.us/
https://www.hockeyjerseyscheap.us/
https://www.goyardbagsoutlet.us.com/
https://www.cheapshoesoutletonlines.us/
https://www.jordan11low.us.com/
https://www.fitflopsclearance.us.com/
https://www.jordan-8.us/

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: ココログでpygmentsを使ってコードのハイライト:

« IPython Notebook使ってみた。 | トップページ | TortoiseHgでDropbox上にリポジトリを置いてみる »

しろののツイッタータイムライン(凍結中)

オススメたち

2021年7月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

はてブ

無料ブログはココログ