mirror of
https://gitlab.com/octtspacc/OcttKB
synced 2025-06-06 00:29:12 +02:00
OcttKB Cross-Repo Sync (HTML to Raw)
This commit is contained in:
8
Wiki-OcttKB/tiddlers/System/$/Macros/.@.tid
Normal file
8
Wiki-OcttKB/tiddlers/System/$/Macros/.@.tid
Normal 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$">>
|
37
Wiki-OcttKB/tiddlers/System/$/Macros/Breadcrumbs/Main.tid
Normal file
37
Wiki-OcttKB/tiddlers/System/$/Macros/Breadcrumbs/Main.tid
Normal 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
|
@ -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);
|
||||
};
|
||||
}})();
|
@ -0,0 +1,8 @@
|
||||
created: 20230125222831006
|
||||
creator: Octt
|
||||
modified: 20230202185802952
|
||||
modifier: Octt
|
||||
module-type: macro
|
||||
tags:
|
||||
title: $:/Macros/Breadcrumbs/i18nNamespaceLabelStrip.js
|
||||
type: application/javascript
|
84
Wiki-OcttKB/tiddlers/System/$/Macros/Directory.tid
Normal file
84
Wiki-OcttKB/tiddlers/System/$/Macros/Directory.tid
Normal 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
|
||||
--->
|
32
Wiki-OcttKB/tiddlers/System/$/Macros/ExtLinks.tid
Normal file
32
Wiki-OcttKB/tiddlers/System/$/Macros/ExtLinks.tid
Normal 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$]]
|
39
Wiki-OcttKB/tiddlers/System/$/Macros/Footnotes.tid
Normal file
39
Wiki-OcttKB/tiddlers/System/$/Macros/Footnotes.tid
Normal 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
|
77
Wiki-OcttKB/tiddlers/System/$/Macros/Frames.tid
Normal file
77
Wiki-OcttKB/tiddlers/System/$/Macros/Frames.tid
Normal 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
|
90
Wiki-OcttKB/tiddlers/System/$/Macros/Main.tid
Normal file
90
Wiki-OcttKB/tiddlers/System/$/Macros/Main.tid
Normal file
@ -0,0 +1,90 @@
|
||||
created: 20220920092322164
|
||||
creator: Octt
|
||||
modified: 20230605214618218
|
||||
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")
|
||||
\whitespace trim
|
||||
<details class="tw-details">
|
||||
<summary>
|
||||
[[_|$Tiddler$]]
|
||||
<h$Heading$ style="display: inline;">
|
||||
''$Tiddler$''
|
||||
</h$Heading$>
|
||||
</summary>
|
||||
<<{ "$Tiddler$">>
|
||||
</details>
|
||||
\end
|
||||
\define {^(Tiddler, Heading) <<{< "$Tiddler$" "$Heading$">>
|
||||
\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 StrAppend(Str, Suffix, Prefix) $Prefix$$Str$$Suffix$
|
||||
|
||||
\define LImg(Src, Href, Alt)
|
||||
<a rel="noopener noreferrer" target="_blank" href="$Href$"><img src="$Src$" alt="$Alt$"></a>
|
||||
\end
|
||||
|
||||
\define iboxL(img, caption) <<ibox "$img$" "$caption$ <span>[</span>[[Source|$img$]]<span>]</span>">>
|
||||
|
||||
\define #[(Title, Link) <<[ "[[$Title$|$Link$]]">>
|
||||
\define [#(Title, Link) <$macrocall $name="#[" Title="$Title$" Link="$Link$"/>
|
@ -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.replaceAll('\n', '').replaceAll('<p class="mw-empty-elt"></p>', '');
|
||||
if (Sections != 0) {
|
||||
for (let i=1; i<=6; i++) {
|
||||
Text = Text.replaceAll(`</p><h${i}>`, `</p><!--:PARAGRAPH:--->\n<h${i}>`);
|
||||
};
|
||||
Text = Text.replaceAll(`</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);
|
||||
};
|
||||
}})();
|
@ -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: 20230429192152268
|
||||
modifier: Octt
|
||||
module-type: macro
|
||||
tags:
|
||||
title: $:/Macros/MediaWiki/EmbedInternal.js
|
||||
type: application/javascript
|
32
Wiki-OcttKB/tiddlers/System/$/Macros/MediaWiki/GetCover.js
Normal file
32
Wiki-OcttKB/tiddlers/System/$/Macros/MediaWiki/GetCover.js
Normal 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);
|
||||
};
|
||||
}})();
|
@ -0,0 +1,8 @@
|
||||
created: 20230112154435120
|
||||
creator: Octt
|
||||
modified: 20230124213845342
|
||||
modifier: Octt
|
||||
module-type: macro
|
||||
tags:
|
||||
title: $:/Macros/MediaWiki/GetCover.js
|
||||
type: application/javascript
|
50
Wiki-OcttKB/tiddlers/System/$/Macros/MediaWiki/Main.tid
Normal file
50
Wiki-OcttKB/tiddlers/System/$/Macros/MediaWiki/Main.tid
Normal 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$">>
|
@ -0,0 +1,16 @@
|
||||
created: 20220921191720432
|
||||
modified: 20220922052514703
|
||||
tags:
|
||||
title: $:/Macros/Music Archiving Status
|
||||
|
||||
\define r(Title Notes)
|
||||
<tr>
|
||||
<td>$Title$</td>
|
||||
<td><<x# ".Music $Title$ | GotAny">></td>
|
||||
<td><<x# ".Music $Title$ | GotLossless">></td>
|
||||
<td><<x# ".Music $Title$ | UploadedLossless:Archive.org">></td>
|
||||
<td>$Notes$</td>
|
||||
</tr>
|
||||
\end
|
||||
|
||||
<$importvariables filter="$:/Macros">
|
7
Wiki-OcttKB/tiddlers/System/$/Macros/Styles.tid
Normal file
7
Wiki-OcttKB/tiddlers/System/$/Macros/Styles.tid
Normal file
@ -0,0 +1,7 @@
|
||||
created: 20230226210106105
|
||||
creator: Octt
|
||||
modified: 20230226210446048
|
||||
modifier: Octt
|
||||
title: $:/Macros/Styles
|
||||
|
||||
\define NoDisp() display: none;
|
37
Wiki-OcttKB/tiddlers/System/$/Macros/TiddlerTree.tid
Normal file
37
Wiki-OcttKB/tiddlers/System/$/Macros/TiddlerTree.tid
Normal 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
|
23
Wiki-OcttKB/tiddlers/System/$/Macros/b64TidUriEnc.js
Normal file
23
Wiki-OcttKB/tiddlers/System/$/Macros/b64TidUriEnc.js
Normal 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;
|
||||
};
|
||||
};
|
||||
})();
|
@ -0,0 +1,6 @@
|
||||
created: 20221109224522256
|
||||
modified: 20221110153303563
|
||||
module-type: macro
|
||||
tags:
|
||||
title: $:/Macros/b64TidUriEnc.js
|
||||
type: application/javascript
|
52
Wiki-OcttKB/tiddlers/System/$/Macros/i18n.tid
Normal file
52
Wiki-OcttKB/tiddlers/System/$/Macros/i18n.tid
Normal 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
|
69
Wiki-OcttKB/tiddlers/System/$/Macros/ltabs.tid
Normal file
69
Wiki-OcttKB/tiddlers/System/$/Macros/ltabs.tid
Normal 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> [[#|$(currentTab)$]] </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
|
Reference in New Issue
Block a user