[ value>> present ]
[ url-field>> editor>> set-editor-string ] bi* ;
+: ?gemini-url ( obj -- url )
+ present dup "://" subseq-of? [ "gemini://" prepend ] unless >url ;
+
: show-gemini ( url gemini-gadget -- )
- [ [ >url ] [ f ] if* ] dip
+ [ [ ?gemini-url ] [ f ] if* ] dip
over [ protocol>> "gemini" = ] [ t ] if* [
[
2dup control-value =
] [ drop open-url ] if ;
: <url-field> ( gemini-gadget -- field )
- '[ >url _ show-gemini ] <action-field>
+ '[ _ show-gemini ] <action-field>
"Gemini URL" >>default-text
white-interior ;
: com-up ( gemini -- )
[
control-value dup [
- f >>query
- f >>anchor
- [ "/" ?tail drop "/" split1-last drop "/" append ] change-path
+ f >>query f >>anchor
+ [ dup "/" tail? "./../" "./" ? url-append-path ] change-path
] when
]
[ show-gemini ] bi ;