<<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>>
# その三
  1. その一
  2. その二
    int main(void) {
        return;
    }
    
  3. その三

シンタックスハイライト

<<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 パーサーは適切な値を推測しようとします。)

有効な値は truefalse です。

これは <<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 のコード

です。

シンタックスハイライト可能な言語一覧

LanguageAllowed Short Name(s)
ABAPabap
ActionScript 3as3 actionscript3
ActionScriptas actionscript
Adaada ada95ada2005
ANTLR With ActionScript Targetantlr-as antlr-actionscript
ANTLR With C# Targetantlr-csharp antlr-c#
ANTLR With CPP Targetantlr-cpp
ANTLR With Java Targetantlr-java
ANTLR With ObjectiveC Targetantlr-objc
ANTLR With Perl Targetantlr-perl
ANTLR With Python Targetantlr-python
ANTLR With Ruby Targetantlr-ruby antlr-rb
ANTLRantlr
ApacheConfapacheconf aconf apache
AppleScriptapplescript
aspx-csaspx-cs
aspx-vbaspx-vb
Asymptoteasy asymptote
Bash Sessionconsole
Bashbash sh ksh
Batchfilebat
BBCodebbcode
Befungebefunge
Booboo
Brainfuckbrainfuck bf
C#csharp c#
C++cpp c++
c-objdumpc-objdump
cfstatementcfs
Cheetahcheetah spitfire
Clojureclojure clj
CMakecmake
CoffeeScriptcoffee-script coffeescript
Coldufsion HTMLcfm
Common Lispcommon-lisp cl
cpp-objdumpcpp-objdump c++-objdumb cxx-objdump
CSS+Django/Jinjacss+django css+jinja
CSS+Genshi Textcss+genshitext css+genshi
CSS+Makocss+mako
CSS+Myghtycss+myghty
CSS+PHPcss+php
CSS+Rubycss+erb css+ruby
CSS+Smartycss+smarty
CSScss
Cythoncython pyx
Cc
d-objdumpd-objdump
Darcs Patchdpatch
Debian Control filecontrol
Debian Sourcelistsourceslist sources.list
Delphidelphi pas pascal objectpascal
Diffdiff udiff
Django/Jinjadjango jinja
Dylandylan
Dd
Embedded Ragelragel-em
ERBerb
Erlang erl sessionerl
Erlangerlang
Evoqueevoque
Felixfelix flx
Fortranfortran
GASgas
Genshi Textgenshitext
Genshigenshi kid xml+genshi xml+kid
Gettext Catalogpot po
GherkinCucumber cucumber Gherkin gherkin
GLSLglsl
Gnuplotgnuplot
Gogo
Groffgroff nroff man
Hamlhaml HAML
Haskellhaskell hs
haXehx haXe
HTML+Cheetahhtml+cheetah html+spitfire
HTML+Django/Jinjahtml+django html+jinja
HTML+Evoquehtml+evoque
HTML+Genshihtml+genshi html+kid
HTML+Makohtml+mako
HTML+Myghtyhtml+myghty
HTML+PHPhtml+php
HTML+Smartyhtml+smarty
HTMLhtml
INIini cfg
Ioio
IRC logsirc
Java Server Pagejsp
JavaScript+Cheetahjs+cheetah javascript+cheetah js+spitfire javascript+spitfire
JavaScript+Django/Jinjajs+django javascript+django js+jinja javascript+jinja
JavaScript+Genshi Textjs+genshitext js+genshi javascript+genshitext javascript+genshi
JavaScript+Makojs+mako javascript+mako
JavaScript+Myghtyjs+myghty javascript+myghty
JavaScript+PHPjs+php javascript+php
JavaScript+Rubyjs+erb javascript+erb js+ruby javascript+ruby
JavaScript+Smartyjs+smarty javascript+smarty
JavaScriptjs javascript
Javajava
Lighttpd configuration filelighty lighttpd
Literate Haskelllhs literate-haskell
LLVMllvm
Logtalklogtalk
Lualua
Makefilebasemake
Makefilemake makefile mf bsdmake
Makomako
Matlab sessionmatlabsession
Matlabmatlab octave
MiniDminid
Modelicamodelica
Modula-2modula2 m2
MoinMoin/Trac Wiki markuptrac-wiki moin
MOOCodemoocode
MuPADmupad
MXMLmxml
Myghtymyghty
MySQLmysql
NASMnasm
Newspeaknewspeak
Nginx configuration filenginx
NumPynumpy
objdumpobjdump
Objective-Cobjective-c objectivec obj-c objc
Objective-Jobjective-j objectivej obj-j objj
OCamlocaml
Oocooc
Perlperl pl
PHPphp php3 php4 php5
POVRaypov
Prologprolog
Python 3.0 Tracebackpy3tb
Python 3python3 py3
Python console sessionpycon
Python Tracebackpytb
Pythonpython py
Ragel in C Hostragel-c
Ragel in CPP Hostragel-cpp
Ragel in D Hostragel-d
Ragel in Java Hostragel-java
Ragel in Objective C Hostragel-objc
Ragel in Ruby Hostragel-ruby ragel-rb
Ragelragel
Raw token dataraw
RConsolerconsole rout
REBOLrebol
Redcoderedcode
reStructuredTextrst rest restructuredtext
RHTMLrhtml html+erb html+ruby
Ruby irb sessionrbcon irb
Rubyrb ruby
Sasssass SASS
Scalascala
Schemescheme scm
Smalltalksmalltalk squeak
Smartysmarty
sqlite3consqlite3
SQLsql
SquidConfsquidconf squid.conf squid
Ssplus s r
Tcltcl
Tcshtcsh csh
Text onlytext
TeXtex latex
Valavala vapi
VB.NETvb.net vbnet
VimLvim
XML+Cheetahxml+cheetah xml+spitfire
XML+Django/Jinjaxml+django xml+jinja
XML+Evoquexml+evoque
XML+Makoxml+mako
XML+Myghtyxml+myghty
XML+PHPxml+php
XML+Rubyxml+erb xml+ruby
XML+Smartyxml+smarty
XMLxml
XSLTxslt
YAMLyaml

書式設定

コードブロック中で Creole の書式設定を使うには、<<creole>><</creole>> タグを使用します。

例:

<<code>>
コード <<creole>>//イタリック体に//<</creole>>
他のコード <<creole>>**太字に**<</creole>>
さらに他のコード
<</code>>

次のように表示されます:

コード イタリック体に
他のコード 太字に
さらに他のコード

開始タグと終了タグは、同じ行に記述する必要があります。

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.