// サブドキュメント化のマクロ

ifndef::IncDocDir[]
:IncDocDirTmp: {IncDocName}
endif::[]

ifdef::IncDocDir[]
:IncDocDirTmp: {IncDocDir}
endif::[]

:imagesdir_back: {imagesdir}
:imagesdir: {IncDocDirTmp}/Images

ifndef::IncDocLvl[]
:IncDocLvl: +2
endif::[]

// タグが定義されていたらその範囲を取り込む
ifdef::IncDocTag[]
include::./{IncDocDirTmp}/{IncDocName}.adoc[tag={IncDocTag},leveloffset={IncDocLvl}]
endif::[]
// タグが無い場合は、サブドキュメント全体を取り込む
ifndef::IncDocTag[]
include::./{IncDocDirTmp}/{IncDocName}.adoc[leveloffset={IncDocLvl}]
endif::[]

// restore 
:imagesdir: {imagesdir_back}

////

// tag::HelpSeparationDoc[]
.##分離ドキュメントのヘルプです (行削除)##
[%collapsible]
=============================================
========================
.◆分離ドキュメント構成の雛形です
画像ディレクトリは各ドキュメントの"Images"ディレクトリに固定。
----
TemplateSeparateDocRoot.adoc
   ├─ Sub_First
   │  │  config.adoc
   │  │  Sub_First.adoc
   │  └─Images
   │
   └─ Sub_Second
       │  config.adoc
       │  Sub_Second.adoc
       └─Images
----

.◆ルートドキュメント側の記述方法
 サブドキュメントには不要。サブドキュメントのインクルード毎に記述する

``:IncDocName: <サブドキュメント名>``: ::
[必須] インクルードする<サブドキュメント名>を指定。
実際のファイルは<サブドキュメント名>.adoc と拡張子をつけること。

``include::IncDoc.adoc[]``: ::
[必須] サブドキュメントをインクルードする場所。固定記述。

``:IncDocDir: <ディレクトリ名>``: ::
[省略可] インクルードする<ディレクトリ名>を指定。
省略した場合は<サブドキュメント名>が<ディレクトリ名> になる。

``:IncDocLvl: <レベル>``: ::
[省略可] サブドキュメントレベルを+Nで指定する。
タイトル行の"="のレベルを下げることができる +2を指定すると、"="が"==="としてIncludeされる。省略値は +2。

``:IncDocTag: sub``: ::
[省略可] サブドキュメントの取り出し範囲を指定します。サブドキュメント側タグ属性``sub[]``の領域を取り込む。
省略した場合、サブドキュメント全体を取り込みます。


.◆サブドキュメント側の記述
サブドキュメントは通常のAsciiDocの記述。
取り込み範囲を指定したい場合はルートドキュメント側``:IncDocTag: sub``指定に合わせて、以下のタグを指定する。
記述が無い場合、全体を取り組む。タグ名(sub)を変更すれば、別の範囲も取り込み可能。
----
	// サブドキュメントの取り込み範囲
	// tag::sub[]
	... 取り込みたい部分
	// end::sub[]
----

.◆例 ルートドキュメント側

例.最小限: フォルダ名とサブドキュメント名が同一:: 
+
----
	--- root.adoc --------
	= Root title
	...
	== First SubDocument
	:IncDocName: Sub_First
	include::IncDoc.adoc[]

	== Second SubDocument
	:IncDocName: Sub_Second
	include::IncDoc.adoc[]
	----------------------
	root.adoc
		+-- Sub_First\
				+ Sub_First.adoc
				+ confing.adoc
		+-- Sub_Second\
				+ Sub_Second.adoc
				+ confing.adoc
----

例.カスタム： ディレクトリ名変更::
+
----
	--- root.adoc --------
	= Root title
	...
	:IncDocDir: 01_Func
	:IncDocLvl: +2

	== First SubDocument
	:IncDocName: Sub_First
	include::IncDoc.adoc[]

	== Second SubDocument
	:IncDocName: Sub_Second
	include::IncDoc.adoc[]
	----------------------
	サブドキュメントを01_FuncフォルダにSub_First.adocとSub_Second.adocを配置
	root.adoc
		+-- 01_Func\
				+ Sub_First.adoc
				+ Sub_Second.adoc
----
========================
=============================================

// end::HelpSeparationDoc[]

////
