plan for reorganizing structs
This commit is contained in:
parent
7edee42053
commit
852fc1d872
|
@ -121,15 +121,15 @@ chapters<y:LabelModel>
|
|||
<node id="n7">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="113.0" width="80.0" x="110.0" y="257.0"/>
|
||||
<y:Geometry height="119.0" width="128.0" x="89.0" y="257.0"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="72.3671875" x="3.81640625" y="4.0">BookConfig</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="73.84375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="58.169921875" x="2.0" y="29.96875">root
|
||||
src
|
||||
dest
|
||||
template
|
||||
renderer<y:LabelModel>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="72.3671875" x="27.81640625" y="4.0">BookConfig</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="73.84375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="91.451171875" x="2.0" y="29.96875">lang
|
||||
project_root
|
||||
book_dest
|
||||
book_src
|
||||
template_path<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -145,12 +145,13 @@ renderer<y:LabelModel>
|
|||
<node id="n8">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="75.0" width="80.0" x="464.36587981973474" y="414.2175368139224"/>
|
||||
<y:Geometry height="90.0" width="80.0" x="357.375" y="414.2175368139224"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="33.865234375" x="23.0673828125" y="4.0">Book</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="62.16015625" x="2.0" y="29.96875">metadata
|
||||
chapters<y:LabelModel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="62.16015625" x="2.0" y="29.96875">config
|
||||
metadata
|
||||
toc<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -170,7 +171,7 @@ chapters<y:LabelModel>
|
|||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="59.576171875" x="37.41191406249999" y="4.0">Renderer</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="126.818359375" x="2.0" y="29.96875">render(book, config)<y:LabelModel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="82.46875" x="2.0" y="29.96875">render(book)<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -186,12 +187,13 @@ chapters<y:LabelModel>
|
|||
<node id="n10">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="80.0" x="336.4073791503906" y="414.2175368139224"/>
|
||||
<y:Geometry height="90.0" width="91.0" x="2.594879150390625" y="443.7175368139224"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="53.458984375" x="13.2705078125" y="4.0">MDBook</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="40.720703125" x="2.0" y="29.96875">books
|
||||
config<y:LabelModel>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="53.458984375" x="18.7705078125" y="4.0">MDBook</y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="76.234375" x="2.0" y="29.96875">project_root
|
||||
books
|
||||
renderer<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -223,7 +225,7 @@ config<y:LabelModel>
|
|||
<node id="n12">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="105.0" x="376.0" y="257.5"/>
|
||||
<y:Geometry height="90.0" width="105.0" x="344.875" y="257.5"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="90.689453125" x="7.1552734375" y="4.0">BookMetadata</y:NodeLabel>
|
||||
|
@ -245,13 +247,12 @@ publisher<y:LabelModel>
|
|||
<node id="n13">
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="115.0" x="511.0" y="257.5"/>
|
||||
<y:Geometry height="90.0" width="115.0" x="697.8658798197348" y="369.75"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.275390625" x="10.3623046875" y="4.0">Vec<Chapter></y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="45.90625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="83.921875" x="2.0" y="29.96875">title
|
||||
file
|
||||
sub_chapters<y:LabelModel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="27.4609375" x="2.0" y="29.96875">title
|
||||
file<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -281,6 +282,48 @@ sub_chapters<y:LabelModel>
|
|||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n15">
|
||||
<data key="d4"/>
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:ShapeNode>
|
||||
<y:Geometry height="50.0" width="110.0" x="520.0" y="257.5"/>
|
||||
<y:Fill color="#FFCC00" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="13" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="34.265625" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="65.34375" x="22.328125" y="7.8671875">summary
|
||||
parser<y:LabelModel>
|
||||
<y:SmartNodeLabelModel distance="4.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:Shape type="ellipse"/>
|
||||
</y:ShapeNode>
|
||||
</data>
|
||||
</node>
|
||||
<node id="n16">
|
||||
<data key="d5"/>
|
||||
<data key="d6">
|
||||
<y:GenericNode configuration="com.yworks.entityRelationship.big_entity">
|
||||
<y:Geometry height="90.0" width="115.0" x="515.0" y="369.75"/>
|
||||
<y:Fill color="#E8EEF7" color2="#B7C9E3" transparent="false"/>
|
||||
<y:BorderStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:NodeLabel alignment="center" autoSizePolicy="content" backgroundColor="#B7C9E3" configuration="com.yworks.entityRelationship.label.name" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="94.884765625" x="10.0576171875" y="4.0">Vec<TocItem></y:NodeLabel>
|
||||
<y:NodeLabel alignment="left" autoSizePolicy="content" configuration="com.yworks.entityRelationship.label.attributes" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="top" visible="true" width="64.837890625" x="2.0" y="29.96875">content
|
||||
sub_items<y:LabelModel>
|
||||
<y:ErdAttributesNodeLabelModel/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
<y:ErdAttributesNodeLabelModelParameter/>
|
||||
</y:ModelParameter>
|
||||
</y:NodeLabel>
|
||||
<y:StyleProperties>
|
||||
<y:Property class="java.lang.Boolean" name="y.view.ShadowNodePainter.SHADOW_PAINTING" value="true"/>
|
||||
</y:StyleProperties>
|
||||
</y:GenericNode>
|
||||
</data>
|
||||
</node>
|
||||
<edge id="e0" source="n4" target="n4">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
|
@ -296,29 +339,29 @@ sub_chapters<y:LabelModel>
|
|||
<edge id="e1" source="n2" target="n7">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="-0.5713348388671875" ty="-40.17777777777778">
|
||||
<y:Point x="131.00865173339844" y="180.87705993652344"/>
|
||||
<y:Path sx="0.0" sy="0.0" tx="-0.9141357421875003" ty="-42.31111111111111">
|
||||
<y:Point x="132.33807373046875" y="181.30795288085938"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="right" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="left" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="125.921875" x="-113.5390319824219" y="92.04427337646476">behaviour control,
|
||||
<y:EdgeLabel alignment="right" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="left" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="125.921875" x="-112.17275522838912" y="92.57967131345038">behaviour control,
|
||||
paths, target format<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="anywhere" side="left" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:Arc height="0.17272590100765228" ratio="0.003664793446660042" type="fixedRatio"/>
|
||||
<y:Arc height="0.17399874329566956" ratio="0.003664793446660042" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e2" source="n3" target="n7">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="13.85631193730191" ty="-56.48749113237591">
|
||||
<y:Point x="191.57940673828125" y="167.03758239746094"/>
|
||||
<y:Path sx="0.0" sy="0.0" tx="22.170099099683064" ty="-59.48682694471443">
|
||||
<y:Point x="197.2362518310547" y="167.87789916992188"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="left" configuration="AutoFlippingLabel" distance="1.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="right" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.533203125" x="-43.598876953125" y="101.51483154296875">paths<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="anywhere" side="right" sideReference="relative_to_edge_flow"/>
|
||||
<y:EdgeLabel alignment="left" configuration="AutoFlippingLabel" distance="1.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="right" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="37.533203125" x="-38.136329861917886" y="103.87263713435809">paths<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" placement="anywhere" side="right" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:Arc height="-13.828213691711426" ratio="-0.29697197675704956" type="fixedRatio"/>
|
||||
<y:Arc height="-13.487004280090332" ratio="-0.29697197675704956" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
|
@ -326,11 +369,11 @@ paths, target format<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRig
|
|||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="353.7525329589844" y="180.75323486328125"/>
|
||||
<y:Point x="338.1900329589844" y="183.28660583496094"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="62.16015625" x="18.158484098010604" y="77.33507585168667">metadata<y:LabelModel>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="custom" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="62.16015625" x="5.276900303809384" y="76.05124071206538">metadata<y:LabelModel>
|
||||
<y:SmartEdgeLabelModel autoRotationEnabled="false" defaultAngle="0.0" defaultDistance="10.0"/>
|
||||
</y:LabelModel>
|
||||
<y:ModelParameter>
|
||||
|
@ -338,68 +381,56 @@ paths, target format<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRig
|
|||
</y:ModelParameter>
|
||||
<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:Arc height="22.95389747619629" ratio="0.32557427883148193" type="fixedRatio"/>
|
||||
<y:Arc height="21.38491439819336" ratio="0.32557427883148193" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e4" source="n4" target="n13">
|
||||
<edge id="e4" source="n4" target="n15">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="509.19012451171875" y="186.79183959960938"/>
|
||||
<y:Point x="511.2044982910156" y="176.3902587890625"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="71.634765625" x="-12.16741943359375" y="74.53813934326172">chapter list<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
<y:EdgeLabel alignment="center" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="17.96875" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="71.634765625" x="-8.507094384363711" y="70.80742538314036">chapter list<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:Arc height="15.944525718688965" ratio="0.2471216768026352" type="fixedRatio"/>
|
||||
<y:Arc height="15.182718276977539" ratio="0.2471216768026352" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e5" source="n5" target="n13">
|
||||
<edge id="e5" source="n5" target="n15">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="599.7504272460938" y="197.5275421142578"/>
|
||||
<y:Point x="600.8458251953125" y="186.82730102539062"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:EdgeLabel alignment="left" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="112.603515625" x="11.47149658203125" y="58.50482940673828">chapter attributes
|
||||
<y:EdgeLabel alignment="left" configuration="AutoFlippingLabel" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="31.9375" horizontalTextPosition="center" iconTextGap="4" modelName="free" modelPosition="anywhere" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" verticalTextPosition="bottom" visible="true" width="112.603515625" x="13.477508337639165" y="56.54677946569382">chapter attributes
|
||||
chapter content<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angleReference="absolute" angleRotationOnRightSide="co" distance="-1.0" frozen="true" placement="anywhere" side="anywhere" sideReference="relative_to_edge_flow"/>
|
||||
</y:EdgeLabel>
|
||||
<y:Arc height="23.068986892700195" ratio="0.43092089891433716" type="fixedRatio"/>
|
||||
<y:Arc height="20.87361717224121" ratio="0.43092089891433716" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e6" source="n7" target="n10">
|
||||
<edge id="e6" source="n12" target="n8">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="274.05633544921875" y="369.4965515136719"/>
|
||||
<y:Point x="397.375" y="380.8587646484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="20.052793502807617" ratio="0.29790934920310974" type="fixedRatio"/>
|
||||
<y:Arc height="0.0" ratio="0.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e7" source="n12" target="n8">
|
||||
<edge id="e7" source="n12" target="n12">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="473.98077392578125" y="373.271240234375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="8.46737289428711" ratio="0.20233124494552612" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e8" source="n12" target="n12">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="428.5" y="302.5"/>
|
||||
<y:Point x="397.375" y="302.5"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
|
@ -407,15 +438,27 @@ chapter content<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSid
|
|||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e9" source="n13" target="n8">
|
||||
<edge id="e8" source="n9" target="n9">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="541.8388061523438" y="379.4322204589844"/>
|
||||
<y:Point x="342.20001220703125" y="604.22021484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="5.884036540985107" ratio="0.144912451505661" type="fixedRatio"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e9" source="n9" target="n9">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="342.20001220703125" y="604.22021484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
|
@ -431,55 +474,19 @@ chapter content<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSid
|
|||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e11" source="n9" target="n9">
|
||||
<edge id="e11" source="n8" target="n9">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="342.20001220703125" y="604.22021484375"/>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="-32.033203125">
|
||||
<y:Point x="374.1595764160156" y="517.837646484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
<y:Arc height="4.865667343139648" ratio="0.15480542182922363" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e12" source="n9" target="n9">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="342.20001220703125" y="604.22021484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e13" source="n10" target="n9">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="369.2901916503906" y="534.0747680664062"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="10.260604858398438" ratio="0.27548399567604065" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e14" source="n8" target="n10">
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="440.6768798828125" y="460.4197082519531"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="4.960666179656982" ratio="0.15480542182922363" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e15" source="n3" target="n9">
|
||||
<edge id="e12" source="n3" target="n9">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="10.75" sy="1.0" tx="-41.46361445783125" ty="3.7797858099063433">
|
||||
|
@ -494,7 +501,7 @@ data<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angle
|
|||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e16" source="n6" target="n9">
|
||||
<edge id="e13" source="n6" target="n9">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
|
@ -506,7 +513,7 @@ data<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angle
|
|||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e17" source="n14" target="n5">
|
||||
<edge id="e14" source="n14" target="n5">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
|
@ -516,7 +523,7 @@ data<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angle
|
|||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e18" source="n11" target="n5">
|
||||
<edge id="e15" source="n11" target="n5">
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
|
@ -526,6 +533,80 @@ data<y:PreferredPlacementDescriptor angle="0.0" angleOffsetOnRightSide="0" angle
|
|||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e16" source="n7" target="n8">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="-24.1875" ty="0.3449631860776208">
|
||||
<y:Point x="254.77264404296875" y="400.8382873535156"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="-15.272879600524902" ratio="-0.23265674710273743" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e17" source="n13" target="n13">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="755.3659057617188" y="414.75"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e18" source="n16" target="n8">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="3.9375" ty="28.46996318607762">
|
||||
<y:Point x="495.9642333984375" y="472.478271484375"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="23.108753204345703" ratio="0.496753990650177" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e19" source="n13" target="n13">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:ArcEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
|
||||
<y:Point x="755.3659057617188" y="414.75"/>
|
||||
</y:Path>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:Arc height="0.0" ratio="1.0" type="fixedRatio"/>
|
||||
</y:ArcEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e20" source="n13" target="n16">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="none"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
<edge id="e21" source="n15" target="n16">
|
||||
<data key="d9"/>
|
||||
<data key="d10">
|
||||
<y:PolyLineEdge>
|
||||
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
|
||||
<y:LineStyle color="#000000" type="line" width="1.0"/>
|
||||
<y:Arrows source="none" target="standard"/>
|
||||
<y:BendStyle smoothed="false"/>
|
||||
</y:PolyLineEdge>
|
||||
</data>
|
||||
</edge>
|
||||
</graph>
|
||||
<data key="d7">
|
||||
<y:Resources/>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 73 KiB |
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
|
@ -0,0 +1,129 @@
|
|||
@startuml
|
||||
|
||||
class book::MDBook {
|
||||
project_root : PathBuf
|
||||
|
||||
books : HashMap<&'a str, Book>
|
||||
|
||||
renderer : Box<Renderer>
|
||||
livereload : Option<String>
|
||||
indent_spaces: i32
|
||||
multilingual: bool
|
||||
|
||||
new(root)
|
||||
}
|
||||
|
||||
class book::book.Book {
|
||||
config : BookConfig
|
||||
metadata : BookMetadata
|
||||
|
||||
chapters: Vec<Chapter>
|
||||
|
||||
new(title)
|
||||
}
|
||||
|
||||
class book::bookconfig.BookConfig {
|
||||
lang : Language
|
||||
|
||||
project_root : PathBuf
|
||||
book_dest : PathBuf
|
||||
book_src : PathBuf
|
||||
template_path : PathBuf
|
||||
|
||||
new(root)
|
||||
}
|
||||
|
||||
class book::chapter.Chapter {
|
||||
title
|
||||
file
|
||||
author
|
||||
description
|
||||
css_class
|
||||
index : Vec<i32>
|
||||
|
||||
new(title, file)
|
||||
}
|
||||
|
||||
namespace book::toc {
|
||||
|
||||
class TocItem {
|
||||
content : TocContent
|
||||
sub_items: Vec<TocItem>
|
||||
new(content)
|
||||
}
|
||||
|
||||
enum TocContent {
|
||||
Frontmatter "Chapter"
|
||||
Mainmatter "Chapter"
|
||||
Backmatter "Chapter"
|
||||
Insert "Chapter"
|
||||
Spacer
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace book::metadata {
|
||||
|
||||
class BookMetadata {
|
||||
title
|
||||
subtitle
|
||||
description
|
||||
publisher
|
||||
language
|
||||
authors
|
||||
translators
|
||||
number_format
|
||||
section_names
|
||||
new(title)
|
||||
}
|
||||
|
||||
class Author {
|
||||
name
|
||||
email
|
||||
new(name)
|
||||
}
|
||||
|
||||
class Language {
|
||||
name
|
||||
code
|
||||
}
|
||||
|
||||
class Publisher {
|
||||
name
|
||||
url
|
||||
logo_src
|
||||
}
|
||||
|
||||
enum NumberFormat {
|
||||
Arabic
|
||||
Roman
|
||||
Word
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class renderer::html_handlebars::HtmlHandlebars {
|
||||
new()
|
||||
render(book: MDBook)
|
||||
}
|
||||
|
||||
class theme::Theme {
|
||||
index
|
||||
css
|
||||
favicon
|
||||
js
|
||||
highlight_css
|
||||
tomorrow_night_css
|
||||
highlight_js
|
||||
jquery
|
||||
new(src)
|
||||
}
|
||||
|
||||
book::book-[hidden]->book::bookconfig
|
||||
book::book-[hidden]->book::chapter
|
||||
book::book-[hidden]->book::toc
|
||||
book::book-[hidden]->book::metadata
|
||||
|
||||
renderer::html_handlebars::HtmlHandlebars-[hidden]->theme::Theme
|
||||
|
||||
@enduml
|
48
doc/doc.md
48
doc/doc.md
|
@ -1,17 +1,38 @@
|
|||
# Doc
|
||||
|
||||
Diagrams are with [yEd](http://www.yworks.com/products/yed) and [plantuml](http://plantuml.com).
|
||||
Diagrams are with [yEd](http://www.yworks.com/products/yed)
|
||||
and [plantuml](http://plantuml.com).
|
||||
|
||||
## Data
|
||||
|
||||
`MDBook::new(root)` parses CLI args and `book.toml` to create:
|
||||
|
||||
- app config settings
|
||||
- `Book` for each language
|
||||
|
||||
Each `Book` is given their config setting with their source- and destination
|
||||
paths.
|
||||
|
||||
The renderer can then render each book.
|
||||
|
||||
To render the TOC, renderer gets a Vec<TocItem> from summary parser.
|
||||
|
||||
The renderer walks through the Vec. It can match content kinds in an enum and
|
||||
this way knows whether to render:
|
||||
|
||||
- front- back- or mainmatter
|
||||
- spacer elements (vertical space in TOC but no chapter output)
|
||||
- insert chapters (no TOC link, but the chapter is part of the reading sequence)
|
||||
|
||||
![book data](assets/bookdata.png)
|
||||
|
||||
### Renderer
|
||||
|
||||
Takes data from:
|
||||
Takes a book, which knows:
|
||||
|
||||
- a book's metadata and chapters (`Book`)
|
||||
- paths and behaviour config (`BookConfig`)
|
||||
- metadata
|
||||
- toc with chapters
|
||||
- config for paths
|
||||
- template assets (`template_path`)
|
||||
|
||||
For generating pages:
|
||||
|
@ -22,7 +43,8 @@ those properties which can be easily anticipated.
|
|||
If Renderer needs more specific data, it can be supplied in `book.toml`. It's
|
||||
the Renderer's job to open that and parse it out.
|
||||
|
||||
Chapters, `Vec<Chapter>`.
|
||||
Chapters are represented in a `Vec<TocItem>`, each item has the chapter content
|
||||
as payload.
|
||||
|
||||
If the user wants to store attributes that are not anticipated with structs,
|
||||
they can go in a hashmap with string keys, let them be accessible from the
|
||||
|
@ -41,26 +63,20 @@ renderer.
|
|||
Takes data from:
|
||||
|
||||
- CLI args
|
||||
- book.json
|
||||
- book.toml
|
||||
|
||||
## Structs
|
||||
|
||||
### Reorganized
|
||||
|
||||
![structs reorganized](assets/structs-reorganized.png)
|
||||
|
||||
### Currently
|
||||
|
||||
Already almost good for implementing the above.
|
||||
|
||||
Storing data attributes can be reorganized.
|
||||
|
||||
Modules could be refactored to express intention more clearly.
|
||||
|
||||
![structs](assets/structs.png)
|
||||
|
||||
## Notes
|
||||
|
||||
There could be less modules. Merge modules which express one intention.
|
||||
|
||||
The two Chapter structs could be refactored out.
|
||||
|
||||
Take config paths for as many things as possible. Let the user organize their
|
||||
project folder differently, or allow `mdbook` to function in existing projects
|
||||
with already established folders.
|
||||
|
|
Loading…
Reference in New Issue