From 4dc6ff409c6a22ed3e401891ba27a9b89a96fe49 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Tue, 6 Oct 2026 22:22:52 +0200 Subject: [PATCH] added desktopfile plugin + icosa-gallery --- src/.init.lua | 1 + src/css/xrforge.css | 11 +--- src/css/xrforge.max.css | 4 ++ src/myverse/icosa-gallery.png | Bin 0 -> 57950 bytes src/myverse/icosa-gallery/README.md | 61 ++++++++++++++++++ .../icosa-gallery/icosa-gallery.desktop | 4 ++ src/page/dir.html | 23 +++++-- src/page/dir.lua | 18 ++++-- src/page/header.html | 7 -- src/page/index.html | 11 ++++ src/plugin/desktopfile.lua | 45 +++++++++++++ src/plugin/diskscan.lua | 29 +++++---- 12 files changed, 176 insertions(+), 38 deletions(-) create mode 100644 src/myverse/icosa-gallery.png create mode 100644 src/myverse/icosa-gallery/README.md create mode 100644 src/myverse/icosa-gallery/icosa-gallery.desktop create mode 100644 src/plugin/desktopfile.lua diff --git a/src/.init.lua b/src/.init.lua index ddc2415..1b37043 100644 --- a/src/.init.lua +++ b/src/.init.lua @@ -83,6 +83,7 @@ app.plugin.pubnix = app.addPlugin('plugin/pubnix') app.plugin.diskscan = app.addPlugin('plugin/diskscan') app.plugin.convert = app.addPlugin('plugin/convert') app.plugin.moderation = app.addPlugin('plugin/moderation') +app.plugin.desktopfile = app.addPlugin('plugin/desktopfile') app.plugin.xrfragments = app.addPlugin('plugin/xrfragments') app.plugin.janusxr = app.addPlugin('plugin/janusxr') app.plugin.clouddrive = app.addPlugin('plugin/clouddrive') diff --git a/src/css/xrforge.css b/src/css/xrforge.css index 774edca..2faa0ce 100644 --- a/src/css/xrforge.css +++ b/src/css/xrforge.css @@ -87,6 +87,7 @@ textarea{ input[type=submit]{ display: inline-block; margin: 0 15px 0px 0px; + border: 1px dotted } .btn a, @@ -205,7 +206,7 @@ h1{ h1 a, h2 a, -center a{ +.jumbotron center a{ text-decoration:none; border:none !important; } @@ -219,14 +220,6 @@ table.header tr td { border:none; } -.btn.XR{ - line-height:10px; - display: inline-block; - position: absolute; - top: 20px; - right: 2px; -} - /* logo */ .logo *{ font-size:15px; diff --git a/src/css/xrforge.max.css b/src/css/xrforge.max.css index 481f7a2..bf49173 100644 --- a/src/css/xrforge.max.css +++ b/src/css/xrforge.max.css @@ -1,3 +1,7 @@ +:root{ + --gradient-1: #114,#224,#114,#3367,#424,#224; +} + hr{ display:none !important; } diff --git a/src/myverse/icosa-gallery.png b/src/myverse/icosa-gallery.png new file mode 100644 index 0000000000000000000000000000000000000000..5775ffc9b24324d1502178b7a72df824cd61de54 GIT binary patch literal 57950 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 literal 0 HcmV?d00001 diff --git a/src/myverse/icosa-gallery/README.md b/src/myverse/icosa-gallery/README.md new file mode 100644 index 0000000..1d9118c --- /dev/null +++ b/src/myverse/icosa-gallery/README.md @@ -0,0 +1,61 @@ +

Hi there! 👋

+Welcome to this XR experience.
+
+
+ +
+ + +
+ +Here's a demo to surf icosa-gallery immersively (without launching the website, OpenBrush or OpenBlocks).
+This is possible thanks to icosa-gallery supporting the XR Fragments microformat. +
+> NOTE: most example assets are not optimized regarding scale/position/floor (but can be done in OpenBrush, OpenBlocks or Blender) + diff --git a/src/myverse/icosa-gallery/icosa-gallery.desktop b/src/myverse/icosa-gallery/icosa-gallery.desktop new file mode 100644 index 0000000..57f7ea8 --- /dev/null +++ b/src/myverse/icosa-gallery/icosa-gallery.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Link +Name=icosa gallery +URL=https://icosa.gallery/collections diff --git a/src/page/dir.html b/src/page/dir.html index 72c00cb..6219169 100644 --- a/src/page/dir.html +++ b/src/page/dir.html @@ -2,7 +2,7 @@ ${header} {if parent ~= nil and parent.parent == nil then print([[ -
+

${opts.plugin_global_title}


@@ -24,6 +24,17 @@ ${header} ]]) end} +{if isroot or url:match("/dir$") then + local url = urlpath:gsub("/dir$","") + print("
") + if app.arg[1] == "generate" then + print([[ ]]) + else + print([[ ]]) + end + print("

") +end} + {if parent ~= nil and parent.parent ~= nil then print([[

// ${parent.name} @@ -66,7 +77,7 @@ end} local icon = false local url = item.markup and item.parent.url or item.url local thumbnail = item.markup and (item.parent.thumbnail or '') or '' - if #item.thumbnail > 0 then thumbnail = 'style="background-image: url(' .. EscapeFragment( util.stripPath(item.thumbnail) ) .. ');"' end + if #item.thumbnail > 0 then thumbnail = 'style="background-image: url(' .. EscapeFragment( util.stripPath(item.thumbnail) ) .. '), linear-gradient(45deg,var(--gradient-1));"' end if item.view3D or (item.janusxr and item.janusxr.room) or (item.redirect) @@ -75,20 +86,20 @@ end} url = url .. '?view=3D' icon = 'play' if #item.thumbnail > 0 then - thumbnail = 'style="background-image: url(./img/playcover.svg), url(' .. EscapeFragment( util.stripPath(item.thumbnail) ) .. ');"' + thumbnail = 'style="background-image: url(./img/playcover.svg), url(' .. EscapeFragment( util.stripPath(item.thumbnail) ) .. '), linear-gradient(45deg,var(--gradient-1));"' else - thumbnail = 'style="background-image: url(./img/playcover.svg);"' + thumbnail = 'style="background-image: url(./img/playcover.svg), linear-gradient(45deg,var(--gradient-1));"' end end print([[
- +
]] .. ( icon and '' or '') .. [[]] .. item.title .. [[ ]] .. - ( (not playable or (playable and #item.children > 1)) and + ( ((#item.children > 0 and not playable) or (playable and #item.children > 1)) and [[ []] .. #item.children .. [[] ]] or '' diff --git a/src/page/dir.lua b/src/page/dir.lua index 9f73699..bd34817 100644 --- a/src/page/dir.lua +++ b/src/page/dir.lua @@ -91,18 +91,26 @@ return { -- *TODO* modularize this logic into plugins better -- prioritize markup experience above binary 3D files as experience containers - if data.item == nil or (isMarkupExperience(v) and not isMarkupExperience(data.item)) then + local notinroot = v.parent.parent ~= nil + if notinroot and data.item == nil + or (isMarkupExperience(v) + and not isMarkupExperience(data.item)) + then -- update referrer url data.referrer = util.baseURLify(v.view3D and (v.parent.parent and v.parent.parent.url) or v.parent.url) data.item = v data.title = data.item.title data.parent = v.parent -- *TODO* modularize this logic into plugins better - data.janusurl = (v.janusxr and v.janusxr.wrap) and app.opts.baseurl .. util.stripPath(v.url) - -- if parent has redirect to item set, use parent url - if not data.janusurl or v.parent.redirect == v.url then - data.janusurl = app.opts.baseurl .. util.stripPath(v.parent.redirect or v.parent.url) + data.janusurl = v.url + if not data.janusurl:match("://") then + data.janusurl = (v.janusxr and v.janusxr.wrap) and app.opts.baseurl .. util.stripPath(v.url) + -- if parent has redirect to item set, use parent url + if not data.janusurl or v.parent.redirect == v.url then + data.janusurl = app.opts.baseurl .. util.stripPath(v.parent.redirect or v.parent.url) + end end + if v.janusxr and v.janusxr.wrap and v.janusxr.wrap.file then -- what to do here? no generated portals? data.janusxr = app.tpl( util.readfile(v.path), data ) diff --git a/src/page/header.html b/src/page/header.html index 2695e06..c2fa925 100644 --- a/src/page/header.html +++ b/src/page/header.html @@ -63,13 +63,6 @@ -- janusweb workaround (it does not support '/' url somehow) urlpath = urlpath .. app.opts.plugin_diskscan_dirname end - if not urlpath:match('/dir$') then - if app.arg[1] == "generate" then - print([[ ]]) - else - print([[ ]]) - end - end end} {if template == "page/index.html" or defined(item) then print([[ diff --git a/src/page/index.html b/src/page/index.html index f0f0d08..a2a8e6d 100644 --- a/src/page/index.html +++ b/src/page/index.html @@ -13,6 +13,10 @@ else description = opts.plugin_global_popup_instructions end} +{if true then + playable = itemdir.view3D or (itemdir.janusxr and itemdir.janusxr.room) or (itemdir.redirect) +end} +