diff --git a/src/notionpage-covericon/body.tid b/src/notionpage-covericon/body.tid index 7053ba5..94dc553 100755 --- a/src/notionpage-covericon/body.tid +++ b/src/notionpage-covericon/body.tid @@ -2,7 +2,67 @@ title: $:/plugins/Gk0Wk/notionpage-covericon/body tags: $:/tags/ViewTemplate list-before: $:/core/ui/ViewTemplate/title -<$list filter="[all[current]!is[system]]"> +\define contentbase64() [is[binary]] :then[get[text]] :else[get[text]encodeuricomponent[]] +\define imagetobase64() [[data:]] [{!!type}] [is[binary]then[;base64,]else[,]] [subfilter] :and[join[]] +\define coverbox-db(cover,tiddler:"",default:"",class-outer:"",class-blur-bg:"",class-front-bg:"",style-outer:"",style-blur-bg:"",style-front-bg:"") +\whitespace trim +<$let currentTiddler={{{ [<__cover__>!is[blank]then<__cover__>else<__default__>] }}}> +<$let imguri={{{ [is[image]!has[_canonical_uri]] :then[subfilter] :else[get[_canonical_uri]else] }}}> +
+<$let + img-bg={{{ [[background-image:url(]] [] [[);]] +[join[]] }}} + cover-bg-blur={{{ [[filter:blur(]] [<__tiddler__>get[page-cover#bg-blur]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur}] [[);]] +[join[]] }}} + cover-size={{{ [[background-size:]] [<__tiddler__>get[page-cover#size]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size}else[cover]] [[;]] +[join[]] }}} + cover-position={{{ [[background-position:]] [<__tiddler__>get[page-cover#position]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position}else[cover]] [[;]] +[join[]] }}} + cover-repeat={{{ [[background-repeat:]] [<__tiddler__>get[page-cover#repeat]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat}else[no-repeat]] [[;]] +[join[]] }}} +> +
] [[background-size:cover;background-position:center;position:absolute;top:-10px;left:-10px;height:calc(100% + 20px);width:calc(100% + 20px);]] [] [<__style-blur-bg__>] +[join[]] }}} /> +
] [] [] [] [[position:relative;height:100%;width:100%;]] [<__style-front-bg__>] +[join[]] }}} /> + +
+ + +\end +\define cover-setting() +<$reveal type="popup" state=<> position="belowleft" tag="div" class="tc-popup-keep"> + <$let + state=<> + cover-bg-blur={{{ [get[page-cover#bg-blur]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur}] }}} + cover-size={{{ [get[page-cover#size]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size}else[cover]] }}} + cover-position={{{ [get[page-cover#position]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position}else[cover]] }}} + cover-repeat={{{ [get[page-cover#repeat]else{$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat}else[no-repeat]] }}} + > +
+
+ URI:  + <$edit-text tiddler=<> field="page-cover" default={{{ [get[page-cover]] }}} placeholder="" focus="true"/> + <$button setTitle=<> setField="page-cover" setTo={{{ [get[page-cover]!is[blank]else] }}}>Set +
+
+ Blur:  + <$edit-text tiddler=<> field="page-cover#bg-blur" default=<> placeholder="" focus="true"/> + <$button setTitle=<> setField="page-cover#bg-blur" setTo={{{ [get[page-cover#bg-blur]!is[blank]else] }}}>Set +
+
+ Size:  + <$edit-text tiddler=<> field="page-cover#size" default=<> placeholder="" focus="true"/> + <$button setTitle=<> setField="page-cover#size" setTo={{{ [get[page-cover#size]!is[blank]else] }}}>Set +
+
+ Position:  + <$edit-text tiddler=<> field="page-cover#position" default=<> placeholder="" focus="true"/> + <$button setTitle=<> setField="page-cover#position" setTo={{{ [get[page-cover#position]!is[blank]else] }}}>Set +
+
+ Repeat:  + <$edit-text tiddler=<> field="page-cover#repeat" default=<> placeholder="" focus="true"/> + <$button setTitle=<> setField="page-cover#repeat" setTo={{{ [get[page-cover#position]!is[blank]else] }}}>Set +
+
+ + +\end + <$set name="tiddler" value=<>> <$list filter="[addprefix[$:/temp/Gk0Wk/notionpage-covericon/Selector/]]" variable="stateTiddler1"> <$list filter="[addprefix[$:/temp/Gk0Wk/notionpage-covericon/ChangeCover/]]" variable="stateTiddler2"> @@ -21,15 +81,16 @@ list-before: $:/core/ui/ViewTemplate/title <$list filter="[!match[]]">
-
<$image source=<> width="100%" height="auto"/>
+ <$macrocall + $name="coverbox-db" + cover=<> + tiddler=<> + class-outer="gk0wk-notionpagebg-imagebox" + class-blur-bg="gk0wk-notionpagebg-image-blur" + class-front-bg="gk0wk-notionpagebg-image-front" + /> <$button popup=<> class="gk0wk-notionpageb-changecover" tooltip="Change Cover">Change Cover - <$reveal type="popup" state=<> position="belowleft" tag="div" class="tc-popup-keep"> -
-
- <$edit-text tiddler=<> field="page-cover" default="" placeholder="Tiddler or URL" focus="true"/> -
-
- + <>
<$button setTitle=<> setField="icon" setTo={{$:/plugins/Gk0Wk/notionpage-covericon/default-icon}} tooltip="Add Icon">😁 Add Icon
@@ -40,11 +101,10 @@ list-before: $:/core/ui/ViewTemplate/title <$list filter="[match[]]">
- <$button popup=<> class="gk0wk-notionpagebg-icon1"> - <$list filter="[titleis[shadow]!is[tiddler]]"><$transclude tiddler=<>/> - <$list filter="[titleis[tiddler]!is[shadow]]"><$transclude tiddler=<>/> - <$list filter="[title!is[shadow]!is[tiddler]]"><$wikify name="rendered" text=<> output=html><> - + <$button popup=<> class="gk0wk-notionpagebg-icon1"><$list filter="[titleis[tiddler]]"><$transclude tiddler=<>/> + <$list filter="[titleis[shadow]]"><$transclude tiddler=<>/> + <$list filter="[titleis[tiddler]]"><$transclude tiddler=<>/> + <$list filter="[title!is[shadow]!is[tiddler]]"><$wikify name="rendered" text=<> output=html><> <$reveal type="popup" state=<> position="below" tag="div" class="tc-popup-keep"> {{$:/plugins/Gk0Wk/notionpage-covericon/icon-selector}} @@ -56,23 +116,23 @@ list-before: $:/core/ui/ViewTemplate/title <$list filter="[!match[]]">
-
<$image source=<> width="100%" height="auto"/>
- <$button popup=<> class="gk0wk-notionpagebg-icon2"> - <$list filter="[titleis[shadow]!is[tiddler]]"><$transclude tiddler=<>/> - <$list filter="[titleis[tiddler]!is[shadow]]"><$transclude tiddler=<>/> - <$list filter="[title!is[shadow]!is[tiddler]]"><$wikify name="rendered" text=<> output=html><> - + <$macrocall + $name="coverbox-db" + cover=<> + tiddler=<> + class-outer="gk0wk-notionpagebg-imagebox" + class-blur-bg="gk0wk-notionpagebg-image-blur" + class-front-bg="gk0wk-notionpagebg-image-front" + /> + <$button popup=<> class="gk0wk-notionpagebg-icon2"><$list filter="[titleis[tiddler]]"><$transclude tiddler=<>/> + <$list filter="[titleis[shadow]]"><$transclude tiddler=<>/> + <$list filter="[titleis[tiddler]]"><$transclude tiddler=<>/> + <$list filter="[title!is[shadow]!is[tiddler]]"><$wikify name="rendered" text=<> output=html><> <$reveal type="popup" state=<> position="below" tag="div" class="tc-popup-keep"> {{$:/plugins/Gk0Wk/notionpage-covericon/icon-selector}} <$button popup=<> class="gk0wk-notionpageb-changecover" tooltip="Change Cover">Change Cover - <$reveal type="popup" state=<> position="belowleft" tag="div" class="tc-popup-keep"> -
-
- <$edit-text tiddler=<> field="page-cover" default="" placeholder="Tiddler or URL" focus="true"/> -
-
- + <>
@@ -81,4 +141,3 @@ list-before: $:/core/ui/ViewTemplate/title - diff --git a/src/notionpage-covericon/config.multids b/src/notionpage-covericon/config.multids new file mode 100644 index 0000000..2b58bd0 --- /dev/null +++ b/src/notionpage-covericon/config.multids @@ -0,0 +1,17 @@ +title: $:/plugins/Gk0Wk/notionpage-covericon/ + +default-icon: 📒 +default-pagecover-url: https://source.unsplash.com/random +style/cover-height/narrow: 300px +style/cover-height/wide: 300px +style/top-offset/narrow: -14px +style/top-offset/wide: -28px +style/cover-left/narrow: -14px +style/cover-left/wide: -42px +style/cover-right/narrow: -14px +style/cover-right/wide: -42px +style/icon-size: 65px +config/default-cover-bg-blur: 8px +config/default-cover-size: cover +config/default-cover-position: center +config/default-cover-repeat: no-repeat diff --git a/src/notionpage-covericon/plugin.info b/src/notionpage-covericon/plugin.info index 54722c2..1894dd1 100755 --- a/src/notionpage-covericon/plugin.info +++ b/src/notionpage-covericon/plugin.info @@ -1,5 +1,5 @@ { - "version": "0.0.11", + "version": "0.0.12", "type": "application/json", "title": "$:/plugins/Gk0Wk/notionpage-covericon", "plugin-type": "plugin", @@ -7,51 +7,5 @@ "list": "readme LICENSE", "description": "Add notion-like page cover and icon display and control panel", "author": "Gk0Wk", - "source": "https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/notionpage-covericon", - "tiddlers": { - "$:/plugins/Gk0Wk/notionpage-covericon/default-icon": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/default-icon", - "text": "📒" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/default-pagecover-url": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/default-pagecover-url", - "text": "https://source.unsplash.com/random" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/narrow": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/narrow", - "text": "300px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/wide": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/wide", - "text": "300px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/narrow": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/narrow", - "text": "-14px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/wide": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/wide", - "text": "-28px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/narrow": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/narrow", - "text": "-14px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide", - "text": "-42px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow", - "text": "-14px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide", - "text": "-42px" - }, - "$:/plugins/Gk0Wk/notionpage-covericon/style/icon-size": { - "title": "$:/plugins/Gk0Wk/notionpage-covericon/style/icon-size", - "text": "65px" - } - } + "source": "https://github.com/Gk0Wk/TiddlySeq/tree/master/plugins/Gk0Wk/notionpage-covericon" } diff --git a/src/notionpage-covericon/readme.tid b/src/notionpage-covericon/readme.tid index 0706ba5..11f9449 100755 --- a/src/notionpage-covericon/readme.tid +++ b/src/notionpage-covericon/readme.tid @@ -1,4 +1,8 @@ title: $:/plugins/Gk0Wk/notionpage-covericon/readme +tags: $:/tags/ControlPanel/Appearance +type: text/vnd.tiddlywiki +caption: Notion Page +list-after: $:/core/ui/ControlPanel/Toolbars \define lingo-base() $:/language/ThemeTweaks/ @@ -27,6 +31,10 @@ title: $:/plugins/Gk0Wk/notionpage-covericon/readme |[[封面左侧位置(宽屏模式)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide" placeholder="如:-42px" tag="input"/> | |[[封面右侧位置(紧凑模式)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow" placeholder="如:-14px" tag="input"/> | |[[封面右侧位置(宽屏模式)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide" placeholder="如:-42px" tag="input"/> | +|[[默认封面背景模糊程度|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur" default="8px" placeholder="0~100px" tag="input"/> | +|[[默认封面大小(CSS background-size)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size" default="cover" placeholder="cover, contain, auto, 100% 100%, 100% auto, auto 100%"/> | +|[[默认封面位置(CSS background-position)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position" default="center" placeholder="center, top, bottom, left, right, top left, top right, bottom left, bottom right"/> | +|[[默认封面重复(CSS background-repeat)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat" default="no-repeat" placeholder="no-repeat, repeat, repeat-x, repeat-y"/> |
@@ -60,6 +68,10 @@ Use the following fields to store the page's icon and cover information. |[[Left position of page cover(Widescreen mode)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide" placeholder="e.g. -42px" tag="input"/> | |[[Right position of page cover(Compact mode)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow" placeholder="e.g. -14px" tag="input"/> | |[[Right position of page cover(Widescreen mode)|$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide]] |<$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide" placeholder="e.g. -42px" tag="input"/> | +|[[Default cover background blur|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-bg-blur" default="8px" placeholder="0~100px" tag="input"/> | +|[[Default cover size(CSS background-size)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-size" default="cover" placeholder="cover, contain, auto, 100% 100%, 100% auto, auto 100%"/> | +|[[Default cover position(CSS background-position)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-position" default="center" placeholder="center, top, bottom, left, right, top left, top right, bottom left, bottom right"/> | +|[[Default cover repeat(CSS background-repeat)|$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat]] | <$edit-text tiddler="$:/plugins/Gk0Wk/notionpage-covericon/config/default-cover-repeat" default="no-repeat" placeholder="no-repeat, repeat, repeat-x, repeat-y"/> |
diff --git a/src/notionpage-covericon/style.css b/src/notionpage-covericon/style.css index 9a4483d..0c4d57c 100755 --- a/src/notionpage-covericon/style.css +++ b/src/notionpage-covericon/style.css @@ -8,7 +8,7 @@ top: {{$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/wide}}; } -.gk0wk-notionpagebg .gk0wk-notionpagebg-image { +.gk0wk-notionpagebg .gk0wk-notionpagebg-imagebox { width: calc(100% - {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide}} - {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/wide}}); left: {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/wide}}; height: {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/wide}}; @@ -29,7 +29,7 @@ .gk0wk-notionpagebg-c, .gk0wk-notionpagebg-ci { top: {{$:/plugins/Gk0Wk/notionpage-covericon/style/top-offset/narrow}}; } - .gk0wk-notionpagebg .gk0wk-notionpagebg-image { + .gk0wk-notionpagebg .gk0wk-notionpagebg-imagebox { width: calc(100% - {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/narrow}} - {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-right/narrow}}); left: {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-left/narrow}}; height: {{$:/plugins/Gk0Wk/notionpage-covericon/style/cover-height/narrow}}; @@ -117,14 +117,6 @@ background: <>; } -/* Page Cover */ - -.gk0wk-notionpagebg .gk0wk-notionpagebg-image img { - position: relative; - top: 50%; - transform: translateY(-50%); -} - /* Change Page Cover */ .gk0wk-notionpageb-changecover-box { diff --git a/wiki/tiddlers/Guide.json b/wiki/tiddlers/Guide.json new file mode 100644 index 0000000..9cf97ec --- /dev/null +++ b/wiki/tiddlers/Guide.json @@ -0,0 +1,18 @@ +[ + { + "created": "20211111190000250", + "title": "Guide", + "creator": "Sttot", + "modified": "20231013200218789", + "modifier": "Sttot", + "tags": "ExcludeFromEmpty", + "type": "text/vnd.tiddlywiki", + "text": "<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search[zh]]\">\n\n你可以在这里下载 ~TiddlySeq 模板:\n\n
\n下载空的模板 {{$:/core/images/save-button}}\n
\n\n---\n\n来看看我写的插件吧,都很有趣:\n\n\n\n<$list filter=\"[!search[zh]]\">\n\nYou can download the ~TiddlySeq template here:\n\n
\nDownload Empty {{$:/core/images/save-button}}\n
\n\n---\n\nInterested in my plugins? Here are plugins used in this theme:\n\n\n\n\n<>", + "icon": "🎉", + "page-cover": "https://unsplash.com/photos/MwRqMHKvq2E/download?ixid=MnwxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNjM4MzY3NTE0&force=true&w=1920", + "tmap.edges": "{\"b2386a7a-1d3f-4ee4-ae54-3d23c6817391\":{\"to\":\"d418f037-861a-40c6-97a4-8cb73319a270\",\"type\":\"plugin\"},\"aff85a0c-6d2f-481a-8c0e-6e2b8e00c5fd\":{\"to\":\"a9b84175-3dcc-4aa5-b3b1-1f0cfa77d120\",\"type\":\"plugin\"},\"8e07edba-f7b0-41b7-8e3b-2879cf23b51d\":{\"to\":\"687ae6c6-d406-41f7-87f0-59089560ec85\",\"type\":\"plugin\"},\"5b87bb1d-7f4e-4b19-b7da-86aa3f1d4805\":{\"to\":\"ab15c8df-6a3e-4fec-a6b2-d08313255b10\",\"type\":\"plugin\"},\"08e4114b-5026-46bc-8922-73633e1b7942\":{\"to\":\"78c21ba0-5dc5-46cd-bfc7-392558e178c7\",\"type\":\"plugin\"}}", + "tmap.id": "a411f9dc-b630-4f5b-9534-9b463e564b12", + "page-cover#size": "cover", + "page-cover#repeat": "no-repeat" + } +] \ No newline at end of file diff --git a/wiki/tiddlers/Guide.tid b/wiki/tiddlers/Guide.tid deleted file mode 100755 index 71ee8f7..0000000 --- a/wiki/tiddlers/Guide.tid +++ /dev/null @@ -1,43 +0,0 @@ -created: 20211111190000250 -creator: Sttot -icon: 🎉 -modified: 20230613102158248 -modifier: Sttot -page-cover: https://unsplash.com/photos/MwRqMHKvq2E/download?ixid=MnwxMjA3fDB8MXxhbGx8fHx8fHx8fHwxNjM4MzY3NTE0&force=true&w=1920 -tags: ExcludeFromEmpty -title: Guide -tmap.edges: {"b2386a7a-1d3f-4ee4-ae54-3d23c6817391":{"to":"d418f037-861a-40c6-97a4-8cb73319a270","type":"plugin"},"aff85a0c-6d2f-481a-8c0e-6e2b8e00c5fd":{"to":"a9b84175-3dcc-4aa5-b3b1-1f0cfa77d120","type":"plugin"},"8e07edba-f7b0-41b7-8e3b-2879cf23b51d":{"to":"687ae6c6-d406-41f7-87f0-59089560ec85","type":"plugin"},"5b87bb1d-7f4e-4b19-b7da-86aa3f1d4805":{"to":"ab15c8df-6a3e-4fec-a6b2-d08313255b10","type":"plugin"},"08e4114b-5026-46bc-8922-73633e1b7942":{"to":"78c21ba0-5dc5-46cd-bfc7-392558e178c7","type":"plugin"}} -tmap.id: a411f9dc-b630-4f5b-9534-9b463e564b12 -type: text/vnd.tiddlywiki - -<$list filter="[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]" variable="lang"> -<$list filter="[search[zh]]"> - -你可以在这里下载 ~TiddlySeq 模板: - -
-下载空的模板 {{$:/core/images/save-button}} -
- ---- - -来看看我写的插件吧,都很有趣: - - - -<$list filter="[!search[zh]]"> - -You can download the ~TiddlySeq template here: - -
-Download Empty {{$:/core/images/save-button}} -
- ---- - -Interested in my plugins? Here are plugins used in this theme: - - - - -<> \ No newline at end of file