# 画面遷移図

CoffeeScriptドキュメントサイトの画面遷移を示します。

## メイン画面遷移

```mermaid
flowchart TB
    subgraph メインサイト
        TOP[トップページ<br/>documentation/site/index.html]
        TRY[Try CoffeeScript<br/>documentation/site/try.html]
        TEST[テストスイート<br/>documentation/site/test.html]
    end

    subgraph v1ドキュメント
        V1_TOP[v1ドキュメント<br/>docs/v1/index.html]
        V1_TEST[v1テストスイート<br/>docs/v1/test.html]
        V1_ANNOTATED[v1 Annotated Source<br/>docs/v1/annotated-source/]
    end

    subgraph v2ドキュメント
        V2_TOP[v2ドキュメント<br/>docs/v2/index.html]
        V2_TEST[v2テストスイート<br/>docs/v2/test.html]
        V2_ANNOUNCE[CoffeeScript 2発表ページ<br/>docs/v2/announcing-coffeescript-2/]
        V2_ANNOTATED[v2 Annotated Source<br/>docs/v2/annotated-source/]
    end

    TOP -->|Try CoffeeScript| TRY
    TOP -->|Browser-Based Tests| TEST
    TOP -->|Version 1.x Documentation| V1_TOP

    V1_TOP --> V1_TEST
    V1_TOP --> V1_ANNOTATED

    V2_TOP --> V2_TEST
    V2_TOP --> V2_ANNOTATED
    V2_TOP --> V2_ANNOUNCE
```

## トップページ内セクション遷移

トップページはシングルページアプリケーション（SPA）形式で、以下のセクション間をアンカーリンクで遷移します。

```mermaid
flowchart TB
    subgraph トップページ内セクション
        INTRO[Introduction<br/>#introduction]
        OVERVIEW[Overview<br/>#overview]
        CS2[CoffeeScript 2<br/>#coffeescript-2]
        INSTALL[Installation<br/>#installation]
        USAGE[Usage<br/>#usage]
        LANG[Language Reference<br/>#language]
        TYPE[Type Annotations<br/>#type-annotations]
        LITERATE[Literate CoffeeScript<br/>#literate]
        SOURCEMAP[Source Maps<br/>#source-maps]
        CAKE[Cake<br/>#cake]
        SCRIPTS[Scripts<br/>#scripts]
        INTEGRATIONS[Integrations<br/>#integrations]
        RESOURCES[Resources<br/>#resources]
        UNSUPPORTED[Unsupported Features<br/>#unsupported]
        BREAKING[Breaking Changes<br/>#breaking-changes]
        CHANGELOG[Changelog<br/>#changelog]
    end

    INTRO --> OVERVIEW
    OVERVIEW --> CS2
    CS2 --> INSTALL
    INSTALL --> USAGE
    USAGE --> LANG
    LANG --> TYPE
    TYPE --> LITERATE
    LITERATE --> SOURCEMAP
    SOURCEMAP --> CAKE
    CAKE --> SCRIPTS
    SCRIPTS --> INTEGRATIONS
    INTEGRATIONS --> RESOURCES
    RESOURCES --> UNSUPPORTED
    UNSUPPORTED --> BREAKING
    BREAKING --> CHANGELOG
```

## Language Referenceサブセクション

```mermaid
flowchart TB
    subgraph Language Reference
        FUNC[Functions<br/>#functions]
        STR[Strings<br/>#strings]
        OBJ[Objects and Arrays<br/>#objects-and-arrays]
        COMMENTS[Comments<br/>#comments]
        SCOPE[Lexical Scope<br/>#lexical-scope]
        COND[Conditionals<br/>#conditionals]
        SPLAT[Splats<br/>#splats]
        LOOPS[Loops<br/>#loops]
        SLICE[Slices<br/>#slices]
        EXPR[Expressions<br/>#expressions]
        OPS[Operators<br/>#operators]
        EXIST[Existential Operator<br/>#existential-operator]
        CHAIN[Chaining<br/>#chaining]
        DESTRUCT[Destructuring<br/>#destructuring]
        ARROW[Fat Arrow<br/>#fat-arrow]
        GEN[Generators<br/>#generators]
        ASYNC[Async Functions<br/>#async-functions]
        CLASS[Classes<br/>#classes]
        PROTO[Prototypal Inheritance<br/>#prototypal-inheritance]
        SWITCH[Switch<br/>#switch]
        TRY[Try/Catch<br/>#try-catch]
        COMP[Comparisons<br/>#comparisons]
        REGEX[Regexes<br/>#regexes]
        TAGGED[Tagged Template Literals<br/>#tagged-template-literals]
        MODULES[Modules<br/>#modules]
        EMBED[Embedded JavaScript<br/>#embedded]
        JSX[JSX<br/>#jsx]
    end

    FUNC --> STR --> OBJ --> COMMENTS --> SCOPE --> COND
    COND --> SPLAT --> LOOPS --> SLICE --> EXPR --> OPS
    OPS --> EXIST --> CHAIN --> DESTRUCT --> ARROW --> GEN
    GEN --> ASYNC --> CLASS --> PROTO --> SWITCH --> TRY
    TRY --> COMP --> REGEX --> TAGGED --> MODULES --> EMBED --> JSX
```

## Annotated Sourceの構成

```mermaid
flowchart TB
    subgraph Annotated Source
        AS_INDEX[Index]
        AS_LEXER[Lexer]
        AS_NODES[Nodes]
        AS_GRAMMAR[Grammar]
        AS_REWRITER[Rewriter]
        AS_SCOPE[Scope]
        AS_SOURCEMAP[SourceMap]
        AS_COFFEE[CoffeeScript]
        AS_HELPERS[Helpers]
        AS_COMMAND[Command]
        AS_OPTPARSE[Optparse]
        AS_REPL[REPL]
        AS_REGISTER[Register]
        AS_BROWSER[Browser]
        AS_CAKE[Cake]
    end

    AS_INDEX --> AS_COFFEE
    AS_COFFEE --> AS_LEXER
    AS_LEXER --> AS_REWRITER
    AS_REWRITER --> AS_GRAMMAR
    AS_GRAMMAR --> AS_NODES
    AS_NODES --> AS_SCOPE
    AS_NODES --> AS_HELPERS
    AS_NODES --> AS_SOURCEMAP
    AS_COFFEE --> AS_COMMAND
    AS_COMMAND --> AS_OPTPARSE
    AS_COFFEE --> AS_REPL
    AS_COFFEE --> AS_REGISTER
    AS_COFFEE --> AS_BROWSER
    AS_COFFEE --> AS_CAKE
```

## 備考

- **シングルページアプリケーション**: トップページは1つのHTMLファイルで構成されており、サイドバーのナビゲーションでセクション間を遷移する
- **バージョン別ドキュメント**: v1とv2で別々のドキュメントが用意されている
- **Annotated Source**: Doccoを使用してソースコードから自動生成されたドキュメント
- **Try CoffeeScript**: トップページのヘッダーからアクセスできるインタラクティブエディタ
