9
Author: Normal-Tangerine8609
Downloads: 234
Stars: 9
Type: Home Screen Widget
Published on: 14 July 2022
HTML Widget allows you to create Scriptable widgets in HTML-like syntax. HTML Widget is easy to use and supports all widget features.
to top left, #134E5E, #71B280
.red
.symbol
to simplify adding SFSymbols to widgets.const htmlWidget = importModule("html-widget");
const symbol = importModule("html-widget-symbol");
const addons = { symbol };
const json = await new Request(
"https://www.reddit.com/r/Showerthoughts.json"
).loadJSON();
const post = json.data.children[Math.floor(Math.random() * 10)].data;
const title = post.title.replace(/</g, "<").replace(/>/g, ">");
const body = post.selftext.replace(/</g, "<").replace(/>/g, ">");
const ups = post.ups;
const upsRatio = post.upvote_ratio;
const comments = post.num_comments;
const url = post.url;
const widget = await htmlWidget(
`
<widget refresh-after-date="15" url="${url}">
<style>
symbol {
image-size: 13,13;
}
text {
font: system-ui, 11;
minimum-scale-factor: 0.3;
}
.title {
font: system-ui, 13;
align-text: center;
}
.bottom-bar {
align-content: center;
}
.bottom-bar > text {
line-limit: 1
}
</style>
<text class="title">Showerthoughts</text>
<spacer space="5"/>
<text>${title}</text>
<text>${body}</text>
<stack class="bottom-bar">
<symbol>arrow.up.circle.fill</symbol>
<spacer space="2"/>
<text>${ups}</text>
<spacer/>
<symbol>star.circle.fill</symbol>
<spacer space="2"/>
<text>${upsRatio}</text>
<spacer/>
<symbol>message.circle.fill</symbol>
<spacer space="2"/>
<text>${comments}</text>
</stack>
</widget>
`,
true,
addons
);
Script.setWidget(widget);
widget.presentSmall();
Script.complete();
If you would prefer to use a module instead of a function follow these steps:
Scriptable-HTML-Widget
const htmlWidget = importModule("Scriptable-HTML-Widget")
at the top of the fileIf you find any bugs please message me. My preferred mode of communication is Reddit but fell free to post the issues to this respiratory.
Thanks for the support of the r/Scriptable community.
Thanks for u/TheLongConIsGone and u/Glassounds for answering some of my scriptable questions.
Thanks for henryluki, the creator of the HTML parser once used in the script.
Thanks for you visiting or trying out HTML Widget!