#format md
#acl +All:read

# 編集ガイドライン
Wikiの編集のためのガイドラインです。

[TOC]

## ページの作成

まず、**作成したいページに対するリンクをどこかのページの編集画面から作って下さい**。リンクは`[[ページ名]]`で作成できます。そして、そのリンクをたどると、ページ作成画面が出てきます。一からページを作成するか、既存のテンプレートを元にページを作成するか聞かれますが、[[ClassNoteTemplate]]、[[ReadingTemplate]]などの**テンプレートを選んでページを作成することを推奨します**。具体的にどれを選ぶかは、「個々の記事について」を参照してください。

`[[/ページ名]]`という形でリンクを作成すると、そのページはリンクを作成したページ(親ページ)のサブページとなります。親ページ以外からサブページを参照するには、`[[親ページ名/サブページ名]]`という形でリンクを生成します。

IS2013全体に関係のありそうな公共性が高い項目(講義、イベントなど)に関するページは、トップページからリンクを張って作成してください。個別の講義について、講義の受講者全体に関係のあるページ(発表割り当てなど)は、講義ページのサブページとして作成して下さい。

一方、**そんなに学科全体に関係無さそうなページは、個人ページのサブページとして作成してください**。個人ページのサブページは、個人ページからリンクを貼ることで作成するので、必然的に[[ガイドライン]]に書いているようにして個人ページも作ることになります。

課題の解き方のメモなども、個人ページのサブページに作成することをおすすめします。中々Wikipediaのように匿名的に文章を書けないもので、文章の中に一人称が入っているのに誰が書いたか分からない文章ができてしまいがちだからです。一々署名をつけるのも冗長そうですし。

作成したページの先頭には、

~~~
#format md
~~~

という行を追加してください。これは、標準の記法でなくMarkdownという記法を使うという意味です。全ページをMarkdown記法で統一したいと思います。

標準では、新しく作成されたページは13erおよびそれに準ずる権限を持った人しか閲覧することができないようになっています。

~~~
#acl +All:read
~~~

という行を二行目に追加すれば、誰もが見れるようになります。

実際のページのテキストは以下のようになります。

~~~
#format md
#acl +All:read

# タイトル
blah blah blah [[リンク]]も作れるよ
~~~

ここで、タイトルの前に一つ空行を空けておかないといけません。単純に#キーワードが被っているせいです。

プライベートにする理由が特に無い記事はパブリックにすることをおすすめします。あなたの記事が知らない誰かにとって1ミリくらいは意味ある情報である可能性があります。

## 個々の記事について
### フロントページ
「お知らせ」に項目を追加するときは、新しい項目を上に追加してください。署名@SIG@を最後に付加してください。古くなった項目は、適宜[[古いお知らせ]]ページに移動します。

### やりたい事
項目を追加するときは、新しい項目を上に追加してください。署名&#x40;SIG&#x40;を最後に付加してください。解決したら、<del\>で囲って打ち消し線を引いておいてください。古くなった項目は適宜削除します。

### 講義に関する資料やメモ
講義に関する資料(課題メモ、発表割り当てなど)は、[[ClassNoteTemplate]]を使って作成することをおすすめします。作成する場所は、個人ページのサブページか、講義ページのサブページかいずれかになると思います。

テンプレート内のコメントに書いてあるように、講義に対応するようなHogeClass&#x43;ategoryへのリンクを講義資料ページ末尾に作っておけば、自動的に講義ページから個別の講義資料ページへリンクが生成されます。

講義ページのサブページとして資料ページを作成した場合は、サブページを作るためのリンクと、自動的に生成されるリンクの二つのリンクが出来ることになりますが、気にしなくていいです。

### 読み物
読み物を作成するときは[[ReadingTemplate]]を利用することをおすすめします。大体は個人ページのサブページとして作成することになるでしょう。

ページ末尾にReading&#x43;ategoryへのリンクを作っておくと、自動的に読み物一覧に追加されます(まだ読み物一覧のページは無いのですが)。

### 新しい講義のページ
講義ページは[[ClassPageTemplate]]を使って作成してください。

### その他
[[DefaultTemplate]]を利用することをおすすめします。

## 記法について
**Wikiに載っているマニュアルはMoinMoin標準の記法のマニュアルであり、したがって一切役に立ちません。**正しいマニュアルに入れ替えるべきだとは思います。

[Python Markdown](http://pythonhosted.org/Markdown/)というライブラリを用いており、extraという拡張機能が有効になっています。任意のHTMLタグが使用できますが、それが意味することが分かる人は良心あるスクリプトしか実行しないことと思います。

以下、簡単に記法についてまとめておきます。Markdownでは同じ意味を持つ複数の書き方が存在することがあるのですが、ここにはそのうちの一つだけを書いておきます。

さらに詳しく知りたい人は、日本語で短くまとまっている<http://bono.s206.xrea.com/2007/01/312-markdown_syntax/>とか、Markdown公式の<http://daringfireball.net/projects/markdown/syntax>とか、Python Markdown拡張の解説の<http://pythonhosted.org/Markdown/extensions/extra.html>とかをおすすめします。

### 段落と改行
ただテキストの上で改行するだけでは、出力されるページの上では改行されません。基本的には、空行を挟んで段落(p要素)の区切りを示すことによって改行します。本当に改行したい場合は、行末に半角スペースを2つ入れておけばその後の改行は出力されるページでも改行として扱われます(br要素)。

余談ですが、brとpの論争は結構根深い問題で、スタイルと構造の分離をめぐる論争が空々しく聞こえなかった時代の[小説のHTML化について――p要素と段落: ミノタウロス見聞録](http://htmldwarf.seesaa.net/article/9363948.html)という記事なんかには色々書いています。HTML5では、hr要素に単なる区切り線ではなくてまとまった文章を区切るというセマンティクスが与えられているので、今では形式段落はp要素で、意味段落は適切にスタイルを設定したhr要素で示すのがいいんじゃないかと思いますね。もっともこのWikiではhr要素は区切り線として表示されるのですが。本当に余談でした。

### 見出し
~~~
# h1(大見出し)
## h2(中見出し)
### h3(小見出し)
#### h4(ミリ見出し)
##### h5(マイクロ見出し)
###### h6(ナノ見出し)
~~~

### Wiki内リンク
~~~
[[ページ名]]
[[/サブページ]]
[[ページ名|表示するテキスト]]
[[attachment:添付ファイル名]]
[[attachment:添付ファイル名|表示するテキスト]]
~~~

### Wiki外へのリンク
URLを指し示すラベルを付けてから行うリンクのやり方もあります。同じWebページに何度もリンクするような長い記事を書くときには、それを使うと綺麗になります。詳しくはドキュメントを見て下さい。

~~~
[表示するテキスト](http://example.com/)
<http://example.com>
![画像のaltテキスト](http://example.com/hoge.png)
~~~

### Wiki変数
以下に挙げるような@で挟まれた語を書くと、

&#x40;SIG&#x40;
:   署名

&#x40;PAGE&#x40;
:   ページ名

プレビュー画面ではそのまま表示されますが、そのまま確定すると自動的に対応するテキストに置換されます。これはMarkdownの機能ではなくWikiエンジンが勝手にやっていることです。詳しくは[HelpOnVariables - MoinMoin](http://moinmo.in/HelpOnVariables)を参照。

### インライン要素
~~~
*emタグでくくられる(斜体)*
**strongタグでくくられる(太字)**
`codeタグでくくられる(等幅)。関数名などを書くときに。`
<del>などでくくりたいときはタグを直に入れてください</del>
~~~

### リスト
以下の例のように、左端から半角4文字になる位置で揃えることをおすすめします。そうしておくと複数段落を入れるときに上手くいくのです。

#### ul(普通のリスト)
~~~
-   hoge
-   fuga
~~~

#### ol(番号つきリスト)
~~~
1.  1つ目の要素
2.  2つ目の要素

    リスト要素の中に複数段落を入れられる(ulも同様)

    -   ネストも可能
    -   ネストネスト〜
~~~

#### dd(定義リスト)
~~~
orange
:   みかん

apple
:   りんご

    あるいは、アップルコンピュータ社

grape
:   ぶどう

    -   房に実をつける
    -   grapefruitとは違う
~~~

### コードブロック
~~~~
チルダ三つで囲む
~~~
0: [PATH=/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/Users/miki/.rvm/gems/ruby-2.0.0-p0/bin:/Users/miki/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/miki/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/miki/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/Users/miki/.rvm/bin:/Users/miki/.rvm/bin]
1: [TMPDIR=/var/folders/4n/wlbsj77s4nzfd79jqy93rp440000gn/T/]
2: [SHELL=/bin/zsh]
3: [HOME=/Users/miki]
以下略
~~~

~~~
:::c
/* 言語の指定も可能 */
int main() {
    puts("Hello, World!");
    return 0;
}
~~~

    :::scheme
    ; あるいはスペース4つを行頭につける
    (display "Hello, ")
    (display "Wolrd\n")
~~~~

ある程度長いコード類はチルダで囲むスタイルが、短いものはスペースを前置するスタイルがいいのかなと思います。

### コメント
~~~
<!-- XMLのコメントをベタ書き。この文章がコメントです。 -->
~~~

### 表(table)
[PHP Markdown extraのテーブルの解説](http://michelf.ca/projects/php-markdown/extra/#table)を読んで下さい。[[名簿]]や[[座席]]などのページを参考にしてもいいと思います。

### 区切り線(hr)
~~~
----
~~~

### 引用(blockquote)
~~~
> これが
> 引用です
~~~

引用元を示す標準的な方法は良くわかりません。こうすればいいんじゃいの、と思う人は追記お願いします。