<<code>> マクロ
目次
構文
<<code [lang=name] [inline={true|false}] [indent=L] [wrap={true|false}]>> ここにコードを記述します <</code>>
name
をコードの言語名に置き換えてください。 有効な言語名については、後述の シンタックスハイライト可能な言語一覧 を参照してください。indent
について、L を字下げレベル (1〜4) に置き換えてください。 (リスト の余白の大きさと対応しています)wrap
を指定すると、行を折り返すかどうか制御できます。既定では、コードブロックをスクロールするようになっています。
概要
<<code>>
マクロを利用すると、記事中にソースコードを記載できます。
簡単な例:
<<code>> from reversion.models import Revision from .helpers import ProcessedContent class Node(models.Model): language = models.CharField(max_length=10, default='en-us') <</code>>
……以上は次のように表示されます:
from reversion.models import Revision from .helpers import ProcessedContent class Node(models.Model): language = models.CharField(max_length=10, default='en-us')
折り返しとスクロールの違い
<<code wrap=false>> if self.is_image: return reverse('nodes:image', kwargs={'slug': self.node.slug, 'image_slug': self.slug, 'language': self.node.language}) else: return reverse('nodes:attachment', kwargs={'slug': self.node.slug, 'attachment_slug': self.slug, 'language': self.node.language}) <</code>>
……以上は次のように表示されます:
if self.is_image: return reverse('nodes:image', kwargs={'slug': self.node.slug, 'image_slug': self.slug, 'language': self.node.language}) else: return reverse('nodes:attachment', kwargs={'slug': self.node.slug, 'attachment_slug': self.slug, 'language': self.node.language})
<<code wrap=true>> if self.is_image: return reverse('nodes:image', kwargs={'slug': self.node.slug, 'image_slug': self.slug, 'language': self.node.language}) else: return reverse('nodes:attachment', kwargs={'slug': self.node.slug, 'attachment_slug': self.slug, 'language': self.node.language}) <</code>>
……以上は次のように表示されます:
if self.is_image: return reverse('nodes:image', kwargs={'slug': self.node.slug, 'image_slug': self.slug, 'language': self.node.language}) else: return reverse('nodes:attachment', kwargs={'slug': self.node.slug, 'attachment_slug': self.slug, 'language': self.node.language})
<<code>> とリンク
<<code>>
マクロとリンクは相性が悪いので、行中のコードにリンクを張りたい場合は ##...##
を使用してください。
例えば、[[insert|<<code>>INSERT<</code>>]]
や <<code>>[[insert|INSERT]]<</code>>
の代わりに、次のように記述します。
##[[insert|INSERT]]##
<<code>> とリスト
コードブロックをリスト項目の中に入れたい場合、特にコードブロックの後で番号付けを再開したい場合は、リスト項目内のテキストと同じ行に、コードブロックの最初の行を記述しなければなりません。(おそらく inline=false
を指定する必要がありますが、構文解析器の新しいバージョンなどではこの問題に対処できる可能性があります。わからない場合は両方を試してみてください。)
例:
# その一 # その二<<code inline=false>>int main(void) { return; } <</code>> # その三
- その一
- その二
int main(void) { return; }
- その三
シンタックスハイライト
<<code>>
マクロでシンタックスハイライトも可能です。
次のようにして、上記の Python の例をシンタックスハイライトさせることができます。
<<code lang=python>> from reversion.models import Revision from .helpers import ProcessedContent class Node(models.Model): language = models.CharField(max_length=10, default='en-us') <</code>>
from reversion.models import Revision from .helpers import ProcessedContent class Node(models.Model): language = models.CharField(max_length=10, default='en-us')
インラインレベルとブロックレベル
lang=
属性が付いた <<code>>
マクロを使用している場合、コードを行中に配置するか、ブロックレベルで表示するか指定することができます。
(inline 属性が指定されていない場合、Creole パーサーは適切な値を推測しようとします。)
有効な値は true
と false
です。
これは <<code lang=c inline=true>>inline=true のコード<</code>> です。
これは inline=true のコード
です。
これは <<code lang=c inline=false>>inline=false のコード<</code>> です。
これは
inline=false のコード
です。
これは <<code lang=c inline=none>>inline=none のコード<</code>> です。
これは
inline=none のコード
です。
シンタックスハイライト可能な言語一覧
Language | Allowed Short Name(s) |
---|---|
ABAP | abap |
ActionScript 3 | as3 actionscript3 |
ActionScript | as actionscript |
Ada | ada ada95ada2005 |
ANTLR With ActionScript Target | antlr-as antlr-actionscript |
ANTLR With C# Target | antlr-csharp antlr-c# |
ANTLR With CPP Target | antlr-cpp |
ANTLR With Java Target | antlr-java |
ANTLR With ObjectiveC Target | antlr-objc |
ANTLR With Perl Target | antlr-perl |
ANTLR With Python Target | antlr-python |
ANTLR With Ruby Target | antlr-ruby antlr-rb |
ANTLR | antlr |
ApacheConf | apacheconf aconf apache |
AppleScript | applescript |
aspx-cs | aspx-cs |
aspx-vb | aspx-vb |
Asymptote | asy asymptote |
Bash Session | console |
Bash | bash sh ksh |
Batchfile | bat |
BBCode | bbcode |
Befunge | befunge |
Boo | boo |
Brainfuck | brainfuck bf |
C# | csharp c# |
C++ | cpp c++ |
c-objdump | c-objdump |
cfstatement | cfs |
Cheetah | cheetah spitfire |
Clojure | clojure clj |
CMake | cmake |
CoffeeScript | coffee-script coffeescript |
Coldufsion HTML | cfm |
Common Lisp | common-lisp cl |
cpp-objdump | cpp-objdump c++-objdumb cxx-objdump |
CSS+Django/Jinja | css+django css+jinja |
CSS+Genshi Text | css+genshitext css+genshi |
CSS+Mako | css+mako |
CSS+Myghty | css+myghty |
CSS+PHP | css+php |
CSS+Ruby | css+erb css+ruby |
CSS+Smarty | css+smarty |
CSS | css |
Cython | cython pyx |
C | c |
d-objdump | d-objdump |
Darcs Patch | dpatch |
Debian Control file | control |
Debian Sourcelist | sourceslist sources.list |
Delphi | delphi pas pascal objectpascal |
Diff | diff udiff |
Django/Jinja | django jinja |
Dylan | dylan |
D | d |
Embedded Ragel | ragel-em |
ERB | erb |
Erlang erl session | erl |
Erlang | erlang |
Evoque | evoque |
Felix | felix flx |
Fortran | fortran |
GAS | gas |
Genshi Text | genshitext |
Genshi | genshi kid xml+genshi xml+kid |
Gettext Catalog | pot po |
Gherkin | Cucumber cucumber Gherkin gherkin |
GLSL | glsl |
Gnuplot | gnuplot |
Go | go |
Groff | groff nroff man |
Haml | haml HAML |
Haskell | haskell hs |
haXe | hx haXe |
HTML+Cheetah | html+cheetah html+spitfire |
HTML+Django/Jinja | html+django html+jinja |
HTML+Evoque | html+evoque |
HTML+Genshi | html+genshi html+kid |
HTML+Mako | html+mako |
HTML+Myghty | html+myghty |
HTML+PHP | html+php |
HTML+Smarty | html+smarty |
HTML | html |
INI | ini cfg |
Io | io |
IRC logs | irc |
Java Server Page | jsp |
JavaScript+Cheetah | js+cheetah javascript+cheetah js+spitfire javascript+spitfire |
JavaScript+Django/Jinja | js+django javascript+django js+jinja javascript+jinja |
JavaScript+Genshi Text | js+genshitext js+genshi javascript+genshitext javascript+genshi |
JavaScript+Mako | js+mako javascript+mako |
JavaScript+Myghty | js+myghty javascript+myghty |
JavaScript+PHP | js+php javascript+php |
JavaScript+Ruby | js+erb javascript+erb js+ruby javascript+ruby |
JavaScript+Smarty | js+smarty javascript+smarty |
JavaScript | js javascript |
Java | java |
Lighttpd configuration file | lighty lighttpd |
Literate Haskell | lhs literate-haskell |
LLVM | llvm |
Logtalk | logtalk |
Lua | lua |
Makefile | basemake |
Makefile | make makefile mf bsdmake |
Mako | mako |
Matlab session | matlabsession |
Matlab | matlab octave |
MiniD | minid |
Modelica | modelica |
Modula-2 | modula2 m2 |
MoinMoin/Trac Wiki markup | trac-wiki moin |
MOOCode | moocode |
MuPAD | mupad |
MXML | mxml |
Myghty | myghty |
MySQL | mysql |
NASM | nasm |
Newspeak | newspeak |
Nginx configuration file | nginx |
NumPy | numpy |
objdump | objdump |
Objective-C | objective-c objectivec obj-c objc |
Objective-J | objective-j objectivej obj-j objj |
OCaml | ocaml |
Ooc | ooc |
Perl | perl pl |
PHP | php php3 php4 php5 |
POVRay | pov |
Prolog | prolog |
Python 3.0 Traceback | py3tb |
Python 3 | python3 py3 |
Python console session | pycon |
Python Traceback | pytb |
Python | python py |
Ragel in C Host | ragel-c |
Ragel in CPP Host | ragel-cpp |
Ragel in D Host | ragel-d |
Ragel in Java Host | ragel-java |
Ragel in Objective C Host | ragel-objc |
Ragel in Ruby Host | ragel-ruby ragel-rb |
Ragel | ragel |
Raw token data | raw |
RConsole | rconsole rout |
REBOL | rebol |
Redcode | redcode |
reStructuredText | rst rest restructuredtext |
RHTML | rhtml html+erb html+ruby |
Ruby irb session | rbcon irb |
Ruby | rb ruby |
Sass | sass SASS |
Scala | scala |
Scheme | scheme scm |
Smalltalk | smalltalk squeak |
Smarty | smarty |
sqlite3con | sqlite3 |
SQL | sql |
SquidConf | squidconf squid.conf squid |
S | splus s r |
Tcl | tcl |
Tcsh | tcsh csh |
Text only | text |
TeX | tex latex |
Vala | vala vapi |
VB.NET | vb.net vbnet |
VimL | vim |
XML+Cheetah | xml+cheetah xml+spitfire |
XML+Django/Jinja | xml+django xml+jinja |
XML+Evoque | xml+evoque |
XML+Mako | xml+mako |
XML+Myghty | xml+myghty |
XML+PHP | xml+php |
XML+Ruby | xml+erb xml+ruby |
XML+Smarty | xml+smarty |
XML | xml |
XSLT | xslt |
YAML | yaml |
書式設定
コードブロック中で Creole の書式設定を使うには、<<creole>>
〜 <</creole>>
タグを使用します。
例:
<<code>> コード <<creole>>//イタリック体に//<</creole>> 他のコード <<creole>>**太字に**<</creole>> さらに他のコード <</code>>
次のように表示されます:
コード イタリック体に 他のコード 太字に さらに他のコード
開始タグと終了タグは、同じ行に記述する必要があります。