<<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>>
次のように表示されます:
コード イタリック体に 他のコード 太字に さらに他のコード
開始タグと終了タグは、同じ行に記述する必要があります。