Skip to content

Commit b84cdcd

Browse files
mitonizeCopilot
andcommitted
Merge release/1.3.0 into master
Release Mayaa 1.3.0 with comprehensive documentation and bug fixes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 parents a72653f + 9ecefb2 commit b84cdcd

7 files changed

Lines changed: 588 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 変更点
22

3-
## Mayaa 1.3.0-alpha
3+
## Mayaa 1.3.0 : 2026-02-22
44

55
### Changes
66
挙動が変わる部分がありますのでご確認ください。
@@ -68,7 +68,6 @@
6868
- ライブラリファイルのスキャンおよびServiceProviderファイル読み込みのログを出力しました。 [#105](https://github.com/seasarorg/mayaa/pull/105)
6969
- Java8 向けのAPI利用に制限する。 [#82](https://github.com/seasarorg/mayaa/pull/82)
7070
- Not use AccessControlExcepton for JEP 411 [#78](https://github.com/seasarorg/mayaa/pull/78)
71-
- Bump spring-web from 3.2.18.RELEASE to 6.0.0 [#84](https://github.com/seasarorg/mayaa/pull/84)
7271
- Bump xercesImpl from 2.12.0 to 2.12.2 [#72](https://github.com/seasarorg/mayaa/pull/72)
7372
- 静的ソースチェックの警告の解消 [#63](https://github.com/seasarorg/mayaa/pull/63)
7473
- unusedの警告を解消 [#94](https://github.com/seasarorg/mayaa/pull/94)

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ https://seasarorg.github.io/mayaa-site/
44

55
MayaaはHTMLをベースとしたテンプレートによるプログラマとデザイナの作業分担を強く意識したWEBフロントサービスエンジンです。
66

7-
*Mayaa 1.3.0-alpha1 よりJDK動作要件が Java8 以上になっています。*
7+
*Mayaa 1.3.0 よりJDK動作要件が Java8 以上になっています。*
88

99
## システム動作仕様環境
1010
* Java8 以降
@@ -41,3 +41,10 @@ ML購読登録: https://www.seasar.org/mailman/listinfo/mayaa-user
4141
## 変更履歴
4242
変更点については [CHANGELOG.md](./CHANGELOG.md) を参照ください。
4343

44+
## ドキュメント
45+
- アップグレード: [doc/UPGRADING.md](./doc/UPGRADING.md)
46+
- 互換性: [doc/COMPATIBILITY.md](./doc/COMPATIBILITY.md)
47+
- 運用・管理: [doc/MANAGEMENT.md](./doc/MANAGEMENT.md)
48+
- パーサ仕様: [doc/PARSER.md](./doc/PARSER.md)
49+
- テスト: [doc/TESTING.md](./doc/TESTING.md)
50+

doc/PARSER.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Mayaa HTMLパーサ仕様
2+
3+
## エレメントの扱い
4+
5+
MayaaのHTMLパーサは、HTMLテンプレート中のタグを**HTML要素**として扱いつつ、
6+
テンプレート機能を実現するために**独自タグ(名前空間付き要素)**も同一の枠組みで扱います。
7+
8+
- HTML要素と独自タグは同じ構文規則で読み取り、出力時も同じルールで属性を整形します。
9+
- Void Element(閉じタグを持たないタグ)はHTML仕様に従い閉じタグを補完しません。
10+
- HTML要素の省略可能タグ(`html``head``body` など)の自動補完は行いません。
11+
12+
これにより、テンプレート記述の自由度を保ちつつ、Mayaa処理後のHTMLの整合性を保ちます。
13+
14+
## 表現方針
15+
16+
本プロジェクトは、オープンソースとして広く利用されることを前提とし、プロダクト仕様の記述において以下の方針を採用しています:
17+
18+
- **簡潔かつ明確**:使用者にとって理解しやすい記述を重視します。
19+
- **標準準拠の明示**:HTMLなどの標準仕様に準拠する部分については、その出典(仕様策定団体や該当ドキュメント)を明記します。
20+
- **非準拠部分の差分明示**:標準仕様と異なる振る舞いや拡張仕様がある場合は、その差異を具体的に記述します。
21+
22+
---
23+
24+
## HTMLに関する仕様記述
25+
26+
### 標準エレメントの扱い
27+
28+
HTMLの標準的な要素(`<div>``<span>` など)は、基本的に [HTML Living Standard(WHATWG)](https://html.spec.whatwg.org/) に準拠して記述します。
29+
30+
### 名前空間の取り扱い
31+
32+
HTML5では名前空間の概念が正式にはサポートされていません(HTMLはXMLとは異なり、名前空間に基づく文法構造を持ちません)。
33+
34+
しかし、本プロジェクト(Mayaa)では HTML 構造内での柔軟な拡張を可能にするため、**拡張的な記法として名前空間の指定を許容**しています。たとえば:
35+
36+
```html
37+
<m:if test="condition">
38+
<div>条件が真のときに表示されます</div>
39+
</m:if>
40+
```
41+
42+
名前空間を導入することにより、エレメント名に含まれるコロン(`:`)が特別な意味を持ちます。
43+
44+
- エレメント名のうち最初に見つかったコロンまでは、**名前空間プレフィックス**として評価が試みられます。
45+
- ただし、そのエレメント自身、もしくは先祖エレメントで `xmlns:{プレフィックス}="{名前空間URI}"` の形式による名前空間の定義が存在しない場合は、
46+
コロンを含む**元の文字列全体をローカル名**として扱います(名前空間の解決を行いません)。
47+
- エレメント名が **コロンで終わる** 場合、名前空間プレフィックスとはみなされず、**全体がローカル名**として扱われます。
48+
49+
このような動作により、曖昧な構文によるパースエラーを避けつつ、柔軟なテンプレート記述を可能としています。
50+
なお、HTML Living Standardをサポートする一般的なブラウザでもコロンを含む要素をエレメント名として扱います。
51+
52+
53+
このように、`m:` という接頭辞を付けた独自タグを導入することで、HTML記述の中でアプリケーションロジックやテンプレート機能を表現できるようにしています。独自に `xmlns`の宣言を行うことで他の接頭辞を使用することもできます。
54+
55+
これらの名前空間付き要素は、HTML仕様には存在しない独自拡張であり、Mayaa のテンプレート処理エンジンによって解釈されるものです。そのため、ブラウザ単体では解釈されず、事前またはサーバーサイドでの処理が必要です。
56+
57+
### 差異の明示
58+
59+
#### 属性名として許容されていない文字で始まる属性
60+
新パーサでは `@attr``:attr` など属性の名称の先頭文字として許容されていない記号も属性名として扱いMayaa処理後のHTMLとして出力することができます。
61+
62+
#### タグの大文字小文字は変換せず開始タグに合わせる
63+
64+
タグ名の大文字小文字はMayaa側で変換せず、開始タグの表記に合わせて扱います。
65+
(例: `<DIV>` で開始した場合、対応する閉じタグも `<DIV>` として出力されます)
66+
67+
---
68+

0 commit comments

Comments
 (0)