You've already forked AstralRinth
forked from didirus/AstralRinth
refactor: migrate to common eslint+prettier configs (#4168)
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
This commit is contained in:
@@ -1,160 +1,160 @@
|
||||
(function () {
|
||||
var host = "modrinth.com";
|
||||
// var host = window.location.hostname;
|
||||
var element = document.createElement("script");
|
||||
var firstScript = document.getElementsByTagName("script")[0];
|
||||
var url = "https://cmp.inmobi.com".concat(
|
||||
"/choice/",
|
||||
"GANCBjEfRH5Fe",
|
||||
"/",
|
||||
host,
|
||||
"/choice.js?tag_version=V3",
|
||||
);
|
||||
var uspTries = 0;
|
||||
var uspTriesLimit = 3;
|
||||
element.async = true;
|
||||
element.type = "text/javascript";
|
||||
element.src = url;
|
||||
;(function () {
|
||||
var host = 'modrinth.com'
|
||||
// var host = window.location.hostname;
|
||||
var element = document.createElement('script')
|
||||
var firstScript = document.getElementsByTagName('script')[0]
|
||||
var url = 'https://cmp.inmobi.com'.concat(
|
||||
'/choice/',
|
||||
'GANCBjEfRH5Fe',
|
||||
'/',
|
||||
host,
|
||||
'/choice.js?tag_version=V3',
|
||||
)
|
||||
var uspTries = 0
|
||||
var uspTriesLimit = 3
|
||||
element.async = true
|
||||
element.type = 'text/javascript'
|
||||
element.src = url
|
||||
|
||||
firstScript.parentNode.insertBefore(element, firstScript);
|
||||
firstScript.parentNode.insertBefore(element, firstScript)
|
||||
|
||||
function makeStub() {
|
||||
var TCF_LOCATOR_NAME = "__tcfapiLocator";
|
||||
var queue = [];
|
||||
var win = window;
|
||||
var cmpFrame;
|
||||
function makeStub() {
|
||||
var TCF_LOCATOR_NAME = '__tcfapiLocator'
|
||||
var queue = []
|
||||
var win = window
|
||||
var cmpFrame
|
||||
|
||||
function addFrame() {
|
||||
var doc = win.document;
|
||||
var otherCMP = !!win.frames[TCF_LOCATOR_NAME];
|
||||
function addFrame() {
|
||||
var doc = win.document
|
||||
var otherCMP = !!win.frames[TCF_LOCATOR_NAME]
|
||||
|
||||
if (!otherCMP) {
|
||||
if (doc.body) {
|
||||
var iframe = doc.createElement("iframe");
|
||||
if (!otherCMP) {
|
||||
if (doc.body) {
|
||||
var iframe = doc.createElement('iframe')
|
||||
|
||||
iframe.style.cssText = "display:none";
|
||||
iframe.name = TCF_LOCATOR_NAME;
|
||||
doc.body.appendChild(iframe);
|
||||
} else {
|
||||
setTimeout(addFrame, 5);
|
||||
}
|
||||
}
|
||||
return !otherCMP;
|
||||
}
|
||||
iframe.style.cssText = 'display:none'
|
||||
iframe.name = TCF_LOCATOR_NAME
|
||||
doc.body.appendChild(iframe)
|
||||
} else {
|
||||
setTimeout(addFrame, 5)
|
||||
}
|
||||
}
|
||||
return !otherCMP
|
||||
}
|
||||
|
||||
function tcfAPIHandler() {
|
||||
var gdprApplies;
|
||||
var args = arguments;
|
||||
function tcfAPIHandler() {
|
||||
var gdprApplies
|
||||
var args = arguments
|
||||
|
||||
if (!args.length) {
|
||||
return queue;
|
||||
} else if (args[0] === "setGdprApplies") {
|
||||
if (args.length > 3 && args[2] === 2 && typeof args[3] === "boolean") {
|
||||
gdprApplies = args[3];
|
||||
if (typeof args[2] === "function") {
|
||||
args[2]("set", true);
|
||||
}
|
||||
}
|
||||
} else if (args[0] === "ping") {
|
||||
var retr = {
|
||||
gdprApplies: gdprApplies,
|
||||
cmpLoaded: false,
|
||||
cmpStatus: "stub",
|
||||
};
|
||||
if (!args.length) {
|
||||
return queue
|
||||
} else if (args[0] === 'setGdprApplies') {
|
||||
if (args.length > 3 && args[2] === 2 && typeof args[3] === 'boolean') {
|
||||
gdprApplies = args[3]
|
||||
if (typeof args[2] === 'function') {
|
||||
args[2]('set', true)
|
||||
}
|
||||
}
|
||||
} else if (args[0] === 'ping') {
|
||||
var retr = {
|
||||
gdprApplies: gdprApplies,
|
||||
cmpLoaded: false,
|
||||
cmpStatus: 'stub',
|
||||
}
|
||||
|
||||
if (typeof args[2] === "function") {
|
||||
args[2](retr);
|
||||
}
|
||||
} else {
|
||||
if (args[0] === "init" && typeof args[3] === "object") {
|
||||
args[3] = Object.assign(args[3], { tag_version: "V3" });
|
||||
}
|
||||
queue.push(args);
|
||||
}
|
||||
}
|
||||
if (typeof args[2] === 'function') {
|
||||
args[2](retr)
|
||||
}
|
||||
} else {
|
||||
if (args[0] === 'init' && typeof args[3] === 'object') {
|
||||
args[3] = Object.assign(args[3], { tag_version: 'V3' })
|
||||
}
|
||||
queue.push(args)
|
||||
}
|
||||
}
|
||||
|
||||
function postMessageEventHandler(event) {
|
||||
var msgIsString = typeof event.data === "string";
|
||||
var json = {};
|
||||
function postMessageEventHandler(event) {
|
||||
var msgIsString = typeof event.data === 'string'
|
||||
var json = {}
|
||||
|
||||
try {
|
||||
if (msgIsString) {
|
||||
json = JSON.parse(event.data);
|
||||
} else {
|
||||
json = event.data;
|
||||
}
|
||||
} catch (ignore) {}
|
||||
try {
|
||||
if (msgIsString) {
|
||||
json = JSON.parse(event.data)
|
||||
} else {
|
||||
json = event.data
|
||||
}
|
||||
} catch (ignore) {}
|
||||
|
||||
var payload = json.__tcfapiCall;
|
||||
var payload = json.__tcfapiCall
|
||||
|
||||
if (payload) {
|
||||
window.__tcfapi(
|
||||
payload.command,
|
||||
payload.version,
|
||||
function (retValue, success) {
|
||||
var returnMsg = {
|
||||
__tcfapiReturn: {
|
||||
returnValue: retValue,
|
||||
success: success,
|
||||
callId: payload.callId,
|
||||
},
|
||||
};
|
||||
if (msgIsString) {
|
||||
returnMsg = JSON.stringify(returnMsg);
|
||||
}
|
||||
if (event && event.source && event.source.postMessage) {
|
||||
event.source.postMessage(returnMsg, "*");
|
||||
}
|
||||
},
|
||||
payload.parameter,
|
||||
);
|
||||
}
|
||||
}
|
||||
if (payload) {
|
||||
window.__tcfapi(
|
||||
payload.command,
|
||||
payload.version,
|
||||
function (retValue, success) {
|
||||
var returnMsg = {
|
||||
__tcfapiReturn: {
|
||||
returnValue: retValue,
|
||||
success: success,
|
||||
callId: payload.callId,
|
||||
},
|
||||
}
|
||||
if (msgIsString) {
|
||||
returnMsg = JSON.stringify(returnMsg)
|
||||
}
|
||||
if (event && event.source && event.source.postMessage) {
|
||||
event.source.postMessage(returnMsg, '*')
|
||||
}
|
||||
},
|
||||
payload.parameter,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
while (win) {
|
||||
try {
|
||||
if (win.frames[TCF_LOCATOR_NAME]) {
|
||||
cmpFrame = win;
|
||||
break;
|
||||
}
|
||||
} catch (ignore) {}
|
||||
while (win) {
|
||||
try {
|
||||
if (win.frames[TCF_LOCATOR_NAME]) {
|
||||
cmpFrame = win
|
||||
break
|
||||
}
|
||||
} catch (ignore) {}
|
||||
|
||||
if (win === window.top) {
|
||||
break;
|
||||
}
|
||||
win = win.parent;
|
||||
}
|
||||
if (!cmpFrame) {
|
||||
addFrame();
|
||||
win.__tcfapi = tcfAPIHandler;
|
||||
win.addEventListener("message", postMessageEventHandler, false);
|
||||
}
|
||||
}
|
||||
if (win === window.top) {
|
||||
break
|
||||
}
|
||||
win = win.parent
|
||||
}
|
||||
if (!cmpFrame) {
|
||||
addFrame()
|
||||
win.__tcfapi = tcfAPIHandler
|
||||
win.addEventListener('message', postMessageEventHandler, false)
|
||||
}
|
||||
}
|
||||
|
||||
makeStub();
|
||||
makeStub()
|
||||
|
||||
var uspStubFunction = function () {
|
||||
var arg = arguments;
|
||||
if (typeof window.__uspapi !== uspStubFunction) {
|
||||
setTimeout(function () {
|
||||
if (typeof window.__uspapi !== "undefined") {
|
||||
window.__uspapi.apply(window.__uspapi, arg);
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
var uspStubFunction = function () {
|
||||
var arg = arguments
|
||||
if (typeof window.__uspapi !== uspStubFunction) {
|
||||
setTimeout(function () {
|
||||
if (typeof window.__uspapi !== 'undefined') {
|
||||
window.__uspapi.apply(window.__uspapi, arg)
|
||||
}
|
||||
}, 500)
|
||||
}
|
||||
}
|
||||
|
||||
var checkIfUspIsReady = function () {
|
||||
uspTries++;
|
||||
if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {
|
||||
console.warn("USP is not accessible");
|
||||
} else {
|
||||
clearInterval(uspInterval);
|
||||
}
|
||||
};
|
||||
var checkIfUspIsReady = function () {
|
||||
uspTries++
|
||||
if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {
|
||||
console.warn('USP is not accessible')
|
||||
} else {
|
||||
clearInterval(uspInterval)
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof window.__uspapi === "undefined") {
|
||||
window.__uspapi = uspStubFunction;
|
||||
var uspInterval = setInterval(checkIfUspIsReady, 6000);
|
||||
}
|
||||
})();
|
||||
if (typeof window.__uspapi === 'undefined') {
|
||||
window.__uspapi = uspStubFunction
|
||||
var uspInterval = setInterval(checkIfUspIsReady, 6000)
|
||||
}
|
||||
})()
|
||||
|
||||
@@ -1,186 +1,186 @@
|
||||
{
|
||||
"articles": [
|
||||
{
|
||||
"title": "Skins — Now in Modrinth App!",
|
||||
"summary": "Customize your look, save your favorite skins, and swap them out in a flash, all within Modrinth App.",
|
||||
"thumbnail": "https://modrinth.com/news/article/skins-now-in-modrinth-app/thumbnail.webp",
|
||||
"date": "2025-07-06T23:45:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/skins-now-in-modrinth-app"
|
||||
},
|
||||
{
|
||||
"title": "Creator Updates, July 2025",
|
||||
"summary": "Addressing recent growth and growing pains that have been affecting creators.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2025-07-02T04:20:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-updates-july-2025"
|
||||
},
|
||||
{
|
||||
"title": "A Pride Month Success: Over $8,400 Raised for The Trevor Project!",
|
||||
"summary": "Reflecting on our Pride Month fundraiser campaign for LGBTQ+ youth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/pride-campaign-2025/thumbnail.webp",
|
||||
"date": "2025-07-01T18:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/pride-campaign-2025"
|
||||
},
|
||||
{
|
||||
"title": "A New Chapter for Modrinth Servers",
|
||||
"summary": "Modrinth Servers is now fully operated in-house by the Modrinth Team.",
|
||||
"thumbnail": "https://modrinth.com/news/article/a-new-chapter-for-modrinth-servers/thumbnail.webp",
|
||||
"date": "2025-03-13T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/a-new-chapter-for-modrinth-servers"
|
||||
},
|
||||
{
|
||||
"title": "Host your own server with Modrinth Servers — now in beta",
|
||||
"summary": "Fast, simple, reliable servers directly integrated into Modrinth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/modrinth-servers-beta/thumbnail.webp",
|
||||
"date": "2024-11-03T06:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-servers-beta"
|
||||
},
|
||||
{
|
||||
"title": "Quintupling Creator Revenue and Becoming Sustainable",
|
||||
"summary": "Announcing an update to our monetization program, creator split, and more!",
|
||||
"thumbnail": "https://modrinth.com/news/article/becoming-sustainable/thumbnail.webp",
|
||||
"date": "2024-09-13T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/becoming-sustainable"
|
||||
},
|
||||
{
|
||||
"title": "Introducing Modrinth+, a refreshed site look, and a new advertising system!",
|
||||
"summary": "Learn about this major update to Modrinth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/design-refresh/thumbnail.webp",
|
||||
"date": "2024-08-21T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/design-refresh"
|
||||
},
|
||||
{
|
||||
"title": "Malware Discovery Disclosure: \"Windows Borderless\" mod",
|
||||
"summary": "Threat Analysis and Plan of Action",
|
||||
"thumbnail": "https://modrinth.com/news/article/windows-borderless-malware-disclosure/thumbnail.webp",
|
||||
"date": "2024-05-07T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/windows-borderless-malware-disclosure"
|
||||
},
|
||||
{
|
||||
"title": "A Sustainable Path Forward for Modrinth",
|
||||
"summary": "Our capital return and what’s next.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2024-04-04T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/capital-return"
|
||||
},
|
||||
{
|
||||
"title": "Creator Update: Analytics, Organizations, Collections, and more",
|
||||
"summary": "December may be over, but we’re not done giving gifts.",
|
||||
"thumbnail": "https://modrinth.com/news/article/creator-update/thumbnail.webp",
|
||||
"date": "2024-01-06T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-update"
|
||||
},
|
||||
{
|
||||
"title": "Correcting Inflated Download Counts due to Rate Limiting Issue",
|
||||
"summary": "A rate limiting issue caused inflated download counts in certain countries.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-11-10T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/download-adjustment"
|
||||
},
|
||||
{
|
||||
"title": "Introducing Modrinth App Beta",
|
||||
"summary": "Changing the modded Minecraft landscape with the new Modrinth App, alongside several other major features.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-08-05T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-app-beta"
|
||||
},
|
||||
{
|
||||
"title": "(April Fools 2023) Powering up your experience: Modrinth Technologies™️ beta launch!",
|
||||
"summary": "Welcome to the new era of Modrinth. We can't wait to hear your feedback.",
|
||||
"thumbnail": "https://modrinth.com/news/article/new-site-beta/thumbnail.webp",
|
||||
"date": "2023-04-01T08:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/new-site-beta"
|
||||
},
|
||||
{
|
||||
"title": "Accelerating Modrinth's Development",
|
||||
"summary": "Our fundraiser and the future of Modrinth!",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-02-01T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/accelerating-development"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth's Anniversary Update",
|
||||
"summary": "Marking two years of Modrinth and discussing our New Year's Resolutions for 2023.",
|
||||
"thumbnail": "https://modrinth.com/news/article/two-years-of-modrinth/thumbnail.webp",
|
||||
"date": "2023-01-07T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/two-years-of-modrinth"
|
||||
},
|
||||
{
|
||||
"title": "Two years of Modrinth: a retrospective",
|
||||
"summary": "The history of Modrinth as we know it from December 2020 to December 2022.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-01-07T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/two-years-of-modrinth-history"
|
||||
},
|
||||
{
|
||||
"title": "Creators can now make money on Modrinth!",
|
||||
"summary": "Introducing the Creator Monetization Program allowing creators to earn revenue from their projects.",
|
||||
"thumbnail": "https://modrinth.com/news/article/creator-monetization/thumbnail.webp",
|
||||
"date": "2022-11-12T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-monetization"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth's Carbon Ads experiment",
|
||||
"summary": "Experimenting with a different ad providers to find one which one works for us.",
|
||||
"thumbnail": "https://modrinth.com/news/article/carbon-ads/thumbnail.webp",
|
||||
"date": "2022-09-08T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/carbon-ads"
|
||||
},
|
||||
{
|
||||
"title": "Plugins and Resource Packs now have a home on Modrinth",
|
||||
"summary": "A small update with a big impact: plugins and resource packs are now available on Modrinth!",
|
||||
"thumbnail": "https://modrinth.com/news/article/plugins-resource-packs/thumbnail.webp",
|
||||
"date": "2022-08-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/plugins-resource-packs"
|
||||
},
|
||||
{
|
||||
"title": "Changes to Modrinth Modpacks",
|
||||
"summary": "CurseForge CDN links requested to be removed by the end of the month",
|
||||
"thumbnail": "https://modrinth.com/news/article/modpack-changes/thumbnail.webp",
|
||||
"date": "2022-05-28T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modpack-changes"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth Modpacks: Now in alpha testing",
|
||||
"summary": "After over a year of development, we're happy to announce that modpack support is now in alpha testing.",
|
||||
"thumbnail": "https://modrinth.com/news/article/modpacks-alpha/thumbnail.webp",
|
||||
"date": "2022-05-15T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modpacks-alpha"
|
||||
},
|
||||
{
|
||||
"title": "This week in Modrinth development: Filters and Fixes",
|
||||
"summary": "Continuing to improve the user interface after a great first week since Modrinth launched out of beta.",
|
||||
"thumbnail": "https://modrinth.com/news/article/knossos-v2.1.0/thumbnail.webp",
|
||||
"date": "2022-03-09T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/knossos-v2.1.0"
|
||||
},
|
||||
{
|
||||
"title": "Now showing on Modrinth: A new look!",
|
||||
"summary": "Releasing many new features and improvements, including a redesign!",
|
||||
"thumbnail": "https://modrinth.com/news/article/redesign/thumbnail.webp",
|
||||
"date": "2022-02-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/redesign"
|
||||
},
|
||||
{
|
||||
"title": "Beginner's Guide to Licensing your Mods",
|
||||
"summary": "Software licenses; the nitty-gritty legal aspect of software development. They're more important than you think.",
|
||||
"thumbnail": "https://modrinth.com/news/article/licensing-guide/thumbnail.webp",
|
||||
"date": "2021-05-16T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/licensing-guide"
|
||||
},
|
||||
{
|
||||
"title": "Welcome to Modrinth Beta",
|
||||
"summary": "After six months of work, Modrinth enters Beta, helping modders host their mods with ease!",
|
||||
"thumbnail": "https://modrinth.com/news/article/modrinth-beta/thumbnail.webp",
|
||||
"date": "2020-12-01T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-beta"
|
||||
},
|
||||
{
|
||||
"title": "What is Modrinth?",
|
||||
"summary": "Hello, we are Modrinth – an open source mods hosting platform. Sounds dry, doesn't it? So let me tell you our story – and I promise, it won't be boring!",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2020-11-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/whats-modrinth"
|
||||
}
|
||||
]
|
||||
"articles": [
|
||||
{
|
||||
"title": "Skins — Now in Modrinth App!",
|
||||
"summary": "Customize your look, save your favorite skins, and swap them out in a flash, all within Modrinth App.",
|
||||
"thumbnail": "https://modrinth.com/news/article/skins-now-in-modrinth-app/thumbnail.webp",
|
||||
"date": "2025-07-06T23:45:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/skins-now-in-modrinth-app"
|
||||
},
|
||||
{
|
||||
"title": "Creator Updates, July 2025",
|
||||
"summary": "Addressing recent growth and growing pains that have been affecting creators.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2025-07-02T04:20:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-updates-july-2025"
|
||||
},
|
||||
{
|
||||
"title": "A Pride Month Success: Over $8,400 Raised for The Trevor Project!",
|
||||
"summary": "Reflecting on our Pride Month fundraiser campaign for LGBTQ+ youth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/pride-campaign-2025/thumbnail.webp",
|
||||
"date": "2025-07-01T18:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/pride-campaign-2025"
|
||||
},
|
||||
{
|
||||
"title": "A New Chapter for Modrinth Servers",
|
||||
"summary": "Modrinth Servers is now fully operated in-house by the Modrinth Team.",
|
||||
"thumbnail": "https://modrinth.com/news/article/a-new-chapter-for-modrinth-servers/thumbnail.webp",
|
||||
"date": "2025-03-13T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/a-new-chapter-for-modrinth-servers"
|
||||
},
|
||||
{
|
||||
"title": "Host your own server with Modrinth Servers — now in beta",
|
||||
"summary": "Fast, simple, reliable servers directly integrated into Modrinth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/modrinth-servers-beta/thumbnail.webp",
|
||||
"date": "2024-11-03T06:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-servers-beta"
|
||||
},
|
||||
{
|
||||
"title": "Quintupling Creator Revenue and Becoming Sustainable",
|
||||
"summary": "Announcing an update to our monetization program, creator split, and more!",
|
||||
"thumbnail": "https://modrinth.com/news/article/becoming-sustainable/thumbnail.webp",
|
||||
"date": "2024-09-13T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/becoming-sustainable"
|
||||
},
|
||||
{
|
||||
"title": "Introducing Modrinth+, a refreshed site look, and a new advertising system!",
|
||||
"summary": "Learn about this major update to Modrinth.",
|
||||
"thumbnail": "https://modrinth.com/news/article/design-refresh/thumbnail.webp",
|
||||
"date": "2024-08-21T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/design-refresh"
|
||||
},
|
||||
{
|
||||
"title": "Malware Discovery Disclosure: \"Windows Borderless\" mod",
|
||||
"summary": "Threat Analysis and Plan of Action",
|
||||
"thumbnail": "https://modrinth.com/news/article/windows-borderless-malware-disclosure/thumbnail.webp",
|
||||
"date": "2024-05-07T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/windows-borderless-malware-disclosure"
|
||||
},
|
||||
{
|
||||
"title": "A Sustainable Path Forward for Modrinth",
|
||||
"summary": "Our capital return and what’s next.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2024-04-04T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/capital-return"
|
||||
},
|
||||
{
|
||||
"title": "Creator Update: Analytics, Organizations, Collections, and more",
|
||||
"summary": "December may be over, but we’re not done giving gifts.",
|
||||
"thumbnail": "https://modrinth.com/news/article/creator-update/thumbnail.webp",
|
||||
"date": "2024-01-06T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-update"
|
||||
},
|
||||
{
|
||||
"title": "Correcting Inflated Download Counts due to Rate Limiting Issue",
|
||||
"summary": "A rate limiting issue caused inflated download counts in certain countries.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-11-10T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/download-adjustment"
|
||||
},
|
||||
{
|
||||
"title": "Introducing Modrinth App Beta",
|
||||
"summary": "Changing the modded Minecraft landscape with the new Modrinth App, alongside several other major features.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-08-05T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-app-beta"
|
||||
},
|
||||
{
|
||||
"title": "(April Fools 2023) Powering up your experience: Modrinth Technologies™️ beta launch!",
|
||||
"summary": "Welcome to the new era of Modrinth. We can't wait to hear your feedback.",
|
||||
"thumbnail": "https://modrinth.com/news/article/new-site-beta/thumbnail.webp",
|
||||
"date": "2023-04-01T08:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/new-site-beta"
|
||||
},
|
||||
{
|
||||
"title": "Accelerating Modrinth's Development",
|
||||
"summary": "Our fundraiser and the future of Modrinth!",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-02-01T20:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/accelerating-development"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth's Anniversary Update",
|
||||
"summary": "Marking two years of Modrinth and discussing our New Year's Resolutions for 2023.",
|
||||
"thumbnail": "https://modrinth.com/news/article/two-years-of-modrinth/thumbnail.webp",
|
||||
"date": "2023-01-07T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/two-years-of-modrinth"
|
||||
},
|
||||
{
|
||||
"title": "Two years of Modrinth: a retrospective",
|
||||
"summary": "The history of Modrinth as we know it from December 2020 to December 2022.",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2023-01-07T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/two-years-of-modrinth-history"
|
||||
},
|
||||
{
|
||||
"title": "Creators can now make money on Modrinth!",
|
||||
"summary": "Introducing the Creator Monetization Program allowing creators to earn revenue from their projects.",
|
||||
"thumbnail": "https://modrinth.com/news/article/creator-monetization/thumbnail.webp",
|
||||
"date": "2022-11-12T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/creator-monetization"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth's Carbon Ads experiment",
|
||||
"summary": "Experimenting with a different ad providers to find one which one works for us.",
|
||||
"thumbnail": "https://modrinth.com/news/article/carbon-ads/thumbnail.webp",
|
||||
"date": "2022-09-08T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/carbon-ads"
|
||||
},
|
||||
{
|
||||
"title": "Plugins and Resource Packs now have a home on Modrinth",
|
||||
"summary": "A small update with a big impact: plugins and resource packs are now available on Modrinth!",
|
||||
"thumbnail": "https://modrinth.com/news/article/plugins-resource-packs/thumbnail.webp",
|
||||
"date": "2022-08-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/plugins-resource-packs"
|
||||
},
|
||||
{
|
||||
"title": "Changes to Modrinth Modpacks",
|
||||
"summary": "CurseForge CDN links requested to be removed by the end of the month",
|
||||
"thumbnail": "https://modrinth.com/news/article/modpack-changes/thumbnail.webp",
|
||||
"date": "2022-05-28T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modpack-changes"
|
||||
},
|
||||
{
|
||||
"title": "Modrinth Modpacks: Now in alpha testing",
|
||||
"summary": "After over a year of development, we're happy to announce that modpack support is now in alpha testing.",
|
||||
"thumbnail": "https://modrinth.com/news/article/modpacks-alpha/thumbnail.webp",
|
||||
"date": "2022-05-15T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modpacks-alpha"
|
||||
},
|
||||
{
|
||||
"title": "This week in Modrinth development: Filters and Fixes",
|
||||
"summary": "Continuing to improve the user interface after a great first week since Modrinth launched out of beta.",
|
||||
"thumbnail": "https://modrinth.com/news/article/knossos-v2.1.0/thumbnail.webp",
|
||||
"date": "2022-03-09T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/knossos-v2.1.0"
|
||||
},
|
||||
{
|
||||
"title": "Now showing on Modrinth: A new look!",
|
||||
"summary": "Releasing many new features and improvements, including a redesign!",
|
||||
"thumbnail": "https://modrinth.com/news/article/redesign/thumbnail.webp",
|
||||
"date": "2022-02-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/redesign"
|
||||
},
|
||||
{
|
||||
"title": "Beginner's Guide to Licensing your Mods",
|
||||
"summary": "Software licenses; the nitty-gritty legal aspect of software development. They're more important than you think.",
|
||||
"thumbnail": "https://modrinth.com/news/article/licensing-guide/thumbnail.webp",
|
||||
"date": "2021-05-16T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/licensing-guide"
|
||||
},
|
||||
{
|
||||
"title": "Welcome to Modrinth Beta",
|
||||
"summary": "After six months of work, Modrinth enters Beta, helping modders host their mods with ease!",
|
||||
"thumbnail": "https://modrinth.com/news/article/modrinth-beta/thumbnail.webp",
|
||||
"date": "2020-12-01T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/modrinth-beta"
|
||||
},
|
||||
{
|
||||
"title": "What is Modrinth?",
|
||||
"summary": "Hello, we are Modrinth – an open source mods hosting platform. Sounds dry, doesn't it? So let me tell you our story – and I promise, it won't be boring!",
|
||||
"thumbnail": "https://modrinth.com/news/default.webp",
|
||||
"date": "2020-11-27T00:00:00.000Z",
|
||||
"link": "https://modrinth.com/news/article/whats-modrinth"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,100 +1,100 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Modrinth App Ad</title>
|
||||
<script src="/inmobi.js"></script>
|
||||
<script src="https://cadmus.script.ac/d14pdm1b7fi5kh/script.js"></script>
|
||||
<script src="https://dn0qt3r0xannq.cloudfront.net/modrinth-7JfmkEIXEp/modrinth-longform/prebid-load.js"></script>
|
||||
<link rel="preload" href="https://www.googletagservices.com/tag/js/gpt.js" as="script" />
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
}
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Modrinth App Ad</title>
|
||||
<script src="/inmobi.js"></script>
|
||||
<script src="https://cadmus.script.ac/d14pdm1b7fi5kh/script.js"></script>
|
||||
<script src="https://dn0qt3r0xannq.cloudfront.net/modrinth-7JfmkEIXEp/modrinth-longform/prebid-load.js"></script>
|
||||
<link rel="preload" href="https://www.googletagservices.com/tag/js/gpt.js" as="script" />
|
||||
<style>
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ads-container {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.ads-container {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#plus-link {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
#plus-link {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
#modrinth-rail-1 {
|
||||
border-radius: 1rem;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="ads-container">
|
||||
<div id="plus-link"></div>
|
||||
<div id="modrinth-rail-1"></div>
|
||||
</div>
|
||||
<script>
|
||||
window.tude = window.tude || { cmd: [] };
|
||||
#modrinth-rail-1 {
|
||||
border-radius: 1rem;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="ads-container">
|
||||
<div id="plus-link"></div>
|
||||
<div id="modrinth-rail-1"></div>
|
||||
</div>
|
||||
<script>
|
||||
window.tude = window.tude || { cmd: [] }
|
||||
|
||||
window.Raven = window.Raven || { cmd: [] };
|
||||
window.Raven = window.Raven || { cmd: [] }
|
||||
|
||||
window.Raven.cmd.push(({ config }) => {
|
||||
config.setCustom({
|
||||
param1: "app",
|
||||
});
|
||||
});
|
||||
window.Raven.cmd.push(({ config }) => {
|
||||
config.setCustom({
|
||||
param1: 'app',
|
||||
})
|
||||
})
|
||||
|
||||
tude.cmd.push(function () {
|
||||
tude.refreshAdsViaDivMappings([
|
||||
{
|
||||
divId: "modrinth-rail-1",
|
||||
baseDivId: "pb-slot-square-2",
|
||||
targeting: {
|
||||
location: "app",
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
tude.cmd.push(function () {
|
||||
tude.refreshAdsViaDivMappings([
|
||||
{
|
||||
divId: 'modrinth-rail-1',
|
||||
baseDivId: 'pb-slot-square-2',
|
||||
targeting: {
|
||||
location: 'app',
|
||||
},
|
||||
},
|
||||
])
|
||||
})
|
||||
|
||||
// window.addEventListener(
|
||||
// "message",
|
||||
// (event) => {
|
||||
// if (event.data.modrinthAdClick && window.__TAURI_INTERNALS__) {
|
||||
// window.__TAURI_INTERNALS__.invoke("plugin:ads|record_ads_click", {});
|
||||
// }
|
||||
//
|
||||
// if (event.data.modrinthOpenUrl && window.__TAURI_INTERNALS__) {
|
||||
// window.__TAURI_INTERNALS__.invoke("plugin:ads|open_link", {
|
||||
// path: event.data.modrinthOpenUrl,
|
||||
// origin: event.origin,
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// false,
|
||||
// );
|
||||
// window.addEventListener(
|
||||
// "message",
|
||||
// (event) => {
|
||||
// if (event.data.modrinthAdClick && window.__TAURI_INTERNALS__) {
|
||||
// window.__TAURI_INTERNALS__.invoke("plugin:ads|record_ads_click", {});
|
||||
// }
|
||||
//
|
||||
// if (event.data.modrinthOpenUrl && window.__TAURI_INTERNALS__) {
|
||||
// window.__TAURI_INTERNALS__.invoke("plugin:ads|open_link", {
|
||||
// path: event.data.modrinthOpenUrl,
|
||||
// origin: event.origin,
|
||||
// });
|
||||
// }
|
||||
// },
|
||||
// false,
|
||||
// );
|
||||
|
||||
window.addEventListener("mousewheel", (event) => {
|
||||
if (window.__TAURI_INTERNALS__) {
|
||||
window.__TAURI_INTERNALS__.invoke("plugin:ads|scroll_ads_window", {
|
||||
scroll: event.deltaY,
|
||||
});
|
||||
}
|
||||
});
|
||||
window.addEventListener('mousewheel', (event) => {
|
||||
if (window.__TAURI_INTERNALS__) {
|
||||
window.__TAURI_INTERNALS__.invoke('plugin:ads|scroll_ads_window', {
|
||||
scroll: event.deltaY,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
document.addEventListener("contextmenu", (event) => event.preventDefault());
|
||||
</script>
|
||||
</body>
|
||||
document.addEventListener('contextmenu', (event) => event.preventDefault())
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user