<<code>> マクロ

You are viewing an old version of this article. View the current version here.

構文

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

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.