OcttKB Cross-Repo Sync (HTML to Raw)

This commit is contained in:
2023-03-24 11:58:33 +00:00
parent e0528394e6
commit dc21b3c71c
1537 changed files with 93 additions and 1028 deletions

View File

@@ -0,0 +1,13 @@
color: #bbb
created: 20230216210519344
creator: Octt
icon: $:/core/images/advanced-search-button
modified: 20230216210530034
modifier: Octt
tags: $:/Tools
title: $:/AdvancedSearch
\whitespace trim
<div class="tc-advanced-search">
<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]" default="$:/core/ui/AdvancedSearch/System" actions="""<$action-setfield $tiddler="$:/state/advancedsearch/currentTab" text=<<currentTab>>/>""" explicitState="$:/state/tab--1498284803"/>
</div>

View File

@@ -0,0 +1,6 @@
created: 20230221195029004
creator: Octt
modified: 20230225144031829
modifier: Octt
tags: $:/ToC
title: $:/Apps

View File

@@ -0,0 +1,80 @@
:Root {
--BodyMargin: 8px;
}
Body {
Text-Align: Center;
User-Select: None;
Font-Family: Sans-Serif;
Margin: Var(--BodyMargin);
}
A {
Color: Black;
Text-Decoration: None;
}
Ul {
Text-Align: Left;
List-Style: None;
Column-Count: 1;
Margin-Top: 8px;
Margin-Bottom: 8px;
Padding-Left: 0px;
Padding-Right: 0px;
}
Li {
Line-Height: 1.75em;
Font-Size: Larger;
Padding-Left: 8px;
Padding-Right: 8px;
}
Li:Hover {
Background: LightGray;
}
.SimpleList Li {
Width: Fit-Content;
}
.TextLineImg {
Width: 1em;
Height: 1em;
Vertical-Align: Text-Top;
Padding-Right: 8px;
}
.Margin4 {
Margin: 4px;
}
.Dropdown {
Position: Relative;
Display: Inline-Block;
}
.DropdownBtn {
Cursor: Pointer;
Background: LightGray;
Color: Black;
}
.DropdownBody {
Display: None;
Position: Absolute;
Width: Max-Content;
Background: White;
Box-Shadow: 0px 8px 8px 0px RGBA(0,0,0,0.2);
Z-Index: 1;
}
.DropdownBtn:Hover ~ .DropdownBody,
.DropdownBody:Hover {
Display: Block;
Position: Absolute;
}
.Dropdown Li {
Cursor: Pointer;
Text-Align: Center;
}
.SearchDiv {
Width: Max-Content;
}
.DropdownBtn, Input[Type="Text"] {
Font-Size: Larger;
}

View File

@@ -0,0 +1,5 @@
created: 20221108222403364
modified: 20221108222437545
tags:
title: $:/Apps/Dashboard/Style.css
type: text/css

View File

@@ -0,0 +1,229 @@
<!DOCTYPE html>
<html>
<head>
<style>
:Root {
--BodyMargin: 8px;
}
Body {
Text-Align: Center;
User-Select: None;
Font-Family: Sans-Serif;
Margin: Var(--BodyMargin);
}
A {
Color: #000000;
Text-Decoration: None;
}
Ul {
Text-Align: Left;
List-Style: None;
Column-Count: 1;
Margin-Top: 8px;
Margin-Bottom: 8px;
Padding-Left: 0px;
Padding-Right: 0px;
}
Li {
Line-Height: 1.75em;
Font-Size: Larger;
Padding-Left: 8px;
Padding-Right: 8px;
}
Li:Hover {
Background: LightGray;
}
.SimpleList Li {
Width: Fit-Content;
White-Space: NoWrap;
}
.TextLineImg {
Width: 1em;
Height: 1em;
Vertical-Align: Text-Top;
Padding-Right: 8px;
}
.Margin4 {
Margin: 4px;
}
.Dropdown {
/*Position: Relative;*/
/*Display: Inline-Block;*/
}
.DropdownBtn {
Cursor: Pointer;
Background: LightGray;
Color: Black;
}
.DropdownBody {
Display: None;
Position: Absolute;
Width: Max-Content;
Background: White;
Box-Shadow: 0px 8px 8px 0px RGBA(0,0,0,0.2);
Z-Index: 1;
}
.DropdownBtn:Hover ~ .DropdownBody,
.DropdownBody:Hover {
Display: Block;
/*Position: Absolute;*/
}
.Dropdown Li {
Cursor: Pointer;
Text-Align: Center;
}
.SearchDiv {
Width: Max-Content;
}
.DropdownBtn, Input[Type="Text"] {
Font-Size: Larger;
}
</style>
</head>
<body>
<div id="ClockDiv" style="/*Margin: Calc(Var(--BodyMargin) * -1); Background:Black; Color: White;*/">
<h2 id="ClockTime" class="Margin4"></h2>
<p id="ClockDate" class="Margin4"></p>
</div>
<hr>
<table id="SearchDiv"><tr>
<td>
<div class="Dropdown">
<button class="DropdownBtn" id="EnginesBtn" style="Width:Max-Content;"><img id="EnginesCurrentIcon" class="TextLineImg" style="Vertical-Align:Sub;"><span id="EnginesCurrent"></span></button>
<div class="DropdownBody" id="EnginesDropdown">
<ul id="EnginesList"></ul>
</div>
</div>
</td><td style="Width:100%;">
<input type="text" id="SearchInput" onfocus="this.select();" style="Width:Calc(100% - Var(--BodyMargin));">
</td>
</tr></table>
<ul id="BookmarksList" class="SimpleList"></ul>
<script>
const SearchEngines = {
"Whoogle": "https://www.whoogle.click/search?q=",
"Wikipedia [<tt>EN</tt>]": "https://en.wikipedia.org/w/index.php?search=",
"Wikipedia [<tt>IT</tt>]": "https://it.wikipedia.org/w/index.php?search=",
"Invidious": "https://invidious.baczek.me/search?q=",
"WordReference [<tt>EN-&gt;IT</tt>]": "https://www.wordreference.com/enit/",
"WordReference [<tt>IT-&gt;EN</tt>]": "https://www.wordreference.com/iten/"
};
const Bookmarks = `
http://octt.ddns.net:8017 FreshRSS;
http://octt.ddns.net:8036 Wallabag;
https://cryptpad.devol.it/drive CryptPad;
https://www.deepl.com/translator DeepL;
https://gitea.it Gitea;
https://github.com GitHub;
https://gitlab.com GitLab;
https://librespeed.org LibreSpeed;
https://odysee.com Odysee;
https://www.openstreetmap.org OpenStreetMap;
https://app.standardnotes.com Standard Notes;
https://temp-mail.org/en Temp Mail;
https://voidlinux.org/packages Void Linux/Packages;
https://www.wikipedia.org Wikipedia;
https://mail.yahoo.com Yahoo Mail;
`;
function GetImgAverageColor(Img) {
const colorThief = new ColorThief();
if (Img.complete) {
return colorThief.getColor(Img);
} else {
image.addEventListener("load", function() {
return colorThief.getColor(Img);
});
};
};
/* https://stackoverflow.com/a/2998874 */
function ZeroPad(Num, Pad) {
var Zero = Pad - Num.toString().length + 1;
return Array(+(Zero > 0 && Zero)).join("0") + Num;
};
function TimePad(Num) {
return ZeroPad(Num, 2);
};
function SetTime() {
let Time = new Date();
let Y = Time.getFullYear();
let M = TimePad(Time.getMonth() + 1);
let D = TimePad(Time.getDate()); /* Month day */
let N = Time.getDay(); /* Week day */
let h = TimePad(Time.getHours());
let m = TimePad(Time.getMinutes());
let s = TimePad(Time.getSeconds());
ClockTime.textContent = h + ":" + m + ":" + s;
ClockDate.textContent = Y + "-" + M + "-" + D;
};
function GetFavicon(URL) {
return "https://icons.duckduckgo.com/ip3/" + URL.replace(/^https?:\/\//, "").split("/")[0] + ".ico";
};
function GetLineFavicon(URL) {
return '<img class="TextLineImg" src="' + GetFavicon(URL) + '">'
};
function LoadBookmarks() {
let UlURLs = "";
let List = Bookmarks.trim().split(";");
for (let i=0; i<List.length; i++) {
let Item = List[i].trim();
if (Item) {
let Split = Item.indexOf(" ");
let Href = Item.substring(0, Split);
let Name = Item.substring(Split+1);
UlURLs += '<li><a href="' + Href + '" target="_blank" rel="noopener">' + GetLineFavicon(Href) + Name + '</a></li>';
};
};
BookmarksList.innerHTML += UlURLs;
};
function LoadSearchEngines() {
EnginesCurrent.innerHTML = Object.keys(SearchEngines)[0];
EnginesCurrentIcon.src = GetFavicon(SearchEngines[EnginesCurrent.innerHTML]);
Object.keys(SearchEngines).forEach(function(Key) {
EnginesList.innerHTML += "<li onclick=\"EnginesCurrent.innerHTML=`" + Key + "`; EnginesCurrentIcon.src=`" + GetFavicon(SearchEngines[Key]) + "`;\">" + GetLineFavicon(SearchEngines[Key]) + Key + "</li>";
});
};
function ClockDateToggle() {
ClockDate.hidden = !ClockDate.hidden;
};
ClockDiv.onclick = ClockDateToggle;
SearchInput.onkeydown = function(e) {
if (e.keyCode == 13) {
// Only open search URL if textbox contains text, else open parent path (often site root)
window.open(SearchInput.value ? SearchEngines[EnginesCurrent.innerHTML] + SearchInput.value : SearchEngines[EnginesCurrent.innerHTML].split("/").slice(0,-1).join("/"));
};
};
EnginesBtn.onclick = function() {
};
EnginesBtn.onmouseenter = function() {
};
EnginesBtn.onmouseleave = function() {
};
setInterval(() => {
SetTime();
}, 150);
LoadBookmarks();
LoadSearchEngines();
</script>
</body>
</html>

View File

@@ -0,0 +1,5 @@
created: 20221108215403917
modified: 20230108130553489
tags:
title: $:/Apps/Dashboard/index.html
type: text/html

View File

@@ -0,0 +1,31 @@
created: 20230206111434304
creator: Octt
icon: $:/plugins/kookma/commander/images/commander.svg
modified: 20230206111436542
modifier: Octt
tags: $:/Tools
title: $:/Commander
type: text/vnd.tiddlywiki
\import [all[shadows+tiddlers]tag[$:/tags/Commander/Macro]]
{{$:/plugins/kookma/commander/search/ui}}
<!-- Create the search filter based on searchbox and selective operation (if active) -->
<$vars searchTerms={{{ [<searchboxTid>get[text]minlength{$:/plugins/kookma/commander/config/minlength}]~[[$:/errorCode:-23500]] }}} pattern="^\["><!-- this part checks the combo search and selective ops-->
<$set name="filtertext" filter="[<searchTerms>regexp<pattern>]" value="[subfilter<searchTerms>]" emptyValue="[!is[system]search<searchTerms>]">
<$set name="searchfilter" filter="[<selectiveOpsTid>get[text]match[yes]]"
value="[subfilter<filtertext>!prefix[$:/temp/commander]]+[tag<workingTag>]" emptyValue="[subfilter<filtertext>!prefix[$:/temp/commander]]" >
<small style="margin-left:17ch;"><i><$count filter="[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]" /> matches </i></small>
<!-- Display search results and let selective operation -->
<<commander-slider title:"$:/plugins/kookma/commander/search/selection" default:"open">>
<!-- Display operation UIs-->
<<tabs "[all[shadows+tiddlers]tag[$:/tags/Commander]!has[draft.of]]" default:"$:/plugins/kookma/commander/tiddler/ui">>
</$set>
</$set>
<$vars>
---
<<commander-slider title:"$:/plugins/kookma/commander/log/ui">>

View File

@@ -0,0 +1,5 @@
created: 20230110211056385
modified: 20230110230321263
title: $:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding
20px 20px 20px 20px

View File

@@ -0,0 +1,8 @@
created: 20220920084655144
creator: Octt
modified: 20230225212209821
modifier: Octt
title: $:/DefaultTiddlers
[[~Welcome~]]
[list[$:/StoryList]]

View File

@@ -0,0 +1,6 @@
created: 20230225112050616
creator: Octt
modified: 20230225112052302
modifier: Octt
tags: $:/ToC
title: $:/Games

View File

@@ -0,0 +1,5 @@
created: 20220920142651849
modified: 20220920142652313
title: $:/GitLab/Branch
main

View File

@@ -0,0 +1,5 @@
created: 20220920092034075
modified: 20220920142819555
title: $:/GitLab/Filename
index.html

View File

@@ -0,0 +1,5 @@
created: 20220920092013542
modified: 20220920092030508
title: $:/GitLab/Path
/public/

View File

@@ -0,0 +1,5 @@
created: 20220920091953829
modified: 20220920091959306
title: $:/GitLab/Repo
octtspacc/OcttKB

View File

@@ -0,0 +1,5 @@
created: 20220920091945932
modified: 20220920091949616
title: $:/GitLab/Username
octospacc

View File

@@ -0,0 +1,5 @@
[
{
"title": "GettingStarted"
}
]

View File

@@ -0,0 +1,5 @@
created: 20230324115832219
current-tiddler: GettingStarted
modified: 20230324115832219
title: $:/HistoryList
type: application/json

View File

@@ -0,0 +1,6 @@
status: complete
title: $:/Import
The following tiddlers were imported:
# [[$:/Styles/Main]]

View File

@@ -0,0 +1,8 @@
created: 20230130080040533
creator: Octt
modified: 20230130080526665
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/.@
\define .@Wikipedia(Article Subdomain) <<WikipediaFrame "$Article$" "$Subdomain$">>

View File

@@ -0,0 +1,37 @@
created: 20230129125013039
creator: Octt
modified: 20230301212518124
modifier: Octt
tags:
title: $:/Macros/Breadcrumbs/Main
\define cp() javascript:(navigator.clipboard.writeText("$(currentTiddler)$"))
\define MakeViewBreadcrumbs()
\whitespace trim
<span class="View-Breadcrumbs">
<$set name="Caller" value=<<currentTiddler>>>
<$list filter="[<currentTiddler>split[/]limit[-1]]" counter="Index">
<span class="Path-Elem" data-path-elem=<<currentTiddler>>>
<$link to={{{[<Caller>split[/]limit<Index>join[/]]}}}>
<<currentTiddler>>
</$link>
</span>
<span class="Inline-Sep">
<span>/</span>
</span>
</$list>
</$set>
<$set name="Tiddler" value={{{[<currentTiddler>split[/]last[]]}}}>
<span class="Path-Elem" data-path-elem=<<Tiddler>>>
<details>
<summary>
<$text text=<<Tiddler>>/>
</summary>
<$macrocall $name="tiddlertree" tag=<<currentTiddler>>/>
</details>
</span>
</$set>
<a href=<<cp>> class="Path-Copy" title="Copy path to Clipboard">▪️</a>
</span>
\end

View File

@@ -0,0 +1,40 @@
/*\
Hide i18n namespace labels dynamically from the Breadcrumbs line
(by wrapping them in CSS-selectable elements)
\*/
(function(){
"use strict";
exports.name = "i18nBreadcrumbsNamespaceLabelStrip";
exports.params = [];
exports.run = function() {
try {
var Languages = $tw.wiki.getTiddler('$:/i18n').fields.Languages.toLowerCase().split(' ');
var Path = this.getVariable('currentTiddler');
var Select = `.tc-story-river > div[data-tiddler-title="${Path}"] > .View-Breadcrumbs > .Path-Elem`;
var List = document.querySelectorAll(Select + ':last-of-type');
for (var i=0; i < List.length; i++) {
// At end of tiddler path (e.g: Tests/Misc/Test:en)
var Name = List[i].innerHTML.trim();
var Code = Name.toLowerCase().split(':').slice(-1)[0];
if (Languages.includes(Code)) {
List[i].innerHTML = `${Name.split(':').slice(0, -1)}<span class="Inline-Hidden">:${Code}</span>`;
} else {
// At start of tiddler path (e.g: Testing:en/Misc/Test); handle $:/ prefix if present
var Index = Path.startsWith('$:/') ? 2 : 1;
var Code = Path.toLowerCase().split(':')[Index];
if (Code) {
Code = Code.split('/')[0];
if (Languages.includes(Code)) {
var List = document.querySelectorAll(`${Select}:nth-child(${Index})`);
for (var i=0; i < List.length; i++) {
// TODO // List[i].innerHTML = `<span class="Inline-Hidden">:${Code}</span>/${Path.split(':')[Index].split('/').slice(1).join('/')}`;
};
};
};
};
};
} catch(e) {
$OcttKB.ErrAtLine(e);
};
}})();

View File

@@ -0,0 +1,8 @@
created: 20230125222831006
creator: Octt
modified: 20230202185802952
modifier: Octt
module-type: macro
tags:
title: $:/Macros/Breadcrumbs/i18nNamespaceLabelStrip.js
type: application/javascript

View File

@@ -0,0 +1,84 @@
created: 20230109160537807
creator: Octt
modified: 20230219103224267
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/Directory
\whitespace trim
<!-- Directory Features --->
\define DirTreeList(Prefix)
<$set name="Prefix" filter=" $Prefix$" value="$Prefix$" emptyValue=<<currentTiddler>>>
<$macrocall $name="tree_" prefix={{{[<Prefix>addsuffix[/]]}}}/>
</$set>
\end
\define dirtreelist(Prefix) <<DirTreeList "$Prefix$">>
<!-- Below are the old and ugly macros -->
\define CurDirList()
<$set name="Name" value=<<GetCurrentDirectoryPath>>>
<ul>
<$list filter="[prefix<Name>]">
<li>
<$link>
<<currentTiddler>>
</$link>
</li>
</$list>
</ul>
</$set>
\end
\define TCurDirList(h:"2")
<h$h$ class="DirList-Title">Directory Listing</h$h$>
<<CurDirList>>
\end
\define DirList(Path)
<$set name="Name" value=<<GetDirectoryPath $Path$>>>
<ul>
<$list filter="[prefix<Name>]">
<li>
<$link>
<<currentTiddler>>
</$link>
</li>
</$list>
</ul>
</$set>
\end
\define TDirList(Path h:"2")
<h$h$ class="DirList-Title">Directory Listing of [[$Path$]]/</h$h$>
<<DirList $Path$>>
\end
\define GetCurrentDirectoryPath() $(currentTiddler)$/
\define GetDirectoryPath(Path) $Path$/
<!--
\define GetDirectoryPath(Path) $Path$/
\define DirList(Path:<<currentTiddler>>)
<$set name="Name" value=<$macrocall $name="GetDirectoryPath" Path=$Path$/>>>
<ul>
<$list filter="[prefix<Name>]">
<li>
<$link>
<<currentTiddler>>
</$link>
</li>
</$list>
</ul>
</$set>
\end
\define TDirList(Path)
<h2>Directory Listing</h2>
<<DirList $Path$>>
\end
--->

View File

@@ -0,0 +1,32 @@
created: 20230215192523775
creator: Octt
modified: 20230305221555052
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/ExtLinks
\define WiktionaryL(Word, Subdomain:"en") [[$Word$|https://$Subdomain$.wiktionary.org/wiki/$Word$]]
\define MyWARC(Id, Type:"content") <small><<[ "[[OcttArchive|https://articles.octt.eu.org/bookmark/$Id$/$Type$]]">></small>
\define mywarc(id, type:"content") <<MyWARC "$id$" "$type$">>
\define RedditLink(Path, Title:"Reddit") [[$Title$|https://old.reddit.com/$Path$]]
\define RedditL(Path, Title:"Reddit") <<RedditLink "$Path$" "$Title$">>
\define HackernewsL(Id, Title:"HN") [[$Title$|https://news.ycombinator.com/item?id=$Id$]]
\define YouTubeLink(Id, Title:"YouTube", Prefix:"watch?v=") [[$Title$|https://youtube.com/$Prefix$$Id$]]
\define YoutubeLink(Id, Title:"YouTube", Prefix:"watch?v=") <<YouTubeLink "$Id$" "$Title$" "$Prefix$">>
\define YouTubeL(Id, Title:"YouTube", Prefix:"watch?v=") <<YouTubeLink "$Id$" "$Title$" "$Prefix$">>
\define YoutubeL(Id, Title:"YouTube", Prefix:"watch?v=") <<YouTubeLink "$Id$" "$Title$" "$Prefix$">>
\define TwitterLink(Path, Title:"Twitter") [[$Title$|https://twitter.com/$Path$]]
\define MatrixLink(ID, Title:"Matrix") [[$Title$|https://matrix.to/#/$ID$]]
\define FDroidLink(Package, Title:"F-Droid") [[$Title$|https://f-droid.org/en/packages/$Package$]]
\define GPlayLink(Package, Title:"GPlay") [[$Title$|https://play.google.com/store/apps/details?id=$Package$]]
\define FlathubLink(Package, Title:"Flathub") [[$Title$|https://flathub.org/apps/details/$Package$]]

View File

@@ -0,0 +1,39 @@
created: 20230215225211565
creator: Octt
modified: 20230215230528887
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/Footnotes
<!--
Note: The most of the code in this macro (DetailsFootnotes) is copied from [[$:/plugins/kookma/refnotes/macros/showfnotes]]
-->
\define DetailsFootnotes(filter:"[<currentTiddler>]", title:"Empty" class:"fnote-list DetailsFootnotes", emptyMessage:"")
<$vars leftDelimiter="<<fnote ">
<$list filter="[subfilter<__filter__>search:text:literal<leftDelimiter>limit[1]]" variable=null emptyMessage=<<__emptyMessage__>> ><!-- check to see if there is any footnote -->
<details class="tw-details">
<summary>
<$reveal tag="div" type="nomatch" default="Empty" text=<<__title__>> >
<span>$title$</span>
</$reveal>
</summary>
<ol class="$class$">
<$list filter=<<__filter__>> >
<$macrocall $name="find"
text={{!!text}}
begin="<<fnote "
end=">>"
output="output-fnote"
/>
</$list>
</ol>
</details>
</$list>
</$vars>
\end
\define output-fnote(p)
<$vars output=$p$>
<li><<output>></li>
</$vars>
\end

View File

@@ -0,0 +1,77 @@
created: 20230111212908327
creator: Octt
modified: 20230228224933898
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/Frames
\whitespace trim
\define iFrame100Style()
Margin: 0px;
Padding: 0px;
Width: 100vw;
Height: 100vh;
\end
\define EmbedFromLine(Link)
<p class="Embed-From EmbedFrom">Embed of [[$Link$]]</p>
\end
\define iFrame(Src, Class:"iFrameNormal", Attrs)
<<EmbedFromLine "$Src$">>
<input class="NoSelect Checkbox-Btn Embed-Fullscreen-Btn" type="checkbox" label="Fullscreen"/>
<label class="NoSelect Checkbox-Btn Embed-Fullscreen-Btn">Fullscreen</label>
<iframe class="$Class$" frameborder="0" $Attrs$ src="$Src$"></iframe>
\end
\define iframe(src, class, attrs) <<iFrame "$src$" "$class$" "$attrs$">>
\define ^iFrame(Src, FrameClass, Attrs, Title, Heading, DetailsClass) <$macrocall $name="Details" Content=<<iFrame "$Src$" "$FrameClass$" "$Attrs$">> Summary="$Title$" Heading="$Heading$" Class="$DetailsClass$"/>
\define ^iframe(src, frameclass, attrs, title, heading, detailsClass) <$macrocall $name="details" content=<<iframe "$src$" "$frameclass$" "$attrs$">> summary="$title$" heading="$heading$" class="$detailsclass$"/>
\define iFrameFixed(Src, Class:"iFrameNormal", Attrs) <<iFrame "$Src$" "$Class$" 'scrolling="no" $Attrs$'>>
\define iFrameBypassFixed(Src, Class:"iFrameNormal", Attrs) <<iFrameBypass "$Src$" "$Class$" 'scrolling="no" $Attrs$'>>
\define iFrameFixedBypass(Src, Class:"iFrameNormal", Attrs) <<iFrameBypass "$Src$" "$Class$" 'scrolling="no" $Attrs$'>>
\define iFrameBypass(Src, Class:"iFrameNormal", Attrs)
<<EmbedFromLine "$Src$">>
<iframe class="$Class$" frameborder="0" $Attrs$ src='
data:text/html;utf8,
<!DOCTYPE html>
<!-- Code from X-Frame-Bypass: <https://github.com/niutech/x-frame-bypass> --->
<html>
<head>
<style>
html, body { overflow: hidden; }
html, body, iframe { margin: 0px; padding: 0px; width: 100%; height: 100%; border: none; }
</style>
<script src="https://octospacc.gitlab.io/pastebin/custom-elements-builtin.0.6.5.min.js"></script>
<script src="https://octospacc.gitlab.io/pastebin/x-frame-bypass.js" type="module"></script>
</head>
<body><iframe frameborder="0" is="x-frame-bypass" src="$Src$"></iframe></body>
</html>
'></iframe>
\end
\define iFrame100(Src)
<<EmbedFromLine "$Src$">>
<iframe style=<<iFrame100Style>> frameborder="0" src="$Src$"></iframe>
\end
\define iFrame100NoScroll(Src)
<<EmbedFromLine "$Src$">>
<iframe style=<<iFrame100Style>> frameborder="0" src="$Src$" scrolling="no"></iframe>
\end
\define iFrame100UriDirect(Src)
<iframe style=<<iFrame100Style>> frameborder="0" src=$Src$></iframe>
\end
\define iFrame100Tid(Tid)
<<EmbedFromLine "$Tid$">>
<<iFrame100UriDirect """<<b64TidUriEnc "$Tid$">>""">>
\end

View File

@@ -0,0 +1,84 @@
created: 20220920092322164
creator: Octt
modified: 20230301202125785
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/Main
\whitespace trim
<!-- Wrap any text in potentially markuppable characters, sanifying markup first -->
\define [(Text, L:"[", R:"]") <span><span>$L$</span><span>$Text$</span><span>$R$</span></span>
<!-- My macro to provide HTML <details> -->
\define Details(Content, Summary:"Details", Heading:"0", Class:"tw-details")
<details class="$Class$">
<summary><h$Heading$><strong>$Summary$</strong></h$Heading$></summary>
$Content$
</details>
\end
\define details(content, summary:"Details", heading:"0", class:"tw-details") <<Details "$content$" "$summary$" "$heading$" "$class$">>
<!-- -- -- -->
<!-- Transclude with clickable link --->
\define #:(Name)
<style>
.Transcluding > h1,
.Transcluding > h2,
.Transcluding > h3,
.Transcluding > h4,
.Transcluding > h5,
.Transcluding > h6 {
Display: Inline;
}
</style>
<div class="Transcluding">
[[#|$Name$]]
{{$Name$}}
</div>
\end
<!-- Transclude with tobibeer/inc macro inside an HTML <details> element -->
\define {<(Tiddler, Heading:"0")
<details class="tw-details">
<summary>
<h$Heading$ style="display: inline;">
''$Tiddler$''
</h$Heading$>
</summary>
<<{ "$Tiddler$">>
</details>
\end
\define {^(Tiddler, Heading) <<{< "$Tiddler$" "$Heading$">>
<!-- Link to currentTiddler --->
\define lself() [[$(currentTiddler)$]]
\define #lself() [[#|$(currentTiddler)$]]
<!-- Field Checkbox --->
\define x#(Field, Text)
<$checkbox field="$Field$" checked="true" unchecked="false" default="false"> $Text$</$checkbox>
\end
\define Table(Rows) <table class="Octt-Table" style="Width:100%;"><style>.Octt-Table tr:nth-child(odd){background-color:#EEEEEE;}</style>$Rows$</table>
\define ColorText(Text, Foreground)
<span style="Color:$Foreground$;">$Text$</span>
\end
\define ColorSpan(Text, Background)
<span style="Color:#FFFFFF; Background-Color:$Background$;">$Text$</span>
\end
\define LImg(Src, Href, Alt)
<a rel="noopener noreferrer" target="_blank" href="$Href$"><img src="$Src$" alt="$Alt$"></a>
\end
\define StrAppend(Str, Suffix, Prefix) $Prefix$$Str$$Suffix$
\define iboxL(img, caption) <<ibox "$img$" "$caption$ <span>[</span>[[Source|$img$]]<span>]</span>">>

View File

@@ -0,0 +1,67 @@
/*\
See [[$:/Macros/MediaWiki]] for usage of this macro.
Note: source must always be credited, and thus it's not ideal to use this macro directly. Please use the <<MediaWiki>> wrapper macro instead, as it provides a link to the source automatically. (This feature is implemented in its own non-JS macro to make at least the URL show on static wiki exports.)
\*/
(function(){
"use strict";
exports.name = "MediaWikiEmbedInternal";
exports.params = [
{name: "Article"},
{name: "Domain"},
{name: "Sections"},
];
exports.run = function(Article, Domain, Sections) {
try {
let Text;
Sections = parseInt(Sections) || 0;
Domain = $OcttKB.MediaWiki.MkDomain(Domain);
const Req = new XMLHttpRequest();
Req.open('GET', Domain + '/w/api.php?action=query&formatversion=2&prop=extracts&format=json&origin=*&titles=' + Article, false);
Req.send();
Text = JSON.parse(Req.responseText).query.pages[0].extract;
if (!Text) {
Text = '<p>An error occurred while trying to extract the content. Close and reopen this <i>tiddler</i> to retry, or click the link to open the source in a new tab.</p>'
};
Text = Text.replaceAllTxt('\n', '').replaceAllTxt('<p class="mw-empty-elt"></p>', '');
if (Sections != 0) {
for (let i=1; i<=6; i++) {
Text = Text.replaceAllTxt(`</p><h${i}>`, `</p><!--:PARAGRAPH:--->\n<h${i}>`);
};
Text = Text.replaceAllTxt(`</p><p>`, `</p><!--:PARAGRAPH:---><p>`);
//Text = Text.split('<!--:PARAGRAPH:--->').slice(0, Max+1).join('');
//Text = Text.split('<p>').slice(0, Max+1).join('<p>');
if (Sections < 0) {
Sections = 0;
};
Text = Text.split('<!--:PARAGRAPH:--->').slice(0, Sections).join('');
//Text += '<p>[...]</p>'
};
/*
Sections = Sections.split(' ');
for (let i=0; i<Sections.length; i++) {
const Sec = Sections[i];
if (Sec) {
const Ind = Sec.toLowerCase()[0];
const Val = Sec.substring(1);
if (Ind == 'p' || Ind == 's') {
if (Ind == 'p') {
const Sep = '<!--:PARAGRAPH:--->';
} else
if (Ind == 's') {
const Sep = '<!--:SECTION:--->';
};
Text = Text.split(Sep).slice(0, Val).join('');
} else
if (Ind == '#') {
};
};
};
*/
return Text;
} catch(e) {
return $OcttKB.ErrAtLine(e);
};
}})();

View File

@@ -0,0 +1,10 @@
Note: source must always be credited, and thus it's not ideal to use this macro directly. Please use the <<MediaWiki>> wrapper macro instead, as it provides a link to the source automatically. (This feature is implemented in its own non-JS macro to make at least the URL show on static wiki exports.)
See [[$: /Macros/MediaWiki]] for usage of this macro.
created: 20230108190340455
creator: Octt
modified: 20230124213837502
modifier: Octt
module-type: macro
tags:
title: $:/Macros/MediaWiki/EmbedInternal.js
type: application/javascript

View File

@@ -0,0 +1,32 @@
/*\
Get the cover image from a MediaWiki article.
[<<]MediaWikiGetCover "Article" "Full Domain OR Wikipedia Subdomain" "Manual URL OR NULL"[>>]
\*/
(function(){
"use strict";
exports.name = "MediaWikiGetCover";
exports.params = [
{name: "Article"},
{name: "Domain"},
{name: "URL"},
];
exports.run = function(Article, Domain, URL) {
try {
if (!URL || URL && !$OcttKB.Options.Nulls.includes(URL.toLowerCase())) {
let File;
Domain = $OcttKB.MediaWiki.MkDomain(Domain);
const Req = new XMLHttpRequest();
Req.open('GET', Domain + '/w/api.php?action=query&prop=pageimages&format=json&piprop=original&origin=*&titles=' + Article, false);
Req.send();
File = Object.values(JSON.parse(Req.responseText).query.pages)[0];
if (File && File.original && File.original.source) {
return `<img src="${File.original.source}">`;
};
};
return '';
} catch(e) {
return $OcttKB.ErrAtLine(e);
};
}})();

View File

@@ -0,0 +1,8 @@
created: 20230112154435120
creator: Octt
modified: 20230124213845342
modifier: Octt
module-type: macro
tags:
title: $:/Macros/MediaWiki/GetCover.js
type: application/javascript

View File

@@ -0,0 +1,50 @@
created: 20230110102736164
creator: Octt
modified: 20230305223746772
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/MediaWiki/Main
<!--
[<<]MediaWiki[>>]
| Embed sections of an article from a MediaWiki server.
| [<<]MediaWiki "Article" "Full Domain OR Wikipedia Subdomain" "Section Filtering" "Cover Media"[>>]
--->
\define MediaWiki(Article Domain Sections Cover)
<div class="MediaWikiEmbed MediaWikiEmbedBlock">
<div class="EmbedFrom MediaWikiEmbedFrom">
From <$set name="FullDomain" filter="[[$Domain$]regexp[\.]then[$Domain$]else[$Domain$.Wikipedia.org]]">
<$macrocall $name="ExtMediaWikiAnchor" Article="$Article$" Domain=<<FullDomain>>/>
</$set>
</div>
<div class="MediaWikiEmbedCover">
<<MediaWikiGetCover "$Article$" "$Domain$" "$Cover$">>
</div>
<div class="MediaWikiEmbedContent">
<<MediaWikiEmbedInternal "$Article$" "$Domain$" "$Sections$">>
</div>
</div>
\end
\define ExtMediaWikiAnchor(Article, Domain) [[$Domain$/$Article$|https://$Domain$/wiki/$Article$]]
\define WikipediaLink(Article, Subdomain:"en") [[$Article$|https://$Subdomain$.wikipedia.org/wiki/$Article$]]
\define WikipediaLink-(Article, Subdomain:"en") [[$Article$ - Wikipedia|https://$Subdomain$.wikipedia.org/wiki/$Article$]]
<!--
<a href={{{[[$Article$]search-replace:g[ ],[_]prepend[https://$Subdomain$.wikipedia.org/]]}}}>$Article$</a>
-->
\define WikipediaFrame(Article, Subdomain:"en")
<<iFrame "https://$Subdomain$.m.wikipedia.org/wiki/$Article$">>
\end
\define wikipediaframe(Article, Subdomain) <<WikipediaFrame "$Article$" "$Subdomain$">>
\define ^WikipediaFrame(Article, Subdomain, Title:"Wikipedia")
<details class="tw-details">
<summary><strong>$Title$</strong></summary>
<<WikipediaFrame "$Article$" "$Subdomain$">>
</details>
\end
\define ^wikipediaframe(Article, Subdomain, Title) <<^WikipediaFrame "$Article$" "$Subdomain$" "$Title$">>

View File

@@ -0,0 +1,16 @@
created: 20220921191720432
modified: 20220922052514703
tags:
title: $:/Macros/Music Archiving Status
\define r(Title Notes)
<tr>
<td>$Title$</td>
<td><<x# "$Title$ - GotAny">></td>
<td><<x# "$Title$ - GotLossless">></td>
<td><<x# "$Title$ - UploadedLossless:Archive.org">></td>
<td>$Notes$</td>
</tr>
\end
<$importvariables filter="$:/Macros">

View File

@@ -0,0 +1,7 @@
created: 20230226210106105
creator: Octt
modified: 20230226210446048
modifier: Octt
title: $:/Macros/Styles
\define NoDisp() display: none;

View File

@@ -0,0 +1,37 @@
created: 20230301190809321
creator: Octt
modified: 20230301211845785
modifier: Octt
tags: $:/tags/Macro
title: $:/Macros/TiddlerTree
<!-- Most of the code derived from:
- $:/core/macros/toc
-->
\define tiddlertree(tag,sort:"",itemClassFilter,exclude,path)
\whitespace trim
<div class="tc-table-of-contents">
<$let tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>
<$set name="excluded" filter="[enlist<__exclude__>] [<__tag__>]">
<$set name="FolderPath" value=<<StrAppend "$tag$" "/">> >
<ol class="tc-toc toc-selective-expandable">
<<tree_ "$tag$/" show-title:"false">>
<$list filter="""[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]""">
<$list filter="[all[current]toc-link[no]]" variable="ignore" emptyMessage=<<toc-selective-expandable-empty-message>> >
<$macrocall $name="toc-unlinked-selective-expandable-body" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>
</$list>
</$list>
<!--
<$list filter="""[all[shadows+tiddlers]prefix<FolderPath>] -[<__tag__>] -[enlist<__exclude__>]""">
<$list filter="[all[current]toc-link[no]]" variable="ignore" emptyMessage=<<toc-selective-expandable-empty-message>> >
<$macrocall $name="tiddlertree-unlinked-selective-expandable-body" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>
</$list>
</$list>
-->
</ol>
</$set>
</$set>
</$let>
</div>
\end

View File

@@ -0,0 +1,23 @@
/*\
Return the content of a tiddler encoded as [[Base64]] and encapsulated in a data URI.
<<b64TidUriEnc "Tiddler Name">>
\*/
(function(){
"use strict";
exports.name = "b64TidUriEnc";
exports.params = [
{name: "Name"}
];
exports.run = function(Name) {
try {
let Tid = $tw.wiki.getTiddler(Name);
let Type = Tid.fields.type || "text/vnd.tiddlywiki";
let Data = $tw.utils.base64Encode(Tid.fields.text);
return "data:" + Type + ";base64," + Data;
} catch(e) {
return e;
};
};
})();

View File

@@ -0,0 +1,6 @@
created: 20221109224522256
modified: 20221110153303563
module-type: macro
tags:
title: $:/Macros/b64TidUriEnc.js
type: application/javascript

View File

@@ -0,0 +1,52 @@
created: 20220926113710012
modified: 20230108195259126
tags: $:/tags/Macro
title: $:/Macros/i18n
\define i18n-target()
<$list filter="[[$(currentTiddler)$]tags[]prefix[i18n:]split[:]last[]]">
<span style="Padding:8px;">
<<currentTiddler>>
</span>
</$list>
\end
\define i18n()
<style>
/* Rainbow gradient from https://stackoverflow.com/a/63302468 */
.LanguageBox {
Border: Solid Black 1px;
Padding: 4px;
Background: Linear-Gradient(
90deg,
RGBA(255, 0, 0, 1) 0%,
RGBA(255, 154, 0, 1) 10%,
RGBA(208, 222, 33, 1) 20%,
RGBA(79, 220, 74, 1) 30%,
RGBA(63, 218, 216, 1) 40%,
RGBA(47, 201, 226, 1) 50%,
RGBA(28, 127, 238, 1) 60%,
RGBA(95, 21, 242, 1) 70%,
RGBA(186, 12, 248, 1) 80%,
RGBA(251, 7, 217, 1) 90%,
RGBA(255, 0, 0, 1) 100%
);
}
.LanguageBox > Div {
Border: Solid Black 1px;
Padding: 4px;
Font-Size: Larger;
Text-Align: Center;
Background: White;
}
</style>
<div class="LanguageBox"><div>
<$vars id={{!!i18n}}>
<$list filter="[!is[system]contains:i18n<id>]">
<$link>
<$macrocall $name="i18n-target"/>
</$link>
</$list>
</$vars>
</div></div>
\end

View File

@@ -0,0 +1,69 @@
created: 20220922135257709
modified: 20220925154754580
tags: $:/tags/Macro
title: $:/Macros/ltabs
<!-- The following code is almost totally derived from [[$:/core/macros/tabs]] --->
\define ltabs-button()
\whitespace trim
<$button set=<<ltabsState>> setTo=<<currentTab>> default=<<__default__>> selectedClass="tc-tab-selected" tooltip={{!!tooltip}} role="switch">
<span>&nbsp;[[#|$(currentTab)$]]&nbsp;</span>
<$tiddler tiddler=<<save-currentTiddler>>>
<$set name="tv-wikilinks" value="no">
<$transclude tiddler=<<__buttonTemplate__>> mode="inline">
<$transclude tiddler=<<currentTab>> field="caption">
<$macrocall $name="currentTab" $type="text/plain" $output="text/plain"/>
</$transclude>
</$transclude>
</$set>
</$tiddler>
<<__actions__>>
</$button>
\end
\define ltabs-tab()
\whitespace trim
<$set name="save-currentTiddler" value=<<currentTiddler>>>
<$tiddler tiddler=<<currentTab>>>
<<ltabs-button>>
</$tiddler>
</$set>
\end
\define ltabs-tab-list()
\whitespace trim
<$list filter=<<__ltabsList__>> variable="currentTab" storyview="pop">
<<ltabs-tab>>
</$list>
\end
\define ltabs-tab-body()
\whitespace trim
<$list filter=<<__ltabsList__>> variable="currentTab">
<$reveal type="match" state=<<ltabsState>> text=<<currentTab>> default=<<__default__>> retain=<<__retain__>> tag="div">
<$transclude tiddler=<<__template__>> mode="block">
<$tiddler tiddler=<<currentTab>>>
<$transclude mode="block" />
</$tiddler>
</$transclude>
</$reveal>
</$list>
\end
\define ltabs(ltabsList,default,state:"$:/state/tab",class,template,buttonTemplate,retain,actions,explicitState)
\whitespace trim
<$qualify title=<<__state__>> name="qualifiedState">
<$let ltabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>
<div class={{{ [[tc-tab-set]addsuffix[ ]addsuffix<__class__>] }}}>
<div class={{{ [[tc-tab-buttons]addsuffix[ ]addsuffix<__class__>] }}}>
<<ltabs-tab-list>>
</div>
<div class={{{ [[tc-tab-divider]addsuffix[ ]addsuffix<__class__>] }}}/>
<div class={{{ [[tc-tab-content]addsuffix[ ]addsuffix<__class__>] }}}>
<<ltabs-tab-body>>
</div>
</div>
</$let>
</$qualify>
\end

View File

@@ -0,0 +1,102 @@
color: #bbb
created: 20230206111403666
creator: Octt
icon: $:/core/images/list
modified: 20230206111405719
modifier: Octt
tags: $:/Tools
title: $:/Manager
\define lingo-base() $:/language/Manager/
\define list-item-content-item()
\whitespace trim
<div class="tc-manager-list-item-content-item">
<$vars state-title="""$:/state/popup/manager/item/$(listItem)$""">
<$reveal state=<<state-title>> type="match" text="show" default="show" tag="div">
<$button set=<<state-title>> setTo="hide" class="tc-btn-invisible tc-manager-list-item-content-item-heading">
{{$:/core/images/down-arrow}}&#32;<$transclude tiddler=<<listItem>> field="caption"/>
</$button>
</$reveal>
<$reveal state=<<state-title>> type="nomatch" text="show" default="show" tag="div">
<$button set=<<state-title>> setTo="show" class="tc-btn-invisible tc-manager-list-item-content-item-heading">
{{$:/core/images/right-arrow}}&#32;<$transclude tiddler=<<listItem>> field="caption"/>
</$button>
</$reveal>
<$reveal state=<<state-title>> type="match" text="show" default="show" tag="div" class="tc-manager-list-item-content-item-body">
<$transclude tiddler=<<listItem>>/>
</$reveal>
</$vars>
</div>
\end
\whitespace trim
<div class="tc-manager-wrapper">
<div class="tc-manager-controls">
<div class="tc-manager-control">
<<lingo Controls/Show/Prompt>>&#32;<$select tiddler="$:/config/Manager/Show" default="tiddlers">
<option value="tiddlers"><<lingo Controls/Show/Option/Tiddlers>></option>
<option value="tags"><<lingo Controls/Show/Option/Tags>></option>
</$select>
</div>
<div class="tc-manager-control">
<<lingo Controls/Search/Prompt>>&#32;<$edit-text tiddler="$:/config/Manager/Filter" tag="input" default="" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>
</div>
<div class="tc-manager-control">
<<lingo Controls/FilterByTag/Prompt>>&#32;<$select tiddler="$:/config/Manager/Tag" default="">
<option value=""><<lingo Controls/FilterByTag/None>></option>
<$list filter="[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]" variable="tag">
<option value=<<tag>>><$text text=<<tag>>/></option>
</$list>
</$select>
</div>
<div class="tc-manager-control">
<<lingo Controls/Sort/Prompt>>&#32;<$select tiddler="$:/config/Manager/Sort" default="title">
<optgroup label="Common">
<$list filter="title modified modifier created creator created" variable="field">
<option value=<<field>>><$text text=<<field>>/></option>
</$list>
</optgroup>
<optgroup label="All">
<$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created" variable="field">
<option value=<<field>>><$text text=<<field>>/></option>
</$list>
</optgroup>
</$select>
&#32;
<$checkbox tiddler="$:/config/Manager/Order" field="text" checked="reverse" unchecked="forward" default="forward">
&#32;
<<lingo Controls/Order/Prompt>>
</$checkbox>
</div>
<div class="tc-manager-control">
<$checkbox tiddler="$:/config/Manager/System" field="text" checked="" unchecked="system" default="system">
&#32;
{{$:/language/SystemTiddlers/Include/Prompt}}
</$checkbox>
</div>
</div>
<div class="tc-manager-list">
<$list filter="[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]">
<$vars transclusion=<<currentTiddler>>>
<div style="tc-manager-list-item">
<$button popup=<<qualify "$:/state/manager/popup">> class="tc-btn-invisible tc-manager-list-item-heading" selectedClass="tc-manager-list-item-heading-selected">
<$text text=<<currentTiddler>>/>
</$button>
<$reveal state=<<qualify "$:/state/manager/popup">> type="nomatch" text="" default="" tag="div" class="tc-manager-list-item-content tc-popup-handle">
<div class="tc-manager-list-item-content-tiddler">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]" variable="listItem">
<<list-item-content-item>>
</$list>
</div>
<div class="tc-manager-list-item-content-sidebar">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]" variable="listItem">
<<list-item-content-item>>
</$list>
</div>
</$reveal>
</div>
</$vars>
</$list>
</div>
</div>

View File

@@ -0,0 +1,13 @@
caption: All
created: 20220922114846670
creator: Octt
list-after: Open
list-before: Recent
modified: 20230208171825414
modifier: Octt
tags: $:/tags/SideBar
title: $:/OcttKB/AllTiddlers
type:
<!-- <<list-links "[!is[system]sort[title]]">> -->
<<tree_>>

View File

@@ -0,0 +1,9 @@
created: 20230218224840540
creator: Octt
list-before: $:/config/TiddlerIconFilters/default
modified: 20230218230846245
modifier: Octt
tags: $:/tags/TiddlerIconFilter
title: $:/OcttKB/Config/TiddlerIconFilters/Emoji
[has[Emoji]then{!!Emoji}addprefix[$:/Emojis/]]

View File

@@ -0,0 +1,3 @@
created: 19700101000000000
modified: 20230324113846000
title: $:/OcttKB/Empty

View File

@@ -0,0 +1,50 @@
/*\
Load our reusable, comodity JS functions.
\*/
exports.startup = function() {
try {
var $OcttKB = {};
$OcttKB.ErrAtLine = function ErrAtLine(e) {
var Str = `${e.stack.split('\n')[0]}: ${e}`
console.log(Str);
return Str;
};
/*
$OcttKB.EvalDecodeURI = function EvalDecodeURI(Str) {
eval(decodeURIComponent(Str));
};
*/
$OcttKB.Options = {};
$OcttKB.Options.Trues = [1, true, 'yes'];
$OcttKB.Options.Falses = [0, false, 'no'];
$OcttKB.Options.Nulls = ['none', 'null'];
$OcttKB.MediaWiki = {};
$OcttKB.MediaWiki.MkDomain = function MkDomain(Domain) {
if (!Domain) {
Domain = 'en.wikipedia.org';
} else
if (!Domain.includes('.')) {
Domain += '.wikipedia.org';
};
Domain = Domain.toLowerCase();
if (!Domain.startsWith('http://') && !Domain.startsWith('https://')) {
Domain = 'https://' + Domain;
};
return Domain;
};
window.$OcttKB = $OcttKB;
window.ErrAtLine = $OcttKB.ErrAtLine;
/*window.EvalDecodeURI = $OcttKB.EvalDecodeURI;*/
} catch(e) {
var Str = `${e.stack.split('\n')[0]}: ${e}`
console.log(Str);
return Str;
};
};

View File

@@ -0,0 +1,8 @@
created: 20230111221906132
creator: Octt
modified: 20230125220054682
modifier: Octt
module-type: startup
tags:
title: $:/OcttKB/Functions.js
type: application/javascript

View File

@@ -0,0 +1,16 @@
created: 20230208220901786
creator: Octt
modified: 20230208222343118
modifier: Octt
tags:
title: $:/OcttKB/LargerSidebar.cfg
<$checkbox
tiddler="$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth"
field="text"
checked="50vw"
unchecked="280px"
default="280px"
>
Larger Sidebar
</$checkbox>

View File

@@ -0,0 +1,13 @@
created: 20230117113707614
creator: Octt
modified: 20230228112449928
modifier: Octt
tags:
title: $:/OcttKB/LastEditTime
\whitespace trim
<$list filter="[![$:/StoryList]![$:/HistoryList]!prefix[$:/temp/]!prefix[$:/state]get[modified]!prefix[NaN]!sort[]limit[1]]" variable="modified">
<$list filter="[modified<modified>]">
<$text text={{{[{!!modified}format:date[YYYY-0MM-0DD, 0hh:0mm]]}}}/>
</$list>
</$list>

View File

@@ -0,0 +1,6 @@
created: 20230112094149171
modified: 20230112210048896
tags:
title: $:/OcttKB/LicensingButtons
<$link to="OcttKB/Licensing" class="CC-BY-SA-Button">[img[$:/ThirdParty/Buttons/CC BY-SA.svg]]</$link>

View File

@@ -0,0 +1,17 @@
/*\
Load our custom polyfills, for old browsers support.
\*/
exports.startup = function() {
try {
// https://stackoverflow.com/a/63958411
String.prototype.replaceAllTxt = function replaceAll(search, replace) {
return this.split(search).join(replace);
};
} catch(e) {
const Str = `${e.stack.split('\n')[0]}: ${e}`
console.log(Str);
return Str;
};
};

View File

@@ -0,0 +1,6 @@
created: 20230111154758023
modified: 20230112185932820
module-type: startup
tags:
title: $:/OcttKB/Polyfills.js
type: application/javascript

View File

@@ -0,0 +1,12 @@
#!/bin/sh
cd ./public
# Build single-page no-JS wiki
tiddlywiki \
--load index.html \
--output ./ \
--rendertiddler $:/core/templates/static.template.css Style.css text/plain \
--rendertiddler $:/core/templates/alltiddlers.template.html Static.html text/plain
# Apply patches to the static HTML
python3 ../PatchStatic.py

View File

@@ -0,0 +1,6 @@
created: 20230126082147025
creator: Octt
modified: 20230307221654772
modifier: Octt
title: $:/OcttKB/Repo/Build.sh
type: text/plain

View File

@@ -0,0 +1,5 @@
#!/bin/sh
URL="https://kb.octt.eu.org"
cd ./public
wget -O "./-1.html" "$URL" || true
wget -O "./-2.html" "$URL/-1.html" || true

View File

@@ -0,0 +1,6 @@
created: 20230126082330667
creator: Octt
modified: 20230126082445095
modifier: Octt
title: $:/OcttKB/Repo/DeployOld.sh
type: text/plain

View File

@@ -0,0 +1,2 @@
#!/bin/sh
sh ./Main.sh

View File

@@ -0,0 +1,7 @@
created: 20230228080039630
creator: Octt
modified: 20230228080122141
modifier: Octt
tags:
title: $:/OcttKB/Repo/GitHub.Main.sh
type: text/plain

View File

@@ -0,0 +1,6 @@
#!/bin/sh
sh ./Main.sh
sh ./SetupGitProfile.sh || true
CommitCheck="$(git log -1 --pretty=%B)"
CommitMsg0="OcttKB Cross-Repo Sync"
[ "$CommitCheck" != "$CommitMsg0 (HTML to Raw)" ] && [ "$CommitCheck" != "$CommitMsg0 (Raw to HTML)" ] && sh ./GitLab.CrossRepoSync.sh || true

View File

@@ -0,0 +1,7 @@
created: 20230228075916930
creator: Octt
modified: 20230228095455279
modifier: Octt
tags:
title: $:/OcttKB/Repo/GitLab.Main.sh
type: text/plain

View File

@@ -0,0 +1,3 @@
#!/bin/sh
sh ./Build.sh
sh ./DeployOld.sh || true

View File

@@ -0,0 +1,7 @@
created: 20230126081754717
creator: Octt
modified: 20230228095521738
modifier: Octt
tags:
title: $:/OcttKB/Repo/Main.sh
type: text/plain

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env python3
from bs4 import BeautifulSoup
from re import sub
File = 'Static.html'
def Fix1(m):
return f'<details><a name="{m.group(1)}"></a><summary>{m.group(2)}</summary>'
Source = str(BeautifulSoup(open(File, 'r'), 'html5lib'));
open(File, 'w').write(sub('<details><a name="(.+)"><summary>(.+)<\/summary>\s*<\/a>', Fix1, Source));

View File

@@ -0,0 +1,6 @@
created: 20230307221237990
creator: Octt
modified: 20230307221722752
modifier: Octt
title: $:/OcttKB/Repo/PatchStatic.py
type: text/plain

View File

@@ -0,0 +1,5 @@
#!/bin/sh
git config --global user.email "$GitUserEmail"
git config --global user.name "$GitUserName"
git config --global credential.helper store
echo "https://$GitUserName:$GitPassword@gitlab.com" > ~/.git-credentials

View File

@@ -0,0 +1,7 @@
created: 20230228081951095
creator: Octt
modified: 20230228082144682
modifier: Octt
tags:
title: $:/OcttKB/Repo/SetupGitProfile.sh
type: text/plain

View File

@@ -0,0 +1,10 @@
created: 20230227073225540
creator: Octt
modified: 20230227073319615
modifier: Octt
tags:
title: $:/OcttKB/StartButton
<div>
<$link to="OcttKB" class="StartHere-Button">[img[$:/ThirdParty/Icons/Windows/9x-Start.png]] <span>here!</span></$link>
</div>

View File

@@ -0,0 +1,19 @@
created: 20230112221909714
creator: Octt
modified: 20230227073428911
modifier: Octt
tags:
title: $:/OcttKB/StaticBanner
<div style="Padding-Left:16px; Padding-Right:16px;">
<h1 class="tc-site-title">
[[OcttKB]]
</h1>
<div class="tc-site-subtitle">
Octt Knowledge Base || Powered by [[TiddlyWiki|TiddlyWiki]].</div>
<p>
<b>Note</b>: You're viewing the no-JS version of this site, some features will be missing. For the best experience, <a href="./">load the full version</a>.
</p>
</div>
{{$:/OcttKB/StartButton}}

View File

@@ -0,0 +1,27 @@
created: 20230110181206539
modified: 20230110182005662
tags:
title: $:/OcttKB/TagCloud
\import [[$:/ThirdParty/TiddlyTools/FilterGenerators/TagCloud]]
\define config() $:/config/TiddlyTools/TagCloud
\define options() $:/state/popup/tagcloud
\define default_min() 0.75
\define default_step() 0.25
\define default_max() 3.00
\define default_group() 5
<style>
.tc-tag-label { white-space: normal !important; }
.tc-tag-list-item { padding: 2px; }
.tt-tagcloud input { width:auto !important; }
.tt-tagcloud input.option { width:3em !important; text-align:right; }
</style>
<div class="tt-tagcloud">
<!--<<tagcloud_select>>--->
<!--<$set name=taglist filter="[<config>get[taglist]enlist-input[]]">--->
<$set name=taglist filter="[tags[]!is[system]]">
<!--<<tagcloud_summary>>--->
<<tagcloud_show>>

View File

@@ -0,0 +1,13 @@
caption: Map
created: 20230208165943628
creator: Octt
list-after: More
modified: 20230225110034032
modifier: Octt
tags: $:/tags/SideBar
title: $:/OcttKB/TheBrain/Focus
type:
{{$:/OcttKB/LargerSidebar.cfg}}
{{$:/OcttKB/TheBrain/Levels.cfg}}
{{$:/OcttKB/TheBrain/Tiddler-Focused.wgt}}

View File

@@ -0,0 +1,19 @@
.Levels: 3
.Levels-Max: 8
.Levels-Min: 1
created: 20230208170228555
creator: Octt
modified: 20230221210807319
modifier: Octt
tags:
title: $:/OcttKB/TheBrain/Levels.cfg
<style>
input[type=number] { width: 1.5em; }
</style>
Depth: {{!!.Levels}}
<$edit-text type="number" style="width: 10px !important;" field=".Levels-Min" />
<$range min={{!!.Levels-Min}} max={{!!.Levels-Max}} field=".Levels" />
<$edit-text type="number" field=".Levels-Max" />

View File

@@ -0,0 +1,8 @@
created: 20230208171128457
creator: Octt
modified: 20230208171248569
modifier: Octt
tags:
title: $:/OcttKB/TheBrain/Tiddler-Focused.wgt
<$echarts $tiddler="$:/plugins/Gk0Wk/echarts/addons/TheBrain.js" aliasField="caption" levels={{$:/OcttKB/TheBrain/Levels.cfg!!.Levels}} />

View File

@@ -0,0 +1,10 @@
.Tiddler: Octt
created: 20230208170700510
creator: Octt
modified: 20230209164108677
modifier: Octt
tags:
title: $:/OcttKB/TheBrain/Tiddler-Manual.wgt
<$edit-text class="Edit-Text-Full" field=".Tiddler" />
<$echarts $tiddler="$:/plugins/Gk0Wk/echarts/addons/TheBrain.js" aliasField="caption" levels={{$:/OcttKB/TheBrain/Levels.cfg!!.Levels}} focussedTiddler={{!!.Tiddler}} />

View File

@@ -0,0 +1,10 @@
created: 20230110183048646
creator: Octt
modified: 20230301201445152
modifier: Octt
tags:
title: $:/OcttKB/ToC
<div class="tc-table-of-contents">
<<toc-selective-expandable "$:/ToC">>
</div>

View File

@@ -0,0 +1,8 @@
created: 20230110205229441
modified: 20230110213137071
tags:
title: $:/OcttKB/Tweaks/Starlight.cfg
!!! Personal Tweaks
|<$link to="$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding">.tc-story-river Padding</$link><br>//Default 42px.//|<$edit-text tiddler="$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding" default="" tag="input"/>|

View File

@@ -0,0 +1,15 @@
.URL: https://librex.octt.eu.org
caption: Browser
created: 20230225105917089
creator: Octt
list-after: Map
modified: 20230228225126748
modifier: Octt
tags: $:/tags/SideBar
title: $:/OcttKB/WebBrowser
<small>Yo dawg, I heard you like web browsers, so I put a browser inside this wiki, so that you can browse the web while you use your browser to browse the wiki from your browser!
<small>If the CORS machine doesn't break again, that is...</small>
</small>
<$edit-text class="Edit-Text-Full" tiddler="$:/OcttKB/WebBrowser" field=".URL" />
<$macrocall $name="iFrameBypass" Src={{$:/OcttKB/WebBrowser!!.URL}} Class="iFrameFitX iFrameFullY"/>

View File

@@ -0,0 +1,109 @@
### My personal links!
- [Mastodon](https://mastodon.uno/@octo) - Microblog, 98% italian
- [Pixelfed](https://pixelfed.uno/@octo) - Where I post my pictures
- [[🇮🇹️] Noblogo](https://noblogo.org/loli-documentatrice) - Old blog (italian)
- Spacc Inc - [Website](https://spacc.xyz), [Telegram (photos of broken stuff)](https://t.me/s/SpaccInc)
- SpaccCraft, my Minecraft server (italian): [Website](https://spacccraft.altervista.org), [Telegram](https://t.me/s/SpaccCraft), [Misskey](https://misskey.social/@SpaccCraft)
### Scripts and Configs
- [Andronix Scripts](https://github.com/AndronixApp/AndronixOrigin) - Scripts to install containerized Linux distros on Android in Termux
### Awesome Big Libre Games!
- [Techmino](https://github.com/26F-Studio/Techmino) - Flashy libre Tetris :)
- [Sonic Robo Blast 2](https://www.srb2.org) - Sonic pseudo-3D platformer
- [Sonic Robo Blast 2 Kart](https://wiki.srb2.org/wiki/SRB2Kart) - Sonic pseudo-3D kart racing
- [Minetest](https://www.minetest.net) - Minining, crafting, and exploring game
- [SuperTux](https://www.supertux.org) - Classic platformer but with the Linux penguin
- [Extreme Tux Racer](https://sourceforge.net/projects/extremetuxracer) - Snow racing game, with the Linux penguin
- [SuperTuxKart](https://supertuxkart.net) - Kart racing with many libre mascots
- [Xonotic](https://xonotic.org) - Super fast arena FPS
- [osu! lazer](https://github.com/ppy/osu) - Flashy multi-mode rhythm game
### Awesome Arcade Libre Games!
- [krassesSpiel](https://f-droid.org/packages/com.autismprime.krassesSpiel) - Shooting at boxes and avoiding enemy projectiles
- [Antimine](https://f-droid.org/packages/dev.lucanlm.antimine) - Classic Minesweeper with a modern look
- [SpaceCadetPinball](https://github.com/k4zmu2a/SpaceCadetPinball) - The classic 3D Pinball
- [HexGL](https://hexgl.bkcore.com) - F-Zero inspired, fast racing game
- [TuxPuck](https://packages.debian.org/search?keywords=tuxpuck) - Penguin air hockey game
### Awesome Libre Demos!
- [bb](http://aa-project.sourceforge.net/bb) - AA-lib text animation demo
### Awesome Libre Cross-Platform Tools!
- [Rclone](https://rclone.org) - CLI tool for managing cloud storage in flexible ways
- [Cryptomator](https://cryptomator.org) - Data encryption tool with cloud storage in mind
- [7-Zip](https://www.7-zip.org) - Useful file archiver supporting the efficient 7z format
- [GNU nano](https://www.nano-editor.org), [ne](https://ne.di.unimi.it) - CLI text editors
- [htop](https://htop.dev), [bottom](https://github.com/ClementTsang/bottom), [btop](https://github.com/aristocratos/btop) - CLI system monitors
- [bat](https://github.com/sharkdp/bat) - Advanced cat clone
- [RustDesk](https://github.com/rustdesk/rustdesk) - Promising remote desktop software
- [Deskreen](https://github.com/pavlobu/deskreen) - Turns a secondary PC into a secondary screen for a primary PC
- [Tor](https://www.torproject.org) - Anonymity and security online
### Awesome Libre Desktop Tools!
- [CoolRetroTerm](https://github.com/Swordfish90/cool-retro-term) - Terminal emulator that emulates a CRT monitor
- [OBS Studio](https://obsproject.com) - Advanced video recording/streaming tool
- [Olive](https://olivevideoeditor.org) - Nice and simple video editor
- [Kdenlive](https://kdenlive.org) - Video editor from KDE
- Shotcut - [Website](https://shotcut.org), [Source](https://github.com/mltframework/shotcut) - Video editor that might be my current favourite
- [Mint Webapp Manager](https://github.com/linuxmint/webapp-manager) - Using webapps as desktop apps
### Awesome Desktop Linux Themes!
- [Chicago95](https://github.com/grassmunk/Chicago95) - Windows 95 theme for XFCE
- [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) - Material icon theme
### Awesome Libre Dev Stuff!
- [TIC-80](https://tic80.com) - Fantasy retro computer
### Awesome Web Frameworks!
- [98.css](https://github.com/jdan/98.css), [XP.css](https://github.com/botoxparty/XP.css), [7.css](https://github.com/khang-nd/7.css) - Windows-styled CSS
### Awesome Emulation Stuff!
- [Dolphin Emulator](https://dolphin-emu.org) - Emulator for the GameCube + Overclocked GameCube
- [yuzu](https://yuzu-emu.org), [Ryujinx](https://ryujinx.org), [Skyline](https://github.com/skyline-emu/skyline) emulator - Switch emulators
### Fediverse Bonanza!
- [Mastodon](https://github.com/mastodon/mastodon) - Simple microblogging
- [tooot](https://github.com/tooot-app/app) - Clean mobile Mastodon client
- [Friendica](https://github.com/friendica/friendica) - Advanced macroblogging and communication
- [Misskey](https://github.com/misskey-dev/misskey) - Colorful and advanced microblogging
- [Pixelfed](https://github.com/pixelfed/pixelfed) - Photo/video sharing
- [Lemmy](https://github.com/LemmyNet/lemmy) - Link aggregator and forum platform
- Bonfire - [Website](https://bonfirenetworks.org), [Source](https://github.com/bonfire-networks/bonfire-app) - New simple microblogging platform, with a focus on no-JS use
### Awesome Libre Server-Side Software!
- [Invidious](https://github.com/iv-org/invidious) - YouTube frontend
- [Nitter](https://github.com/zedeus/nitter) - Twitter frontend
- [Bibliogram](https://sr.ht/~cadence/bibliogram) - Instagram frontend
- [Libreddit](https://github.com/spikecodes/libreddit) - Reddit frontend
### Awesome Libre Android Tools!
- [WiGLE WiFi Wardriving](https://f-droid.org/packages/net.wigle.wigleandroid) - Tool for geomapping WiFi APs and Bluetooth devices
- [Gadgetbridge](https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge) - Libre companion app for proprietary smart bands
- [Termux](https://f-droid.org/packages/com.termux) - Terminal emulator with integrated package manager and repos
- [Linux Deploy](https://github.com/meefik/linuxdeploy) - Quick tool for running full Linux distros on Android (containerized with Chroot); Use v<=2.5.1 for Android<5; Use v<=2.4.1 for Proot (no root needed on Android);
- [NewPipe](https://github.com/TeamNewPipe/NewPipe) - Frontend for YouTube and other platforms
- [Lawndesk](https://github.com/renzhn/Lawndesk) - Launcher without app drawer
- [Taskbar](https://github.com/farmerbb/Taskbar) - Desktop-like launcher
### MicroPython Stuff!
- [MicroPython](https://micropython.org) - MP itself, a lightweight Python implementation
- [FBConsole](https://github.com/boochow/FBConsole) - Frame buffer console class for MP (for displaying Python REPL on a display)
- [Micropython-Editor](https://github.com/robert-hh/Micropython-Editor) - Console text editor for MP
- [SH1106](https://github.com/robert-hh/SH1106) - MP driver for SH1106 OLED displays
- [PCF8574](https://github.com/mcauser/micropython-pcf8574) - MP driver for PCF8574 8-Bit I2C I/O Expander

View File

@@ -0,0 +1,5 @@
created: 20230117110233701
modified: 20230117110923520
tags:
title: $:/OcttKB/bachecoctt.md.old
type: text/plain

View File

@@ -0,0 +1,7 @@
created: 20230207221845859
creator: Octt
modified: 20230225114223013
modifier: Octt
tags:
title: $:/Octt/Microsoft Rewards Earnings.json
type: application/json

View File

@@ -0,0 +1,48 @@
52 days of autumn - GotAny: true
52 days of autumn - GotLossless: false
ADORE ADORE ADORE - GotAny: true
ADORE ADORE ADORE - GotLossless: false
FUTURE GROOVE PRODUCT - GotAny: true
FUTURE GROOVE PRODUCT - GotLossless: false
Float Islands - GotAny: true
Float Islands - GotLossless: false
I Love You - GotAny: true
I Love You - GotLossless: false
TYPE R-510 - GotAny: true
TYPE R-510 - GotLossless: false
The B-Sides - GotAny: true
The B-Sides - GotLossless: false
ULTRA GROOVE PRODUCT - GotAny: true
ULTRA GROOVE PRODUCT - GotLossless: false
android52 presents FILE CORRUPTED - GotAny: true
android52 presents FILE CORRUPTED - GotLossless: false
android52 presents WELCOME NEW GALAXY - GotAny: true
android52 presents WELCOME NEW GALAXY - GotLossless: false
created: 20220921195911403
creator: Octt
modified: 20230225114104719
modifier: Octt
tags: Archiving Music
title: $:/Octt/Music Archiving Status/Android52
<$importvariables filter="$:/Macros [[$:/Macros/Music Archiving Status]]">
!!! Android52 || [[Bandcamp|https://android52.bandcamp.com/music]]
<<Table """
<<r "52 days of autumn">>
<<r "ADORE ADORE ADORE">>
<<r "ANDROID52 COLLECT">>
<<r "android52 presents FILE CORRUPTED">>
<<r "android52 presents WELCOME NEW GALAXY">>
<<r "~~CYGNUS~~" "In album: ADORE ADORE ADORE">>
<<r "Float Islands">>
<<r "FUTURE GROOVE PRODUCT">>
<<r "I Love You">>
<<r "NONPLUSULTRA, Vol. 1">>
<<r "NONPLUSULTRA, Vol. 2">>
<<r "NONPLUSULTRA, Vol. 3">>
<<r "The B-Sides">>
<<r "TYPE R-510">>
<<r "ULTRA GROOVE PRODUCT">>
""">>

View File

@@ -0,0 +1,66 @@
BEST BEFORE 1998 - GotAny: true
Concrete Jungle - GotAny: true
Desired - GotAny: true
Lovestory - GotAny: true
Momo Club - GotAny: true
PLASTIC WHATEVER - GotAny: true
The Sweetest Dream - GotAny: true
Timeless - GotAny: true
created: 20220923061532177
creator: Octt
memory tape - GotAny: true
modified: 20230225114241028
modifier: Octt
nineteen - GotAny: true
tags: Archiving Music
title: $:/Octt/Music Archiving Status/Desired
<$importvariables filter="$:/Macros [[$:/Macros/Music Archiving Status]]">
!!! Desired || [[Bandcamp|https://desired.bandcamp.com/music]]
<<Table """
<<r "BEST BEFORE 1998">>
<<r "Concrete Jungle">>
<<r "Day Of Destiny">>
<<r "Digital Love">>
<<r Desired>>
<<r Dreamland>>
<<r Emotions>>
<<r "Every Part of Me Loves You Bae">>
<<r "Eyes On Me">>
<<r "Fairy Tale">>
<<r "Get Rdy">>
<<r Heaven>>
<<r "Honey Bunny">>
<<r "I Want You">>
<<r Lost>>
<<r Lovestory>>
<<r "memory tape">>
<<r "Momo Club">>
<<r nineteen>>
<<r "Nothing Wrong">>
<<r "Only Friends">>
<<r "Party All The Night">>
<<r "Plastic Little">>
<<r "PLASTIC WHATEVER">>
<<r "Princess Serenity">>
<<r "Shambara - Solid Dance (Desired Bootleg)">>
<<r "Soul Ascension">>
<<r "Special Christmas!">>
<<r "Special Love">>
<<r "The Sweetest Dream">>
<<r "The Last Dance Of The Night">>
<<r Timeless>>
<<r "Time To">>
<<r "Tropical Adventure">>
<<r "Vanilla Pepsi (Desired Edit)">>
<<r "Wake Up">>
<<r "Wish I Knew">>
<<r "Yatsuro Tamashita">>
""">>
!!!! Singles in Albums
* Never Fall In Love Again (ft. コTHOUGHTS), BROKEN HEART 月​野​う​さ​ぎ, All I Need, SUNSHINE AEROBICS, I'm So Alone, Don't Stop, めE X C U S E S : Lovestory
* Timeless : Timeless

View File

@@ -0,0 +1,58 @@
[
{
"created": "20220922051649658",
"creator": "Octt",
"text": "<$importvariables filter=\"$:/Macros [[$:/Macros/Music Archiving Status]]\">\n\n!!! Moe Shop || [[Bandcamp|https://moeshop.bandcamp.com/music]]\n\n<<Table \"\"\"\n<<r Cerise>>\n<<r \"Charm (w/ Puniden)\">>\n<<r Highlight>>\n<<r \"Identity (w/ SEIJ)\">>\n<<r \"Love Taste (w/ Jamie Paige & Shiki)\">>\n<<r \"Love Taste Remixes\">>\n<<r \"Moe Moe\">>\n<<r \"Moshi Moshi\">>\n<<r \"Natural (w/ Ace Hashimoto)\">>\n<<r \"Pastel (w/ Snail's House)\">>\n<<r \"Pure Pure\">>\n<<r \"the new flying witch groove\">>\n<<r \"the new moe groove\">>\n<<r \"Want You\">>\n<<r \"WONDER POP\">>\n<<r \"WWW (feat. EDOGA-SULLIVAN)\">>\n<<r \"fusq - Blush (ft. MYLK) (Moe Shop Remix)\">>\n<<r \"Hentai Dude - Tokyo Chopp [ft. Shiki(TMNS)] (Moe Shop Remix)\">>\n\"\"\">>",
"tags": "Archiving Music",
"title": "$:/Octt/Music Archiving Status/Moe Shop",
"modified": "20230225114333883",
"Blush (ft. MYLK) (Moe Shop Remix) - GotAny": "true",
"Cerise - GotAny": "true",
"Charm (w/ Puniden) - GotAny": "true",
"Highlight - GotAny": "true",
"Identity (w/ SEIJ) - GotAny": "true",
"Love Taste (w/ Jamie Paige & Shiki) - GotAny": "true",
"Moe Moe - GotAny": "true",
"Moshi Moshi - GotAny": "true",
"Natural (w/ Ace Hashimoto) - GotAny": "true",
"Pastel (w/ Snail's House) - GotAny": "true",
"Pure Pure - GotAny": "true",
"WONDER POP - GotAny": "true",
"WWW (feat. EDOGA-SULLIVAN) - GotAny": "true",
"the new flying witch groove - GotAny": "true",
"Blush (ft. MYLK) (Moe Shop Remix) - GotLossless": "true",
"Blush (ft. MYLK) (Moe Shop Remix) - UploadedLossless:Archive.org": "true",
"Charm (w/ Puniden) - GotLossless": "true",
"Charm (w/ Puniden) - UploadedLossless:Archive.org": "true",
"Hentai Dude - Tokyo Chopp [ft. Shiki(TMNS)] (Moe Shop Remix) - GotAny": "true",
"Hentai Dude - Tokyo Chopp [ft. Shiki(TMNS)] (Moe Shop Remix) - GotLossless": "true",
"Hentai Dude - Tokyo Chopp [ft. Shiki(TMNS)] (Moe Shop Remix) - UploadedLossless:Archive.org": "true",
"Highlight - GotLossless": "true",
"Highlight - UploadedLossless:Archive.org": "true",
"Love Taste (w/ Jamie Paige & Shiki) - GotLossless": "true",
"Love Taste (w/ Jamie Paige & Shiki) - UploadedLossless:Archive.org": "true",
"Love Taste Remixes - GotAny": "true",
"Love Taste Remixes - GotLossless": "true",
"Love Taste Remixes - UploadedLossless:Archive.org": "true",
"Moshi Moshi - GotLossless": "true",
"Moshi Moshi - UploadedLossless:Archive.org": "true",
"Pastel (w/ Snail's House) - GotLossless": "true",
"Natural (w/ Ace Hashimoto) - GotLossless": "true",
"Natural (w/ Ace Hashimoto) - UploadedLossless:Archive.org": "true",
"Pastel (w/ Snail's House) - UploadedLossless:Archive.org": "true",
"Want You - GotAny": "true",
"Want You - GotLossless": "true",
"Want You - UploadedLossless:Archive.org": "true",
"Pure Pure - GotLossless": "true",
"Pure Pure - UploadedLossless:Archive.org": "true",
"the new moe groove - GotAny": "true",
"the new flying witch groove - GotLossless": "true",
"the new moe groove - GotLossless": "true",
"the new flying witch groove - UploadedLossless:Archive.org": "true",
"the new moe groove - UploadedLossless:Archive.org": "true",
"fusq - Blush (ft. MYLK) (Moe Shop Remix) - GotAny": "true",
"fusq - Blush (ft. MYLK) (Moe Shop Remix) - GotLossless": "true",
"fusq - Blush (ft. MYLK) (Moe Shop Remix) - UploadedLossless:Archive.org": "true",
"modifier": "Octt"
}
]

View File

@@ -0,0 +1,77 @@
[
{
"created": "20220921172621560",
"creator": "Octt",
"text": "<$importvariables filter=\"$:/Macros [[$:/Macros/Music Archiving Status]]\">\n\n!!! Ujico / Snail's House | [[Bandcamp|https://0101.bandcamp.com/music]]\n\n<<Table \"\"\"\n<<r Balloons>>\n<<r \"Biscuit Funk\">>\n<<r BLITZ>>\n<<r \"Candy Dash (VIP)\">>\n<<r \"Christmas of a Wandering Ghost\">>\n<<r \"Dream Castle EP\">>\n<<r [FLOWERS]>>\n<<r Imaginarium>>\n<<r Journey>>\n<<r \"Kawaii Collective\">>\n<<r Kitty>>\n<<r \"L'été\">>\n<<r \"Love Magic\">>\n<<r \"love songs\">>\n<<r \"Love Story\">>\n<<r \".。:+*mal d'amour.。:+*\">>\n<<r \"Magical Holiday\">>\n<<r \"Ordinary Songs 1\">>\n<<r \"Ordinary Songs 2\">>\n<<r \"Ordinary Songs 3\">>\n<<r \"Ordinary Songs 4\">>\n<<r \"Ordinary Songs 5\">>\n<<r \"Pâtisserie Snail\">>\n<<r \"Pixel Galaxy\">>\n<<r PIXELIZE>>\n<<r scenery>>\n<<r \"Snailchan Adventure\">>\n<<r Snö>>\n<<r Storyteller>>\n<<r SUPERGIRL>>\n<<r \"Sweety Sweety\">>\n<<r Twinklestar>>\n<<r \"ujbeats vol.1\">>\n<<r \"ujbeats vol.2\">>\n<<r \"Warp Star\">>\n<<r ~WonderWorld>>\n<<r \"エイリアン☆ポップ I\">>\n<<r \"エイリアン☆ポップ II\">>\n<<r \"エイリアン☆ポップ III\">>\n<<r 妖>>\n<<r \"空中都市\">>\n<<r \"ドリームPrincess (Dream Princess) feat. 初音ミク\">>\n<<r \"LADY'S ONLY Remixed by Snail's House - Digital Tattoo (Snail's House Remix)\">>\n\"\"\">>",
"tags": "Archiving Music",
"title": "$:/Octt/Music Archiving Status/Ujico \\ Snail's House",
"modified": "20230225114024938",
"Balloons - GotLossless": "true",
"Balloons - UploadedLossless:Archive.org": "true",
"LADY'S ONLY Remixed by Snail's House - Digital Tattoo (Snail's House Remix) - GotLossless": "true",
"LADY'S ONLY Remixed by Snail's House - Digital Tattoo (Snail's House Remix) - UploadedLossless:Archive.org": "true",
"Christmas of a Wandering Ghost - GotLossless": "true",
"Christmas of a Wandering Ghost - UploadedLossless:Archive.org": "true",
"Kawaii Collective - GotLossless": "true",
"Kawaii Collective - UploadedLossless:Archive.org": "true",
".。:+*mal d'amour.。:+* - GotLossless": "true",
".。:+*mal d'amour.。:+* - UploadedLossless:Archive.org": "true",
"Ordinary Songs 1 - GotLossless": "true",
"Ordinary Songs 2 - GotLossless": "true",
"Ordinary Songs 3 - GotLossless": "true",
"Ordinary Songs 4 - GotLossless": "true",
"Ordinary Songs 5 - GotLossless": "true",
"Ordinary Songs 5 - UploadedLossless:Archive.org": "true",
"Ordinary Songs 4 - UploadedLossless:Archive.org": "true",
"Ordinary Songs 3 - UploadedLossless:Archive.org": "true",
"Ordinary Songs 2 - UploadedLossless:Archive.org": "true",
"Ordinary Songs 1 - UploadedLossless:Archive.org": "true",
"ujbeats vol.1 - GotLossless": "true",
"ujbeats vol.1 - UploadedLossless:Archive.org": "true",
"ドリームPrincess (Dream Princess) feat. 初音ミク - GotLossless": "true",
"ドリームPrincess (Dream Princess) feat. 初音ミク - UploadedLossless:Archive.org": "true",
"Candy Dash (VIP) - GotLossless": "true",
"Candy Dash (VIP) - UploadedLossless:Archive.org": "true",
"Balloons - GotAny": "true",
"Candy Dash (VIP) - GotAny": "true",
"LADY'S ONLY Remixed by Snail's House - Digital Tattoo (Snail's House Remix) - GotAny": "true",
"Christmas of a Wandering Ghost - GotAny": "true",
"Kawaii Collective - GotAny": "true",
".。:+*mal d'amour.。:+* - GotAny": "true",
"Ordinary Songs 1 - GotAny": "true",
"Ordinary Songs 2 - GotAny": "true",
"Ordinary Songs 3 - GotAny": "true",
"Ordinary Songs 4 - GotAny": "true",
"Ordinary Songs 5 - GotAny": "true",
"ujbeats vol.1 - GotAny": "true",
"ドリームPrincess (Dream Princess) feat. 初音ミク - GotAny": "true",
"BLITZ - GotAny": "true",
"Pâtisserie Snail - GotAny": "true",
"Dream Castle EP - GotAny": "false",
"エイリアン☆ポップ II - GotAny": "true",
"Imaginarium - GotAny": "true",
"Journey - GotAny": "false",
"Sweety Sweety - GotAny": "true",
"エイリアン☆ポップ I - GotAny": "true",
"love songs - GotAny": "true",
"Love Story - GotAny": "true",
"Kitty - GotAny": "true",
"Magical Holiday - GotAny": "true",
"Love Magic - GotAny": "true",
"Snailchan Adventure - GotAny": "true",
"Pixel Galaxy - GotAny": "true",
"Snö - GotAny": "true",
"SUPERGIRL - GotAny": "true",
"Twinklestar - GotAny": "true",
"Warp Star - GotAny": "true",
"エイリアン☆ポップ III - GotAny": "true",
"L'été - GotAny": "true",
"scenery - GotAny": "true",
"~WonderWorld - GotAny": "true",
"妖 - GotAny": "true",
"空中都市 - GotAny": "true",
"[FLOWERS] - GotAny": "true",
"Storyteller - GotAny": "true",
"modifier": "Octt"
}
]

View File

@@ -0,0 +1,80 @@
[
{
"created": "20220922190748421",
"creator": "Octt",
"text": "<$importvariables filter=\"$:/Macros [[$:/Macros/Music Archiving Status]]\">\n\n!!! marsy || [[Bandcamp|https://marsy.bandcamp.com/music]]\n\n<<Table \"\"\"\n<<r ACTION>>\n<<r \"actual content\">>\n<<r \"ANIME GROOVES PART I\">>\n<<r \"ANIME GROOVES PART II\">>\n<<r Classics>>\n<<r \"CLIMAX (single)\">>\n<<r DREAMY>>\n<<r \"ELECTROLYZE (single)\">>\n<<r \"ELECTROLYZE (2022 VER.)\">>\n<<r Her>>\n<<r \"Her (2022 Remastered)\">>\n<<r \"Kyary Collection\">>\n<<r MARIYASTEP!>>\n<<r \"MARSY/SELF TITLED\" \"Got for free from BOGUS COLLECTIVE\">>\n<<r \"my childhood\">>\n<<r Orenji>>\n<<r \"Rock ya feet!\">>\n<<r \"Rude Buster\">>\n<<r \"She Loves Me\">>\n<<r spring>>\n<<r \"STROBE LIGHT (feat. Hatsune Miku)\">>\n<<r Superheroes>>\n<<r Sweet-Sides>>\n<<r \"Sweet-Sides (2022 Remastered)\">>\n\"\"\">>",
"tags": "Music Archiving",
"title": "$:/Octt/Music Archiving Status/marsy",
"modified": "20230225114316080",
"ACTION - GotAny": "true",
"ACTION - GotLossless": "true",
"ACTION - UploadedLossless:Archive.org": "true",
"actual content - GotAny": "true",
"actual content - GotLossless": "true",
"actual content - UploadedLossless:Archive.org": "true",
"ANIME GROOVES PART I - GotAny": "true",
"ANIME GROOVES PART I - GotLossless": "true",
"ANIME GROOVES PART I - UploadedLossless:Archive.org": "true",
"ANIME GROOVES PART II - GotAny": "true",
"ANIME GROOVES PART II - GotLossless": "true",
"ANIME GROOVES PART II - UploadedLossless:Archive.org": "true",
"DREAMY - GotAny": "true",
"DREAMY - GotLossless": "true",
"DREAMY - UploadedLossless:Archive.org": "true",
"ELECTROLYZE (single) - GotAny": "true",
"ELECTROLYZE (single) - GotLossless": "true",
"ELECTROLYZE (single) - UploadedLossless:Archive.org": "true",
"ELECTROLYZE (2022 VER.) - GotAny": "true",
"ELECTROLYZE (2022 VER.) - GotLossless": "true",
"ELECTROLYZE (2022 VER.) - UploadedLossless:Archive.org": "true",
"Her - GotAny": "true",
"Her - GotLossless": "true",
"Her - UploadedLossless:Archive.org": "true",
"Her (2022 Remastered) - GotAny": "true",
"Her (2022 Remastered) - GotLossless": "true",
"Her (2022 Remastered) - UploadedLossless:Archive.org": "true",
"Kyary Collection - GotAny": "true",
"Kyary Collection - GotLossless": "true",
"Kyary Collection - UploadedLossless:Archive.org": "true",
"MARIYASTEP! - GotAny": "true",
"MARSY/SELF TITLED - GotLossless": "true",
"MARIYASTEP! - UploadedLossless:Archive.org": "true",
"MARIYASTEP! - GotLossless": "true",
"Orenji - GotAny": "true",
"Orenji - GotLossless": "true",
"Orenji - UploadedLossless:Archive.org": "true",
"Rock ya feet! - GotAny": "true",
"Rock ya feet! - GotLossless": "true",
"Rock ya feet! - UploadedLossless:Archive.org": "true",
"Rude Buster - GotAny": "true",
"Rude Buster - GotLossless": "true",
"Rude Buster - UploadedLossless:Archive.org": "true",
"She Loves Me - GotAny": "true",
"She Loves Me - GotLossless": "true",
"She Loves Me - UploadedLossless:Archive.org": "true",
"Superheroes - GotAny": "true",
"Superheroes - GotLossless": "true",
"Superheroes - UploadedLossless:Archive.org": "true",
"Sweet-Sides - GotAny": "true",
"Sweet-Sides - GotLossless": "true",
"Sweet-Sides - UploadedLossless:Archive.org": "true",
"Sweet-Sides (2022 Remastered) - GotAny": "true",
"Sweet-Sides (2022 Remastered) - GotLossless": "true",
"Sweet-Sides (2022 Remastered) - UploadedLossless:Archive.org": "true",
"spring - GotAny": "true",
"spring - GotLossless": "true",
"spring - UploadedLossless:Archive.org": "true",
"my childhood - GotAny": "true",
"my childhood - GotLossless": "true",
"my childhood - UploadedLossless:Archive.org": "true",
"MARSY/SELF TITLED - GotAny": "true",
"MARSY/SELF TITLED - UploadedLossless:Archive.org": "true",
"STROBE LIGHT (feat. Hatsune Miku) - GotAny": "true",
"STROBE LIGHT (feat. Hatsune Miku) - GotLossless": "true",
"CLIMAX (single) - GotAny": "true",
"CLIMAX (single) - GotLossless": "true",
"CLIMAX (single) - UploadedLossless:Archive.org": "true",
"STROBE LIGHT (feat. Hatsune Miku) - UploadedLossless:Archive.org": "true",
"modifier": "Octt"
}
]

View File

@@ -0,0 +1,5 @@
created: 20220920084517972
modified: 20230110220531245
title: $:/SiteSubtitle
Octt Knowledge Base || // Static version available at [ext[./Static.html]].//

View File

@@ -0,0 +1,5 @@
created: 20220920084457368
modified: 20220920084507769
title: $:/SiteTitle
OcttKB

View File

@@ -0,0 +1,6 @@
created: 20220920211944968
modified: 20230112221911675
tags:
title: $:/StaticBanner
{{$:/OcttKB/StaticBanner}}

View File

@@ -0,0 +1,2 @@
list: ~Welcome~
title: $:/StoryList

View File

@@ -0,0 +1,23 @@
/*\
Credits: 1337box by Leah Rowe, Creative Commons Zero 1.0
Info: <https://vimuser.org/1337box.html>
\*/
.f, .f * {
position: fixed;
max-width: 100%;
max-height: 100%;
top: 50%;
left: 50%
}
.f * { transform: translate(-50%,-50%) }
.f {
display: none;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999;
background:rgba(0,0,0,0.8);
}
*:focus + .f { display:block; }
img { cursor:pointer; }

View File

@@ -0,0 +1,7 @@
Credits: 1337box by Leah Rowe, Creative Commons Zero 1.0
Info: <https://vimuser.org/1337box.html>
created: 20230114161404958
modified: 20230114163044372
tags:
title: $:/Styles/1337box/shadow.css
type: text/css

View File

@@ -0,0 +1,83 @@
created: 20230126091040410
creator: Octt
modified: 20230301212829674
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Breadcrumbs
\import [[$:/Macros/Styles]]
\define River() .tc-story-river
\define SRiver() .tc-static-story-river
\define Frame() .tc-tiddler-frame
\define Titler() .tc-tiddler-title
<<River>> > <<Frame>> <<Titler>> .tc-title { <<NoDisp>> }
.tc-story-river > .tc-tiddler-frame > .View-Breadcrumbs {
opacity: 0.80;
/*
font-size: xx-large;
margin-top: 0px;
margin-bottom: -1.5em;
position: sticky;
z-index: 512;
*/
}
.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs > * {
/*font-style: normal !important;*/
opacity: 0.40;
}
.tc-story-river > .tc-tiddler-frame:not(.tc-tiddler-missing) > .View-Breadcrumbs:hover > * { opacity: 0.80; }
.tc-story-river > .tc-tiddler-frame .View-Breadcrumbs > .Inline-Icon > * {
width: 1em;
height: 1em;
vertical-align: top;
}
/*.View-Breadcrumbs { display: inline-flex; }*/
/*.View-Breadcrumbs > .Inline-Sep:not(.View-Breadcrumbs > .Inline-Sep:last-of-type):before*/
.View-Breadcrumbs > .Inline-Sep { padding-left: 0.3em; padding-right: 0.3em; }
.View-Breadcrumbs > .Inline-Sep:after { content: '>'; font-size: smaller; }
.View-Breadcrumbs > .Inline-Sep > span { font-size: 0px; }
.View-Breadcrumbs > .Path-Elem[data-path-elem="$:"] > a,
.View-Breadcrumbs > .Path-Elem[data-path-elem="$:"] + .Inline-Sep
{ color: gray; padding-left: 0em; }
.View-Breadcrumbs > .Path-Elem[data-path-elem="$:"] + .Inline-Sep:after { content: ''; }
.View-Breadcrumbs > .Path-Elem[data-path-elem="$:"] + .Inline-Sep > span { font-size: revert; font-size: smaller; }
.View-Breadcrumbs > .Path-Elem:last-of-type { cursor: pointer; }
.View-Breadcrumbs details { display: inline; vertical-align: top; }
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title details > summary,
.View-Breadcrumbs details > summary {
list-style: none;
}
tc-table-of-contents
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title details > .tc-tree,
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title details > .tc-table-of-contents,
.View-Breadcrumbs details > .tc-tree,
.View-Breadcrumbs details > .tc-table-of-contents {
font-size: initial; line-height: 1rem;
}
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title details > .tc-tree > span,
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title details > .tc-table-of-contents > span,
.View-Breadcrumbs details > .tc-tree > span,
.View-Breadcrumbs details > .tc-table-of-contents > span {
display: none;
}
.tc-static-story-river > .tc-tiddler-frame > .tc-tiddler-title .Path-Copy { display: none; }
.View-Breadcrumbs > .Path-Copy {
margin-left: 0.3em;
margin-right: 0.3em;
text-decoration: none;
font-size: smaller;
}

View File

@@ -0,0 +1,55 @@
created: 20230112154615238
creator: Octt
modified: 20230228225214583
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Embed
\define --HeadingColor0() #c061cb;
.iFrameNormal, .iFrame100 {
Margin: 0px;
Padding: 0px;
Background: #eeeeff/*#ddddff*/;
Width: 100vw;
}
.iFrameNormal { Height: 90vh; }
.iFrame100 { Height: 100vh; }
.iFrameFitX { Width: 100%; }
.iFrameFullY { Height: 96vh; }
.MediaWikiEmbed, .MediaWikiEmbedBlock {
Border-Left: 4px Solid <<--HeadingColor0>>;
Padding-Left: 1em /*8px*/;
}
.MediaWikiEmbedCover { float: right; }
.MediaWikiEmbedCover > * { max-height: 35vh /*50vh*/; }
.EmbedFrom, .Embed-From,
.MediaWikiEmbed-From, .MediaWikiEmbedFrom {
Font-Size: Smaller;
Font-Style: Italic;
/* Don't make the link go over the "fullscreen" checkbox+label */
max-width: calc(100% - 9em);
}
/* input.Checkbox-Btn:after { content: attr(label); } */
.Embed-Fullscreen-Btn { float: right; font-style: revert; margin-top: -2em; }
label.Embed-Fullscreen-Btn { margin-right: 2.5em; }
input.Embed-Fullscreen-Btn { width: 2em; height: 2em; }
/* TODO: Different top: positioning based on if mobile or desktop view is active, and if sidebar is open or closed (2em for mobile and sidebar closed, ~0.64em for the rest) */
input.Embed-Fullscreen-Btn:checked,
input.Embed-Fullscreen-Btn:checked ~ label,
input.Embed-Fullscreen-Btn:checked ~ iframe
{ position: absolute; z-index: 99999; top: 2em/*0.64em*/; right: 0px; }
input.Embed-Fullscreen-Btn:checked ~ iframe {
height: calc(100vh - 2em);
left: 0px;
right: unset;
min-width: calc(100vw - 40px);
}

View File

@@ -0,0 +1,10 @@
.NoDisplay { display: none; }
.NoSelect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
User-Select: none;
}

View File

@@ -0,0 +1,7 @@
created: 20230130151417995
creator: Octt
modified: 20230130151526950
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Global.css
type: text/css

View File

@@ -0,0 +1,29 @@
created: 20230219153505142
creator: Octt
modified: 20230219191248808
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/LinkIcon
<!-- Code originally from <https://linkstyle.tiddlyspot.com/>, adapted by me to work just with icons -->
<!-- Notes:
- Anchor classes are selected via strict HTML attributes to avoid things like custom buttons from being stylized where they shouldn't; we will then need another rule to look for an explicit class to stylize other elements
- Currently this assumes that the icon field of a tiddler can only have an emoji, never an image URL
-->
\define linkstyle()
<$set name="uri" value=<<makedatauri """$(tid)$""" "text/plain">> >
<$list variable="urititle" filter="""[<uri>removeprefix[data:text/plain,]]""">
<style>
a[href="#<<urititle>>"][class='tc-tiddlylink tc-tiddlylink-resolves']:after { content: ' <<icon>>'; }
</style>
</$list>
</$set>
\end
<$list filter="""[has[linkstyle]] [has[linkstyle-before]] [has[linkstyle-after]] [has[icon]]""">
<$vars tid={{!!title}} icon={{!!icon}}>
<<linkstyle>>
</$vars>
</$list>

View File

@@ -0,0 +1,29 @@
created: 20230307191735805
creator: Octt
modified: 20230307192825025
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Lists
/* Definition lists */
dd:before { content: '»'; margin-right: 8px; vertical-align: top; }
dl { margin-left: 8px; }
dl > dd { margin-left: 24px; }
dl > dd > p,
dl > dd > div,
dl > dd > dt {
display: inline-block;
max-width: calc(100% - 1.5em);
}
/*
dl > dd > div > ul,
dl > dd > div > ol {
padding-left: 16px;
}*/
div:not(.tc-tiddler-body) > dl > dt,
dd > p,
dd > div > p,
dd > div > ul {
margin-top: unset;
margin-bottom: unset;
}

View File

@@ -0,0 +1,176 @@
created: 20230108190740128
creator: Octt
modified: 20230307215827258
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Main
\define --HeadingColor0() #c061cb;
\define sidebarbreakpoint()
<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>
\end
\define if-fluid-fixed(text,hiddenSidebarText)
<$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed">
$text$
<$reveal state="$:/state/sidebar" type="nomatch" text="yes" default="yes">
$hiddenSidebarText$
</$reveal>
</$reveal>
\end
/* Override the font used for icon display by the the <$:/plugins/Gk0Wk/notionpage-covericon> plugin, and then also apply it to the :after of .tc-tiddlylink anchors, for consistency.
We override adding a "sans-serif" to the start due to a spacing bug (?) */
.gk0wk-notionpagebg-icon1,
.gk0wk-notionpagebg-icon2,
a[class="tc-tiddlylink tc-tiddlylink-resolves"]:after {
font-family: sans-serif, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", EmojiSymbols;
}
/* Mobile */
@media (max-width: <<sidebarbreakpoint>>) {
.tc-sidebar-scrollable .tc-sidebar-header { padding-top: 0px; }
}
/* Desktop */
@media (min-width: <<sidebarbreakpoint>>) {
.tc-sidebar-scrollable {
padding-left: 0px;
padding-right: 0px;
}
.tc-story-river {
padding: {{$:/Config/OcttKB/Tweaks/Starlight/.tc-story-river Padding}};
}
.tc-tiddler-frame {
padding: 20px /*24px 32px 24px 32px*/;
margin-bottom: 20px;
}
<<if-fluid-fixed text:"""
.tc-story-river {
margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};
}
""" hiddenSidebarText:"""
.tc-story-river {
margin-right: 0px;
padding-right: 24px;
}
""">>
}
Div.View-Breadcrumbs
{ margin: 4px; padding: 4px; }
/* Inserting HTML content with tag $:/tags/AboveStory causes excess padding on top of the story river; Setting display none breaks that HTML, so we just tweak position */
.tc-page-container .tc-story-river > .story-backdrop { position: absolute; }
/* Reduce top padding of sidebar */
.tc-sidebar-scrollable { padding-top: 12px; }
.tc-sidebar-scrollable .tc-sidebar-header .tc-reveal .tc-site-subtitle { padding-right: 4em; }
.tc-story-river { padding-bottom: 0px; }
.tc-story-river ~ p { display: none; }
.tc-tiddler-frame,
.tc-tiddler-body p iframe {
Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);
}
.tc-tiddler-body p iframe { Border: None; }
.tc-tiddler-frame { border-radius: 4px; }
.tc-modal-body { max-height: 75vh /*60vh*/; }
.tc-sidebar-scrollable .tc-sidebar-tabs-main .tc-more-sidebar .tc-tab-content { overflow: visible; }
.tc-unfold-banner {
width: calc(100% - 8px);
margin-left: -16px;
margin-top: -8px;
}
/* Large tag selection menu, optimized for desktop + nicer tag button */
.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown {
position: revert;
white-space: revert;
}
.tc-edit-tags .tc-edit-add-tag .tc-block-tags-dropdown a {
display: inline-block;
border-radius: 1em;
}
.AiLink { opacity: 0.40; }
.DirList-Title, .DirList-Title * { Font-Style: Normal !Important; }
.Separator-Right:last-of-type { Display: None; }
.StartHere-Button {
font-size: x-large /*smaller*/;
text-decoration: none !important;
user-select: none;
}
.StartHere-Button > img {
width: 122px;
image-rendering: pixelated;
}
.StartHere-Button > span {
position: relative;
top: -20px /*-10px*/;
}
Img.Img90, .Img90 Img {
Max-Width: 90%;
Max-Height: 90vh;
}
.tc-sidebar-scrollable .tc-sidebar-header .tc-page-controls .tc-popup .tc-drop-down { min-width: auto; }
.tc-story-river > .tc-tiddler-frame .tc-subtitle { margin: 4px; padding: 4px; }
/* Customized sidebar button */
.tc-topbar.tc-topbar-right {
bottom: 10px;
right: 10px;
top: unset;
}
.tc-topbar.tc-topbar-right > button {
background: RGBA(0,0,0,0.64);
border-radius: 4px;
}
.tc-topbar.tc-topbar-right > button > svg > g { fill: white; }
details.tw-details > summary > * { display: inline; }
input[type="range"] { min-width: 8em; }
input.Edit-Text-Full { width: 100% !important; }
.tc-tiddler-body details:hover {
Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);
}
.tc-tiddler-body details:hover > iframe {
Box-Shadow: none;
}
.tc-tiddler-body ul:hover,
.tc-tiddler-body ol:hover,
.tc-tiddler-body dd:hover {
Box-Shadow: 2px 2px 12px RGBA(128, 128, 128, 0.5);
padding-top: 4px;
padding-bottom: 4px;
padding-right: 4px;
}
ul, ol, dd { transition: 0.3s; }
.ibox-btn {
max-width: 35%;
max-height: 50vh;
}
.ibox-btn img {
width: 100% !important;
}
.tc-modal {
width: 80%;
left: calc((100% - 80%) / 2);
}

View File

@@ -0,0 +1,30 @@
/* This has to be redone basically from scratch because there are issues with position:fixed without editing the tiddler frame z-index, which can't be done via CSS only (no parent selector) */
input.PIP-Select, input.PIP-Select+label, div.PIP-Select > input, div.PIP-Select > label, div.PIP-Select > span { width: 1.25em; height: 1.25em; font-size: 1.50em; vertical-align: middle; }
/*
input[type="radio"].PIP-Select[value="↗️"]:checked ~ div { border: 3px solid red; }
input[type="radio"].PIP-Select[value="↘️"]:checked ~ div { border: 3px solid blue; }
*/
/* Set PIP properties common to all position */
/*
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked,
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ input,
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ label,
*/
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ input[type="radio"].PIP-Select[value="❎"],
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ div {
position: fixed;
z-index: 99999;
top: 0px;
right: 0px;
}
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ input[type="radio"].PIP-Select[value="❎"] { z-index: 100001; }
input[type="radio"].PIP-Select[value]:not(input[type="radio"].PIP-Select[value="❎"]):checked ~ div {
/*height: 100vh;*/
width: 50vw;
background: white;
}

View File

@@ -0,0 +1,7 @@
created: 20230202093634199
creator: Octt
modified: 20230202194628022
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/PIP.css
type: text/css

View File

@@ -0,0 +1,10 @@
created: 20230108212828635
creator: Octt
modified: 20230218112003133
modifier: Octt
tags: $:/tags/PageControls
title: $:/Styles/Ribbon.html
type:
<!-- TOP RIGHT RIBBON --->
<div class="github-fork-ribbon-wrapper right"><div class="github-fork-ribbon"><a rel="noopener noreferrer" target="_blank" href="https://hub.octt.eu.org">Visit the Octt Hub 🌐</a></div></div>

View File

@@ -0,0 +1,17 @@
created: 20230225150051400
creator: Octt
modified: 20230226210519405
modifier: Octt
tags: $:/tags/Stylesheet
title: $:/Styles/Static/Main
\import [[$:/Macros/Styles]]
\define River() .tc-static-story-river
\define Frame() .tc-tiddler-frame
<<River>> > a[name]/*:not(a[name="~Welcome~"])*/ + <<Frame>> { <<NoDisp>> }
<<River>> > a[name]:target + <<Frame>> { display: block; }
<<River>> > <<Frame>> .gk0wk-notionbg-addbuttons,
<<River>> > <<Frame>> .gk0wk-notionpageb-changecover { <<NoDisp>> }

Some files were not shown because too many files have changed in this diff Show More