mirror of
https://github.com/privateersclub/wiki.git
synced 2024-11-22 21:29:52 +00:00
feat: site revamp, formatting
This commit is contained in:
parent
e3461f7796
commit
27826ff729
2
.prettierignore
Normal file
2
.prettierignore
Normal file
@ -0,0 +1,2 @@
|
||||
**/*.md
|
||||
pnpm-lock.yaml
|
6
.prettierrc.yaml
Normal file
6
.prettierrc.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
proseWrap: always
|
||||
semi: false
|
||||
singleQuote: true
|
||||
printWidth: 80
|
||||
trailingComma: none
|
||||
htmlWhitespaceSensitivity: ignore
|
@ -1,20 +1,20 @@
|
||||
import {defineConfig} from "vitepress";
|
||||
import {sharedConfig} from "./shared";
|
||||
import {enLocale} from "./locales/en-us";
|
||||
import {brLocale} from "./locales/pt-br";
|
||||
import { defineConfig } from 'vitepress'
|
||||
import { sharedConfig } from './shared'
|
||||
import { enLocale } from './locales/en-us'
|
||||
import { brLocale } from './locales/pt-br'
|
||||
|
||||
export default defineConfig({
|
||||
...sharedConfig,
|
||||
locales: {
|
||||
root: {
|
||||
label: "English",
|
||||
lang: "en",
|
||||
...enLocale,
|
||||
},
|
||||
br: {
|
||||
label: "Brazilian Portuguese",
|
||||
lang: "br",
|
||||
...brLocale,
|
||||
},
|
||||
...sharedConfig,
|
||||
locales: {
|
||||
root: {
|
||||
label: 'English',
|
||||
lang: 'en',
|
||||
...enLocale
|
||||
},
|
||||
});
|
||||
br: {
|
||||
label: 'Brazilian Portuguese',
|
||||
lang: 'br',
|
||||
...brLocale
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -1,10 +1,10 @@
|
||||
<script lang="ts" setup>
|
||||
defineProps<{ title: string; description?: string }>();
|
||||
defineProps<{ title: string; description?: string }>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div
|
||||
style="
|
||||
style="
|
||||
background-image: linear-gradient(
|
||||
43deg,
|
||||
#c6f6d5 1%,
|
||||
@ -26,10 +26,10 @@ defineProps<{ title: string; description?: string }>();
|
||||
#22543d 97%
|
||||
);
|
||||
"
|
||||
tw="w-full h-full bg-black flex flex-col"
|
||||
tw="w-full h-full bg-black flex flex-col"
|
||||
>
|
||||
<div
|
||||
tw="p-10 w-full min-h-0 grow flex flex-col items-center justify-between"
|
||||
tw="p-10 w-full min-h-0 grow flex flex-col items-center justify-between"
|
||||
>
|
||||
<div tw="w-full flex justify-between items-center text-5xl font-medium">
|
||||
<div tw="flex items-center">
|
||||
@ -39,15 +39,15 @@ defineProps<{ title: string; description?: string }>();
|
||||
</div>
|
||||
</div>
|
||||
<div tw="w-full pr-56 flex flex-col items-start justify-end">
|
||||
<div style="color: #eeeeee" tw="text-6xl font-bold" v-html="title"/>
|
||||
<div style="color: #eeeeee" tw="text-6xl font-bold" v-html="title" />
|
||||
<div
|
||||
v-if="description"
|
||||
style="color: #adf0dd; text-decoration-style: dotted"
|
||||
tw="mt-2 text-4xl underline"
|
||||
v-html="description"
|
||||
v-if="description"
|
||||
style="color: #adf0dd; text-decoration-style: dotted"
|
||||
tw="mt-2 text-4xl underline"
|
||||
v-html="description"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background-color: #adf0dd" tw="shrink-0 h-4 w-full flex"/>
|
||||
<div style="background-color: #adf0dd" tw="shrink-0 h-4 w-full flex" />
|
||||
</div>
|
||||
</template>
|
||||
|
@ -1,100 +1,100 @@
|
||||
import type {HeadConfig, TransformContext} from "vitepress";
|
||||
import type { HeadConfig, TransformContext } from 'vitepress'
|
||||
|
||||
export function generateMeta(context: TransformContext, hostname: string) {
|
||||
const head: HeadConfig[] = [];
|
||||
const {pageData} = context;
|
||||
const head: HeadConfig[] = []
|
||||
const { pageData } = context
|
||||
|
||||
const url = `${hostname}/${pageData.relativePath.replace(/((^|\/)index)?\.md$/, "$2")}`;
|
||||
const url = `${hostname}/${pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2')}`
|
||||
|
||||
head.push(
|
||||
['link', { rel: 'canonical', href: url }],
|
||||
['meta', { property: 'og:url', content: url }],
|
||||
['meta', { name: 'twitter:url', content: url }],
|
||||
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
|
||||
['meta', { property: 'og:title', content: pageData.frontmatter.title }],
|
||||
['meta', { name: 'twitter:title', content: pageData.frontmatter.title }]
|
||||
)
|
||||
if (pageData.frontmatter.description) {
|
||||
head.push(
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
property: 'og:description',
|
||||
content: pageData.frontmatter.description
|
||||
}
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
name: 'twitter:description',
|
||||
content: pageData.frontmatter.description
|
||||
}
|
||||
]
|
||||
)
|
||||
}
|
||||
if (pageData.frontmatter.image) {
|
||||
head.push([
|
||||
'meta',
|
||||
{
|
||||
property: 'og:image',
|
||||
content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, '')}`
|
||||
}
|
||||
])
|
||||
head.push([
|
||||
'meta',
|
||||
{
|
||||
name: 'twitter:image',
|
||||
content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, '')}`
|
||||
}
|
||||
])
|
||||
} else {
|
||||
const url = pageData.filePath.replace('index.md', '').replace('.md', '')
|
||||
const imageUrl = `${url}/__og_image__/og.png`
|
||||
.replaceAll('//', '/')
|
||||
.replace(/^\//, '')
|
||||
|
||||
head.push(
|
||||
["link", {rel: "canonical", href: url}],
|
||||
["meta", {property: "og:url", content: url}],
|
||||
["meta", {name: "twitter:url", content: url}],
|
||||
["meta", {name: "twitter:card", content: "summary_large_image"}],
|
||||
["meta", {property: "og:title", content: pageData.frontmatter.title}],
|
||||
["meta", {name: "twitter:title", content: pageData.frontmatter.title}],
|
||||
);
|
||||
if (pageData.frontmatter.description) {
|
||||
head.push(
|
||||
[
|
||||
"meta",
|
||||
{
|
||||
property: "og:description",
|
||||
content: pageData.frontmatter.description,
|
||||
},
|
||||
],
|
||||
[
|
||||
"meta",
|
||||
{
|
||||
name: "twitter:description",
|
||||
content: pageData.frontmatter.description,
|
||||
},
|
||||
],
|
||||
);
|
||||
}
|
||||
if (pageData.frontmatter.image) {
|
||||
head.push([
|
||||
"meta",
|
||||
{
|
||||
property: "og:image",
|
||||
content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, "")}`,
|
||||
},
|
||||
]);
|
||||
head.push([
|
||||
"meta",
|
||||
{
|
||||
name: "twitter:image",
|
||||
content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, "")}`,
|
||||
},
|
||||
]);
|
||||
} else {
|
||||
const url = pageData.filePath.replace("index.md", "").replace(".md", "");
|
||||
const imageUrl = `${url}/__og_image__/og.png`
|
||||
.replaceAll("//", "/")
|
||||
.replace(/^\//, "");
|
||||
['meta', { property: 'og:image', content: `${hostname}/${imageUrl}` }],
|
||||
['meta', { property: 'og:image:width', content: '1200' }],
|
||||
['meta', { property: 'og:image:height', content: '628' }],
|
||||
['meta', { property: 'og:image:type', content: 'image/png' }],
|
||||
[
|
||||
'meta',
|
||||
{ property: 'og:image:alt', content: pageData.frontmatter.title }
|
||||
],
|
||||
['meta', { name: 'twitter:image', content: `${hostname}/${imageUrl}` }],
|
||||
['meta', { name: 'twitter:image:width', content: '1200' }],
|
||||
['meta', { name: 'twitter:image:height', content: '628' }],
|
||||
[
|
||||
'meta',
|
||||
{ name: 'twitter:image:alt', content: pageData.frontmatter.title }
|
||||
]
|
||||
)
|
||||
}
|
||||
if (pageData.frontmatter.tag) {
|
||||
head.push([
|
||||
'meta',
|
||||
{ property: 'article:tag', content: pageData.frontmatter.tag }
|
||||
])
|
||||
}
|
||||
if (pageData.frontmatter.date) {
|
||||
head.push([
|
||||
'meta',
|
||||
{
|
||||
property: 'article:published_time',
|
||||
content: pageData.frontmatter.date
|
||||
}
|
||||
])
|
||||
}
|
||||
if (pageData.lastUpdated && pageData.frontmatter.lastUpdated !== false) {
|
||||
head.push([
|
||||
'meta',
|
||||
{
|
||||
property: 'article:modified_time',
|
||||
content: new Date(pageData.lastUpdated).toISOString()
|
||||
}
|
||||
])
|
||||
}
|
||||
|
||||
head.push(
|
||||
["meta", {property: "og:image", content: `${hostname}/${imageUrl}`}],
|
||||
["meta", {property: "og:image:width", content: "1200"}],
|
||||
["meta", {property: "og:image:height", content: "628"}],
|
||||
["meta", {property: "og:image:type", content: "image/png"}],
|
||||
[
|
||||
"meta",
|
||||
{property: "og:image:alt", content: pageData.frontmatter.title},
|
||||
],
|
||||
["meta", {name: "twitter:image", content: `${hostname}/${imageUrl}`}],
|
||||
["meta", {name: "twitter:image:width", content: "1200"}],
|
||||
["meta", {name: "twitter:image:height", content: "628"}],
|
||||
[
|
||||
"meta",
|
||||
{name: "twitter:image:alt", content: pageData.frontmatter.title},
|
||||
],
|
||||
);
|
||||
}
|
||||
if (pageData.frontmatter.tag) {
|
||||
head.push([
|
||||
"meta",
|
||||
{property: "article:tag", content: pageData.frontmatter.tag},
|
||||
]);
|
||||
}
|
||||
if (pageData.frontmatter.date) {
|
||||
head.push([
|
||||
"meta",
|
||||
{
|
||||
property: "article:published_time",
|
||||
content: pageData.frontmatter.date,
|
||||
},
|
||||
]);
|
||||
}
|
||||
if (pageData.lastUpdated && pageData.frontmatter.lastUpdated !== false) {
|
||||
head.push([
|
||||
"meta",
|
||||
{
|
||||
property: "article:modified_time",
|
||||
content: new Date(pageData.lastUpdated).toISOString(),
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
return head;
|
||||
return head
|
||||
}
|
||||
|
@ -1,98 +1,95 @@
|
||||
import {mkdir, readFile, writeFile} from "node:fs/promises";
|
||||
import {dirname, resolve} from "node:path";
|
||||
import {fileURLToPath} from "node:url";
|
||||
import type {ContentData, SiteConfig} from "vitepress";
|
||||
import {createContentLoader} from "vitepress";
|
||||
import {type SatoriOptions, satoriVue} from "x-satori/vue";
|
||||
import {renderAsync} from "@resvg/resvg-js";
|
||||
import { mkdir, readFile, writeFile } from 'node:fs/promises'
|
||||
import { dirname, resolve } from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import type { ContentData, SiteConfig } from 'vitepress'
|
||||
import { createContentLoader } from 'vitepress'
|
||||
import { type SatoriOptions, satoriVue } from 'x-satori/vue'
|
||||
import { renderAsync } from '@resvg/resvg-js'
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const __fonts = resolve(__dirname, "../fonts");
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
const __fonts = resolve(__dirname, '../fonts')
|
||||
|
||||
export async function generateImages(config: SiteConfig): Promise<void> {
|
||||
const pages = await createContentLoader("**/*.md", {excerpt: true}).load();
|
||||
const template = await readFile(
|
||||
resolve(__dirname, "./Template.vue"),
|
||||
"utf-8",
|
||||
);
|
||||
const pages = await createContentLoader('*_/_.md', { excerpt: true }).load()
|
||||
const template = await readFile(resolve(__dirname, './Template.vue'), 'utf-8')
|
||||
|
||||
const fonts: SatoriOptions["fonts"] = [
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Regular.otf")),
|
||||
weight: 400,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Medium.otf")),
|
||||
weight: 500,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-SemiBold.otf")),
|
||||
weight: 600,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Bold.otf")),
|
||||
weight: 700,
|
||||
style: "normal",
|
||||
},
|
||||
];
|
||||
|
||||
for (const page of pages) {
|
||||
await generateImage({
|
||||
page,
|
||||
template,
|
||||
outDir: config.outDir,
|
||||
fonts,
|
||||
});
|
||||
const fonts: SatoriOptions['fonts'] = [
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Regular.otf')),
|
||||
weight: 400,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Medium.otf')),
|
||||
weight: 500,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-SemiBold.otf')),
|
||||
weight: 600,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Bold.otf')),
|
||||
weight: 700,
|
||||
style: 'normal'
|
||||
}
|
||||
return console.info("Generated opengraph images.");
|
||||
]
|
||||
|
||||
for (const page of pages) {
|
||||
await generateImage({
|
||||
page,
|
||||
template,
|
||||
outDir: config.outDir,
|
||||
fonts
|
||||
})
|
||||
}
|
||||
return console.info('Generated opengraph images.')
|
||||
}
|
||||
|
||||
interface GenerateImagesOptions {
|
||||
page: ContentData;
|
||||
template: string;
|
||||
outDir: string;
|
||||
fonts: SatoriOptions["fonts"];
|
||||
page: ContentData
|
||||
template: string
|
||||
outDir: string
|
||||
fonts: SatoriOptions['fonts']
|
||||
}
|
||||
|
||||
async function generateImage({
|
||||
page,
|
||||
template,
|
||||
outDir,
|
||||
fonts,
|
||||
}: GenerateImagesOptions): Promise<void> {
|
||||
const {frontmatter, url} = page;
|
||||
page,
|
||||
template,
|
||||
outDir,
|
||||
fonts
|
||||
}: GenerateImagesOptions): Promise<void> {
|
||||
const { frontmatter, url } = page
|
||||
|
||||
const options: SatoriOptions = {
|
||||
width: 1200,
|
||||
height: 628,
|
||||
fonts,
|
||||
props: {
|
||||
title:
|
||||
frontmatter.layout === "home"
|
||||
? frontmatter.hero.name ?? frontmatter.title
|
||||
: frontmatter.title,
|
||||
description:
|
||||
frontmatter.layout === "home"
|
||||
? frontmatter.hero.tagline ?? frontmatter.description
|
||||
: frontmatter.description,
|
||||
},
|
||||
};
|
||||
const options: SatoriOptions = {
|
||||
width: 1200,
|
||||
height: 628,
|
||||
fonts,
|
||||
props: {
|
||||
title:
|
||||
frontmatter.layout === 'home'
|
||||
? frontmatter.hero.name ?? frontmatter.title
|
||||
: frontmatter.title,
|
||||
description:
|
||||
frontmatter.layout === 'home'
|
||||
? frontmatter.hero.tagline ?? frontmatter.description
|
||||
: frontmatter.description
|
||||
}
|
||||
}
|
||||
|
||||
const svg = await satoriVue(options, template);
|
||||
const svg = await satoriVue(options, template)
|
||||
|
||||
const render = await renderAsync(svg);
|
||||
const render = await renderAsync(svg)
|
||||
|
||||
const outputFolder = resolve(outDir, url.slice(1), "__og_image__");
|
||||
const outputFile = resolve(outputFolder, "og.png");
|
||||
const outputFolder = resolve(outDir, url.slice(1), '**og_image**')
|
||||
const outputFile = resolve(outputFolder, 'og.png')
|
||||
|
||||
await mkdir(outputFolder, {recursive: true});
|
||||
await mkdir(outputFolder, { recursive: true })
|
||||
|
||||
await writeFile(outputFile, render.asPng());
|
||||
await writeFile(outputFile, render.asPng())
|
||||
}
|
||||
|
@ -1,47 +1,47 @@
|
||||
import {readFile} from "node:fs/promises";
|
||||
import {dirname, resolve} from "node:path";
|
||||
import {fileURLToPath} from "node:url";
|
||||
import type {SatoriOptions} from "x-satori/vue";
|
||||
import {defineSatoriConfig} from "x-satori/vue";
|
||||
import { readFile } from 'node:fs/promises'
|
||||
import { dirname, resolve } from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import type { SatoriOptions } from 'x-satori/vue'
|
||||
import { defineSatoriConfig } from 'x-satori/vue'
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
const __fonts = resolve(__dirname, "../fonts");
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||||
const __fonts = resolve(__dirname, '../fonts')
|
||||
|
||||
const fonts: SatoriOptions["fonts"] = [
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Regular.otf")),
|
||||
weight: 400,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Medium.otf")),
|
||||
weight: 500,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-SemiBold.otf")),
|
||||
weight: 600,
|
||||
style: "normal",
|
||||
},
|
||||
{
|
||||
name: "Inter",
|
||||
data: await readFile(resolve(__fonts, "Inter-Bold.otf")),
|
||||
weight: 700,
|
||||
style: "normal",
|
||||
},
|
||||
];
|
||||
const fonts: SatoriOptions['fonts'] = [
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Regular.otf')),
|
||||
weight: 400,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Medium.otf')),
|
||||
weight: 500,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-SemiBold.otf')),
|
||||
weight: 600,
|
||||
style: 'normal'
|
||||
},
|
||||
{
|
||||
name: 'Inter',
|
||||
data: await readFile(resolve(__fonts, 'Inter-Bold.otf')),
|
||||
weight: 700,
|
||||
style: 'normal'
|
||||
}
|
||||
]
|
||||
|
||||
export default defineSatoriConfig({
|
||||
width: 1200,
|
||||
height: 628,
|
||||
fonts,
|
||||
props: {
|
||||
title: "Title",
|
||||
description:
|
||||
"Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.",
|
||||
dir: "/j",
|
||||
},
|
||||
});
|
||||
width: 1200,
|
||||
height: 628,
|
||||
fonts,
|
||||
props: {
|
||||
title: 'Title',
|
||||
description:
|
||||
'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.',
|
||||
dir: '/j'
|
||||
}
|
||||
})
|
||||
|
@ -1,27 +1,27 @@
|
||||
import {DefaultTheme, LocaleSpecificConfig} from "vitepress";
|
||||
import { DefaultTheme, LocaleSpecificConfig } from 'vitepress'
|
||||
|
||||
const navbar: DefaultTheme.NavItem[] = [
|
||||
{text: "Get Started", link: "/start"},
|
||||
{text: "Contribute", link: "/contribute"},
|
||||
];
|
||||
{ text: 'Get Started', link: '/start' },
|
||||
{ text: 'Contribute', link: '/contribute' }
|
||||
]
|
||||
|
||||
const sidebar: DefaultTheme.Sidebar = [
|
||||
{text: "Glossary", link: "/glossary"},
|
||||
{text: "Software", link: "/software"},
|
||||
{text: "Download", link: "/download"},
|
||||
{text: "Emulation", link: "/emulation"},
|
||||
{text: "Linux", link: "/linux"},
|
||||
{text: "Useful", link: "/useful"},
|
||||
{text: "Unsafe", link: "/unsafe"},
|
||||
];
|
||||
{ text: 'Glossary', link: '/glossary' },
|
||||
{ text: 'Software', link: '/software' },
|
||||
{ text: 'Download', link: '/download' },
|
||||
{ text: 'Emulation', link: '/emulation' },
|
||||
{ text: 'Linux', link: '/linux' },
|
||||
{ text: 'Useful', link: '/useful' },
|
||||
{ text: 'Unsafe', link: '/unsafe' }
|
||||
]
|
||||
|
||||
export const enLocale: LocaleSpecificConfig<DefaultTheme.Config> = {
|
||||
...navbar,
|
||||
themeConfig: {
|
||||
sidebar,
|
||||
editLink: {
|
||||
pattern: "https://github.com/privateersclub/wiki/edit/master/docs/:path",
|
||||
text: "Suggest Changes",
|
||||
},
|
||||
},
|
||||
};
|
||||
...navbar,
|
||||
themeConfig: {
|
||||
sidebar,
|
||||
editLink: {
|
||||
pattern: 'https://github.com/privateersclub/wiki/edit/master/docs/:path',
|
||||
text: 'Suggest Changes'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,27 +1,27 @@
|
||||
import {DefaultTheme, LocaleSpecificConfig} from "vitepress";
|
||||
import { DefaultTheme, LocaleSpecificConfig } from 'vitepress'
|
||||
|
||||
const navbar: DefaultTheme.NavItem[] = [
|
||||
{text: "Começar", link: "/start"},
|
||||
{text: "Contribuir", link: "/contribute"},
|
||||
];
|
||||
{ text: 'Começar', link: '/start' },
|
||||
{ text: 'Contribuir', link: '/contribute' }
|
||||
]
|
||||
|
||||
const sidebar: DefaultTheme.Sidebar = [
|
||||
{text: "Glossário", link: "/br/glossary"},
|
||||
{text: "Programas", link: "/br/software"},
|
||||
{text: "Downloads", link: "/br/download"},
|
||||
{text: "Emulação", link: "/br/emulation"},
|
||||
{text: "Linux", link: "/br/linux"},
|
||||
{text: "Útil", link: "/br/useful"},
|
||||
{text: "Não Seguro", link: "/br/unsafe"},
|
||||
];
|
||||
{ text: 'Glossário', link: '/br/glossary' },
|
||||
{ text: 'Programas', link: '/br/software' },
|
||||
{ text: 'Downloads', link: '/br/download' },
|
||||
{ text: 'Emulação', link: '/br/emulation' },
|
||||
{ text: 'Linux', link: '/br/linux' },
|
||||
{ text: 'Útil', link: '/br/useful' },
|
||||
{ text: 'Não Seguro', link: '/br/unsafe' }
|
||||
]
|
||||
|
||||
export const brLocale: LocaleSpecificConfig<DefaultTheme.Config> = {
|
||||
...navbar,
|
||||
themeConfig: {
|
||||
sidebar: sidebar,
|
||||
editLink: {
|
||||
pattern: "https://github.com/privateersclub/wiki/edit/master/docs/:path",
|
||||
text: "Sugerir Mudanças",
|
||||
},
|
||||
},
|
||||
};
|
||||
...navbar,
|
||||
themeConfig: {
|
||||
sidebar: sidebar,
|
||||
editLink: {
|
||||
pattern: 'https://github.com/privateersclub/wiki/edit/master/docs/:path',
|
||||
text: 'Sugerir Mudanças'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,40 +1,114 @@
|
||||
import {defineConfig} from "vitepress";
|
||||
import UnoCSS from "unocss/vite";
|
||||
import { defineConfig } from 'vitepress'
|
||||
import UnoCSS from 'unocss/vite'
|
||||
import {
|
||||
PageProperties,
|
||||
PagePropertiesMarkdownSection
|
||||
} from '@nolebase/vitepress-plugin-page-properties/vite'
|
||||
import {
|
||||
GitChangelog,
|
||||
GitChangelogMarkdownSection
|
||||
} from '@nolebase/vitepress-plugin-git-changelog/vite'
|
||||
|
||||
export const sharedConfig = defineConfig({
|
||||
title: "privateersclub/wiki",
|
||||
description: "The most comprehensive game piracy wiki on the internet.",
|
||||
base: process.env.BASE_URL || "/",
|
||||
lang: "en-US",
|
||||
lastUpdated: true,
|
||||
cleanUrls: true,
|
||||
appearance: "dark",
|
||||
titleTemplate: ":title • Wiki",
|
||||
head: [
|
||||
["meta", {name: "theme-color", content: "#ADF0DD"}],
|
||||
["meta", {name: "og:type", content: "website"}],
|
||||
["meta", {name: "og:locale", content: "en"}],
|
||||
],
|
||||
vite: {plugins: [UnoCSS()]},
|
||||
// transformHead: async (context) =>
|
||||
// generateMeta(context, "https://megathread.pages.dev"),
|
||||
// buildEnd(siteConfig) {
|
||||
// generateImages(siteConfig);
|
||||
// },
|
||||
themeConfig: {
|
||||
search: {
|
||||
provider: "local",
|
||||
},
|
||||
docFooter: {next: false, prev: false},
|
||||
socialLinks: [
|
||||
{icon: "github", link: "https://github.com/privateersclub/wiki"},
|
||||
{icon: "discord", link: "https://discord.gg/jz8dUnnD6Q"},
|
||||
{
|
||||
icon: {
|
||||
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chat" viewBox="0 0 16 16"><path d="M2.678 11.894a1 1 0 0 1 .287.801 10.97 10.97 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8.06 8.06 0 0 0 8 14c3.996 0 7-2.807 7-6 0-3.192-3.004-6-7-6S1 4.808 1 8c0 1.468.617 2.83 1.678 3.894zm-.493 3.905a21.682 21.682 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a9.68 9.68 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105z"/></svg>',
|
||||
},
|
||||
link: "https://privateer.divolt.xyz",
|
||||
},
|
||||
],
|
||||
title: 'privateersclub/wiki',
|
||||
description: 'The most comprehensive game piracy wiki on the internet.',
|
||||
base: process.env.BASE_URL || '/',
|
||||
lang: 'en-US',
|
||||
lastUpdated: true,
|
||||
cleanUrls: true,
|
||||
appearance: 'dark',
|
||||
titleTemplate: ':title • Wiki',
|
||||
head: [
|
||||
['meta', { name: 'theme-color', content: '#ADF0DD' }],
|
||||
['meta', { name: 'og:type', content: 'website' }],
|
||||
['meta', { name: 'og:locale', content: 'en' }]
|
||||
],
|
||||
vite: {
|
||||
optimizeDeps: {
|
||||
exclude: ['@nolebase/vitepress-plugin-enhanced-readabilities/client']
|
||||
},
|
||||
});
|
||||
ssr: {
|
||||
noExternal: [
|
||||
'@nolebase/vitepress-plugin-enhanced-readabilities',
|
||||
'@nolebase/vitepress-plugin-page-properties'
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
UnoCSS(),
|
||||
GitChangelog({
|
||||
maxGitLogCount: 2000,
|
||||
repoURL: () => 'https://github.com/privateersclub/wiki'
|
||||
}),
|
||||
GitChangelogMarkdownSection(),
|
||||
PageProperties(),
|
||||
PagePropertiesMarkdownSection()
|
||||
]
|
||||
},
|
||||
// transformHead: async (context) =>
|
||||
// generateMeta(context, "https://megathread.pages.dev"),
|
||||
// buildEnd(siteConfig) {
|
||||
// generateImages(siteConfig);
|
||||
// },
|
||||
themeConfig: {
|
||||
search: {
|
||||
provider: 'local',
|
||||
options: {
|
||||
// Add title ang tags field in frontmatter to search
|
||||
// You can exclude a page from search by adding search: false to the page's frontmatter.
|
||||
_render(src, env, md) {
|
||||
// without `md.render(src, env)`, the some information will be missing from the env.
|
||||
let html = md.render(src, env)
|
||||
let tagsPart = ''
|
||||
let headingPart = ''
|
||||
let contentPart = ''
|
||||
let fullContent = ''
|
||||
const sortContent = () =>
|
||||
[headingPart, tagsPart, contentPart] as const
|
||||
let { frontmatter, content } = env
|
||||
|
||||
if (!frontmatter) return html
|
||||
|
||||
if (frontmatter.search === false) return ''
|
||||
|
||||
contentPart = content ||= src
|
||||
|
||||
const headingMatch = content.match(/^#{1} .*/m)
|
||||
const hasHeading = !!(
|
||||
headingMatch &&
|
||||
headingMatch[0] &&
|
||||
headingMatch.index !== undefined
|
||||
)
|
||||
|
||||
if (hasHeading) {
|
||||
const headingEnd = headingMatch.index! + headingMatch[0].length
|
||||
headingPart = content.slice(0, headingEnd)
|
||||
contentPart = content.slice(headingEnd)
|
||||
} else if (frontmatter.title) {
|
||||
headingPart = `# ${frontmatter.title}`
|
||||
}
|
||||
|
||||
const tags = frontmatter.tags
|
||||
if (tags && Array.isArray(tags) && tags.length)
|
||||
tagsPart = `Tags: #${tags.join(', #')}`
|
||||
|
||||
fullContent = sortContent().filter(Boolean).join('\n\n')
|
||||
|
||||
html = md.render(fullContent, env)
|
||||
|
||||
return html
|
||||
}
|
||||
}
|
||||
},
|
||||
docFooter: { next: false, prev: false },
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/privateersclub/wiki' },
|
||||
{ icon: 'discord', link: 'https://discord.gg/jz8dUnnD6Q' },
|
||||
{
|
||||
icon: {
|
||||
svg: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chat" viewBox="0 0 16 16"><path d="M2.678 11.894a1 1 0 0 1 .287.801 10.97 10.97 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8.06 8.06 0 0 0 8 14c3.996 0 7-2.807 7-6 0-3.192-3.004-6-7-6S1 4.808 1 8c0 1.468.617 2.83 1.678 3.894zm-.493 3.905a21.682 21.682 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a9.68 9.68 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9.06 9.06 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105z"/></svg>'
|
||||
},
|
||||
link: 'https://privateer.divolt.xyz'
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
|
@ -1,23 +1,23 @@
|
||||
import nprogress, {type NProgress} from "nprogress";
|
||||
import type {EnhanceAppContext} from "vitepress";
|
||||
import nprogress, { type NProgress } from 'nprogress'
|
||||
import type { EnhanceAppContext } from 'vitepress'
|
||||
|
||||
export function loadProgress(router: EnhanceAppContext["router"]): NProgress {
|
||||
if (typeof window === "undefined") return;
|
||||
export function loadProgress(router: EnhanceAppContext['router']): NProgress {
|
||||
if (typeof window === 'undefined') return
|
||||
|
||||
setTimeout(() => {
|
||||
nprogress.configure({showSpinner: false});
|
||||
setTimeout(() => {
|
||||
nprogress.configure({ showSpinner: false })
|
||||
|
||||
const cacheBeforeRouteChange = router.onBeforeRouteChange;
|
||||
const cacheAfterRouteChange = router.onAfterRouteChanged;
|
||||
router.onBeforeRouteChange = (to) => {
|
||||
nprogress.start();
|
||||
cacheBeforeRouteChange?.(to);
|
||||
};
|
||||
router.onAfterRouteChanged = (to) => {
|
||||
nprogress.done();
|
||||
cacheAfterRouteChange?.(to);
|
||||
};
|
||||
});
|
||||
const cacheBeforeRouteChange = router.onBeforeRouteChange
|
||||
const cacheAfterRouteChange = router.onAfterRouteChanged
|
||||
router.onBeforeRouteChange = (to) => {
|
||||
nprogress.start()
|
||||
cacheBeforeRouteChange?.(to)
|
||||
}
|
||||
router.onAfterRouteChanged = (to) => {
|
||||
nprogress.done()
|
||||
cacheAfterRouteChange?.(to)
|
||||
}
|
||||
})
|
||||
|
||||
return nprogress;
|
||||
return nprogress
|
||||
}
|
||||
|
@ -1,12 +1,101 @@
|
||||
import {type Theme} from "vitepress";
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import {loadProgress} from "./composables/nprogress";
|
||||
import "./style.css";
|
||||
import "uno.css";
|
||||
import { h } from 'vue'
|
||||
import { type Theme } from 'vitepress'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import {
|
||||
NolebaseEnhancedReadabilitiesMenu,
|
||||
NolebaseEnhancedReadabilitiesScreenMenu
|
||||
} from '@nolebase/vitepress-plugin-enhanced-readabilities/client'
|
||||
import { NolebaseGitChangelogPlugin } from '@nolebase/vitepress-plugin-git-changelog/client'
|
||||
import { NolebasePagePropertiesPlugin } from '@nolebase/vitepress-plugin-page-properties/client'
|
||||
import { loadProgress } from './composables/nprogress'
|
||||
import '@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css'
|
||||
import '@nolebase/vitepress-plugin-page-properties/client/style.css'
|
||||
import '@nolebase/vitepress-plugin-git-changelog/client/style.css'
|
||||
import './style.css'
|
||||
import 'uno.css'
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
enhanceApp({router}) {
|
||||
loadProgress(router);
|
||||
},
|
||||
} satisfies Theme;
|
||||
extends: DefaultTheme,
|
||||
Layout: () => {
|
||||
return h(DefaultTheme.Layout, null, {
|
||||
// A enhanced readabilities menu for wider screens
|
||||
'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu),
|
||||
// A enhanced readabilities menu for narrower screens (usually smaller than iPad Mini)
|
||||
'nav-screen-content-after': () =>
|
||||
h(NolebaseEnhancedReadabilitiesScreenMenu)
|
||||
})
|
||||
},
|
||||
enhanceApp({ router, app }) {
|
||||
loadProgress(router)
|
||||
app.use(NolebaseGitChangelogPlugin, {
|
||||
mapAuthors: [
|
||||
{
|
||||
name: 'taskylizard',
|
||||
username: 'taskylizard',
|
||||
avatar: 'https://github.com/taskylizard.png'
|
||||
},
|
||||
{
|
||||
name: 'Kazevic',
|
||||
username: 'Kazevic',
|
||||
avatar: 'https://github.com/kazevic.png'
|
||||
}
|
||||
]
|
||||
})
|
||||
// @ts-expect-error
|
||||
app.use(
|
||||
NolebasePagePropertiesPlugin<{ tags: string[]; progress: number }>(),
|
||||
{
|
||||
properties: {
|
||||
en: [
|
||||
{
|
||||
key: 'tags',
|
||||
type: 'tags',
|
||||
title: 'Tags'
|
||||
},
|
||||
{
|
||||
key: 'progress',
|
||||
type: 'progress',
|
||||
title: 'Progress'
|
||||
},
|
||||
{
|
||||
key: 'createdAt',
|
||||
type: 'datetime',
|
||||
title: 'Created at',
|
||||
formatAsFrom: true,
|
||||
dateFnsLocaleName: 'enUS'
|
||||
},
|
||||
{
|
||||
key: 'updatedAt',
|
||||
type: 'datetime',
|
||||
title: 'Updated at',
|
||||
formatAsFrom: true,
|
||||
dateFnsLocaleName: 'enUS'
|
||||
},
|
||||
{
|
||||
key: 'url1',
|
||||
type: 'link',
|
||||
title: 'URL 1'
|
||||
},
|
||||
{
|
||||
key: 'wordsCount',
|
||||
type: 'dynamic',
|
||||
title: 'Word count',
|
||||
options: {
|
||||
type: 'wordsCount'
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'readingTime',
|
||||
type: 'dynamic',
|
||||
title: 'Reading time',
|
||||
options: {
|
||||
type: 'readingTime',
|
||||
dateFnsLocaleName: 'enUS'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
} satisfies Theme
|
||||
|
@ -1,176 +1,211 @@
|
||||
:root {
|
||||
--vp-c-brand-1: #1fd8a4;
|
||||
--vp-c-brand-2: #4acdab;
|
||||
--vp-c-brand-3: #3abd9d;
|
||||
--vp-c-brand-soft: #2aae8f;
|
||||
--vp-c-brand-1: #1fd8a4;
|
||||
--vp-c-brand-2: #4acdab;
|
||||
--vp-c-brand-3: #3abd9d;
|
||||
--vp-c-brand-soft: #2aae8f;
|
||||
|
||||
/* Colors: Button */
|
||||
--vp-button-brand-bg: var(--vp-c-brand-1);
|
||||
--vp-button-brand-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-active-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-button-brand-bg);
|
||||
--vp-button-alt-bg: #484848;
|
||||
--vp-button-alt-text: #f0eeee;
|
||||
--vp-button-alt-hover-bg: #484848;
|
||||
--vp-button-alt-hover-text: #f0eeee;
|
||||
/* Colors: Button */
|
||||
--vp-button-brand-bg: var(--vp-c-brand-1);
|
||||
--vp-button-brand-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-active-border: var(--vp-c-brand-soft);
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-button-brand-bg);
|
||||
--vp-button-alt-bg: #484848;
|
||||
--vp-button-alt-text: #f0eeee;
|
||||
--vp-button-alt-hover-bg: #484848;
|
||||
--vp-button-alt-hover-text: #f0eeee;
|
||||
|
||||
--vp-c-bg-elv: rgba(255, 255, 255, 0.7);
|
||||
--vp-c-bg-mark: rgb(232, 232, 232);
|
||||
--vp-c-bg-elv: rgba(255, 255, 255, 0.7);
|
||||
--vp-c-bg-mark: rgb(232, 232, 232);
|
||||
|
||||
/* Colors: Custom Block */
|
||||
--vp-custom-block-info-bg: rgba(171, 210, 244, 0.05);
|
||||
--vp-custom-block-info-border: #60c4fa;
|
||||
--vp-custom-block-info-text: rgb(39, 115, 145);
|
||||
--vp-custom-block-info-text-deep: rgb(18, 121, 162);
|
||||
--vp-custom-block-tip-bg: rgba(137, 202, 176, 0.05);
|
||||
--vp-custom-block-tip-border: rgba(34, 197, 94, 1);
|
||||
--vp-custom-block-tip-text: rgb(10, 128, 90);
|
||||
--vp-custom-block-tip-text-deep: rgb(11, 133, 94);
|
||||
--vp-custom-block-warning-bg: rgba(250, 204, 21, 0.05);
|
||||
--vp-custom-block-warning-border: rgba(245, 158, 11, 1);
|
||||
--vp-custom-block-warning-text: rgb(166, 114, 35);
|
||||
--vp-custom-block-warning-text-deep: rgb(199, 109, 6);
|
||||
--vp-custom-block-danger-bg: rgba(220, 38, 38, 0.05);
|
||||
--vp-custom-block-danger-border: rgba(248, 113, 113, 1);
|
||||
--vp-custom-block-danger-text: rgb(196, 46, 46);
|
||||
--vp-custom-block-danger-text-deep: rgba(220, 38, 38, 1);
|
||||
/* Colors: Custom Block */
|
||||
--vp-custom-block-info-bg: rgba(171, 210, 244, 0.05);
|
||||
--vp-custom-block-info-border: #60c4fa;
|
||||
--vp-custom-block-info-text: rgb(39, 115, 145);
|
||||
--vp-custom-block-info-text-deep: rgb(18, 121, 162);
|
||||
--vp-custom-block-tip-bg: rgba(137, 202, 176, 0.05);
|
||||
--vp-custom-block-tip-border: rgba(34, 197, 94, 1);
|
||||
--vp-custom-block-tip-text: rgb(10, 128, 90);
|
||||
--vp-custom-block-tip-text-deep: rgb(11, 133, 94);
|
||||
--vp-custom-block-warning-bg: rgba(250, 204, 21, 0.05);
|
||||
--vp-custom-block-warning-border: rgba(245, 158, 11, 1);
|
||||
--vp-custom-block-warning-text: rgb(166, 114, 35);
|
||||
--vp-custom-block-warning-text-deep: rgb(199, 109, 6);
|
||||
--vp-custom-block-danger-bg: rgba(220, 38, 38, 0.05);
|
||||
--vp-custom-block-danger-border: rgba(248, 113, 113, 1);
|
||||
--vp-custom-block-danger-text: rgb(196, 46, 46);
|
||||
--vp-custom-block-danger-text-deep: rgba(220, 38, 38, 1);
|
||||
}
|
||||
|
||||
.dark {
|
||||
/* Colors: Background */
|
||||
--vp-c-bg: rgb(22, 22, 22);
|
||||
--vp-c-bg-alt: rgb(23, 23, 23);
|
||||
--vp-c-bg-elv: rgba(23, 23, 23, 0.8);
|
||||
/* Colors: Background */
|
||||
--vp-c-bg: rgb(22, 22, 22);
|
||||
--vp-c-bg-alt: rgb(23, 23, 23);
|
||||
--vp-c-bg-elv: rgba(23, 23, 23, 0.8);
|
||||
|
||||
/* Colors: Custom Block */
|
||||
--vp-custom-block-info-bg: rgba(84, 110, 155, 0.1);
|
||||
--vp-custom-block-info-border: #3686b1;
|
||||
--vp-custom-block-info-text: #52b0e3;
|
||||
--vp-custom-block-info-text-deep: #00b7ff;
|
||||
--vp-custom-block-tip-bg: rgba(51, 130, 118, 0.1);
|
||||
--vp-custom-block-tip-border: rgba(4, 120, 87, 1);
|
||||
--vp-custom-block-tip-text: rgb(25, 190, 129);
|
||||
--vp-custom-block-tip-text-deep: rgba(52, 211, 153, 1);
|
||||
--vp-custom-block-warning-bg: rgba(253, 224, 71, 0.1);
|
||||
--vp-custom-block-warning-border: rgba(202, 138, 4, 1);
|
||||
--vp-custom-block-warning-text: rgba(234, 179, 8, 1);
|
||||
--vp-custom-block-warning-text-deep: rgba(250, 204, 21, 1);
|
||||
--vp-custom-block-danger-bg: rgba(239, 68, 68, 0.1);
|
||||
--vp-custom-block-danger-border: rgba(127, 29, 29, 1);
|
||||
--vp-custom-block-danger-text: rgba(248, 113, 113, 1);
|
||||
--vp-custom-block-danger-text-deep: rgba(248, 113, 113, 1);
|
||||
/* Colors: Custom Block */
|
||||
--vp-custom-block-info-bg: rgba(84, 110, 155, 0.1);
|
||||
--vp-custom-block-info-border: #3686b1;
|
||||
--vp-custom-block-info-text: #52b0e3;
|
||||
--vp-custom-block-info-text-deep: #00b7ff;
|
||||
--vp-custom-block-tip-bg: rgba(51, 130, 118, 0.1);
|
||||
--vp-custom-block-tip-border: rgba(4, 120, 87, 1);
|
||||
--vp-custom-block-tip-text: rgb(25, 190, 129);
|
||||
--vp-custom-block-tip-text-deep: rgba(52, 211, 153, 1);
|
||||
--vp-custom-block-warning-bg: rgba(253, 224, 71, 0.1);
|
||||
--vp-custom-block-warning-border: rgba(202, 138, 4, 1);
|
||||
--vp-custom-block-warning-text: rgba(234, 179, 8, 1);
|
||||
--vp-custom-block-warning-text-deep: rgba(250, 204, 21, 1);
|
||||
--vp-custom-block-danger-bg: rgba(239, 68, 68, 0.1);
|
||||
--vp-custom-block-danger-border: rgba(127, 29, 29, 1);
|
||||
--vp-custom-block-danger-text: rgba(248, 113, 113, 1);
|
||||
--vp-custom-block-danger-text-deep: rgba(248, 113, 113, 1);
|
||||
}
|
||||
|
||||
.vp-doc a {
|
||||
color: var(--vp-c-brand-1);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 4px;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-color: transparent;
|
||||
-webkit-text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.25s;
|
||||
color: var(--vp-c-brand-1);
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 4px;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-color: transparent;
|
||||
-webkit-text-decoration-color: transparent;
|
||||
transition: text-decoration-color 0.25s;
|
||||
}
|
||||
|
||||
.vp-doc a:hover {
|
||||
color: var(--vp-c-brand-1);
|
||||
text-decoration-color: var(--vp-c-brand-1);
|
||||
-webkit-text-decoration-color: var(--vp-c-brand-1);
|
||||
color: var(--vp-c-brand-1);
|
||||
text-decoration-color: var(--vp-c-brand-1);
|
||||
-webkit-text-decoration-color: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
.vp-doc .custom-block a {
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 4px;
|
||||
text-decoration-style: solid;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 4px;
|
||||
text-decoration-style: solid;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background-color: var(--vp-button-brand-bg);
|
||||
background-color: var(--vp-button-brand-bg);
|
||||
}
|
||||
|
||||
/* Make clicks pass-through */
|
||||
#nprogress {
|
||||
pointer-events: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
#nprogress .bar {
|
||||
background: var(--vp-c-brand-1);
|
||||
position: fixed;
|
||||
z-index: 1031;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
background: var(--vp-c-brand-1);
|
||||
position: fixed;
|
||||
z-index: 1031;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
/* Fancy blur effect */
|
||||
#nprogress .peg {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 100px;
|
||||
height: 100%;
|
||||
box-shadow: 0 0 10px var(--vp-c-brand-1),
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 100px;
|
||||
height: 100%;
|
||||
box-shadow:
|
||||
0 0 10px var(--vp-c-brand-1),
|
||||
0 0 5px var(--vp-c-brand-1);
|
||||
opacity: 1;
|
||||
opacity: 1;
|
||||
|
||||
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
||||
-ms-transform: rotate(3deg) translate(0px, -4px);
|
||||
transform: rotate(3deg) translate(0px, -4px);
|
||||
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
||||
-ms-transform: rotate(3deg) translate(0px, -4px);
|
||||
transform: rotate(3deg) translate(0px, -4px);
|
||||
}
|
||||
|
||||
#nprogress .spinner {
|
||||
display: block;
|
||||
position: fixed;
|
||||
z-index: 1031;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
display: block;
|
||||
position: fixed;
|
||||
z-index: 1031;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
}
|
||||
|
||||
#nprogress .spinner-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
box-sizing: border-box;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
box-sizing: border-box;
|
||||
|
||||
border: solid 2px transparent;
|
||||
border-top-color: var(--vp-c-brand);
|
||||
border-left-color: var(--vp-c-brand);
|
||||
border-radius: 50%;
|
||||
border: solid 2px transparent;
|
||||
border-top-color: var(--vp-c-brand);
|
||||
border-left-color: var(--vp-c-brand);
|
||||
border-radius: 50%;
|
||||
|
||||
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
||||
animation: nprogress-spinner 400ms linear infinite;
|
||||
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
||||
animation: nprogress-spinner 400ms linear infinite;
|
||||
}
|
||||
|
||||
.nprogress-custom-parent {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nprogress-custom-parent #nprogress .spinner,
|
||||
.nprogress-custom-parent #nprogress .bar {
|
||||
position: absolute;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@-webkit-keyframes nprogress-spinner {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes nprogress-spinner {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.info.custom-block {
|
||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
|
||||
}
|
||||
|
||||
.tip.custom-block {
|
||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg==');
|
||||
}
|
||||
|
||||
.warning.custom-block {
|
||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFsZXJ0LXRyaWFuZ2xlIj48cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIi8+PHBhdGggZD0iTTEyIDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4=');
|
||||
}
|
||||
|
||||
.danger.custom-block {
|
||||
--icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNrdWxsIj48Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxIi8+PHBhdGggZD0iTTggMjB2Mmg4di0yIi8+PHBhdGggZD0ibTEyLjUgMTctLjUtMS0uNSAxaDF6Ii8+PHBhdGggZD0iTTE2IDIwYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjAiLz48L3N2Zz4=');
|
||||
}
|
||||
|
||||
.custom-block-title {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.custom-block-title::before {
|
||||
content: '';
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
-webkit-mask: var(--icon) no-repeat;
|
||||
mask: var(--icon) no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
background-color: currentColor;
|
||||
color: inherit;
|
||||
}
|
||||
|
6
docs/.vitepress/vue-shim.d.ts
vendored
6
docs/.vitepress/vue-shim.d.ts
vendored
@ -1,5 +1,5 @@
|
||||
/* eslint-disable ts/consistent-type-imports */
|
||||
declare module "*.vue" {
|
||||
const component: import("vue").Component;
|
||||
export default component;
|
||||
declare module '*.vue' {
|
||||
const component: import('vue').Component
|
||||
export default component
|
||||
}
|
||||
|
@ -1,15 +1,29 @@
|
||||
---
|
||||
title: Download
|
||||
description: Sites and everything for Direct downloads.
|
||||
tags:
|
||||
- downloads
|
||||
- torrents
|
||||
- repacks
|
||||
- linux
|
||||
---
|
||||
|
||||
# Download
|
||||
|
||||
Sites and everything for Direct downloads.
|
||||
|
||||
## Direct download sites
|
||||
|
||||
Direct downloads are normal downloads from a server, being safer and not requiring a VPN. You may
|
||||
need a VPN to access blocked file hosts (like Rapidgator in some EU countries). Check the
|
||||
[download managers section](software.md#download-managers) for help managing your downloads.
|
||||
Direct downloads are normal downloads from a server, being safer and not
|
||||
requiring a VPN. You may need a VPN to access blocked file hosts (like
|
||||
Rapidgator in some EU countries). Check the
|
||||
[download managers section](/software#download-managers) for help managing
|
||||
your downloads.
|
||||
|
||||
- [🌟 CS.RIN.RU](https://cs.rin.ru/forum) - Game piracy forum / Registration
|
||||
required / [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / Password: `cs.rin.ru`
|
||||
required /
|
||||
[Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) /
|
||||
Password: `cs.rin.ru`
|
||||
- [🌟 SteamRIP](https://steamrip.com) - Steam games
|
||||
- [🌟 GOG Games](https://gog-games.to) - GOG Games
|
||||
- [🌟 GamesDrive](https://gamesdrive.net)
|
||||
@ -17,17 +31,21 @@ need a VPN to access blocked file hosts (like Rapidgator in some EU countries).
|
||||
- [Ova Games](https://www.ovagames.com) / Password: `www.ovagames.com`
|
||||
- [GLOAD](https://gload.to/pc) - Scene & P2P releases
|
||||
- [GameDrive](https://gamedrive.org)
|
||||
- [Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games & Scene releases forum /
|
||||
Registration required
|
||||
- [Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games & Scene
|
||||
releases forum / Registration required
|
||||
- [ReleaseBB](https://rlsbb.ru/category/games/pc) - Scene and P2P releases
|
||||
- [Games 4 You](https://g4u.to) - Slow downloads for free users / Password: `404`
|
||||
- [Games 4 You](https://g4u.to) - Slow downloads for free users / Password:
|
||||
`404`
|
||||
- [Downloadha](https://www.downloadha.com/category/%D8%A8%D8%A7%D8%B2%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-pc-computer-game) -
|
||||
Slow downloads / [Translator](useful.md#translator) / Password: `www.downloadha.com`
|
||||
Slow downloads / [Translator](useful.md#translator) / Password:
|
||||
`www.downloadha.com`
|
||||
- [Scnlog](https://scnlog.me/games) - Scene releases
|
||||
- [Gamdie](https://gamdie.com) - Indie games
|
||||
- [Leechinghell](http://www.leechinghell.pw) - LAN multiplayer games
|
||||
- [Wendy's Forum](https://wendysforum.net/index.php) - HOGs / Registration required
|
||||
- [AppCake](https://iphonecake.com/index.php?device=0&p=1&c=8) - macOS & iOS games & apps
|
||||
- [Wendy's Forum](https://wendysforum.net/index.php) - HOGs / Registration
|
||||
required
|
||||
- [AppCake](https://iphonecake.com/index.php?device=0&p=1&c=8) - macOS & iOS
|
||||
games & apps
|
||||
- [NMac](https://nmac.to/category/games) - macOS games & apps
|
||||
- [AppKed](https://www.macbed.com/games) - macOS games & apps
|
||||
- [Cmacked](https://cmacked.com) - macOS games & apps
|
||||
@ -40,55 +58,61 @@ need a VPN to access blocked file hosts (like Rapidgator in some EU countries).
|
||||
- [RB Mods](https://www.rockmods.net) - Android apps
|
||||
- [ARMGDDN Games](https://t.me/ARMGDDNGames) - PCVR games
|
||||
- [My Abandonware](https://www.myabandonware.com) - Old games
|
||||
- [Old-Games.RU](https://www.old-games.ru/catalog/) - Old games / Switch to English in the top-right corner
|
||||
- [Old-Games.RU](https://www.old-games.ru/catalog/) - Old games / Switch to
|
||||
English in the top-right corner
|
||||
- [F95zone](https://f95zone.to) - NSFW games / Registration required
|
||||
- [Software Library: MS-DOS Games](https://archive.org/details/softwarelibrary_msdos_games?and[]=mediatype%3A%22software%22) -
|
||||
MS-DOS games
|
||||
- [Prism Launcher](https://prismlauncher.org) -
|
||||
Minecraft / [Play without a legit account](https://github.com/antunnitraj/Prism-Launcher-PolyMC-Offline-Bypass)
|
||||
- [Prism Launcher](https://prismlauncher.org) - Minecraft /
|
||||
[Play without a legit account](https://github.com/antunnitraj/Prism-Launcher-PolyMC-Offline-Bypass)
|
||||
- [Moriya Shrine](https://moriyashrine.org) - Touhou
|
||||
|
||||
## Torrent sites
|
||||
|
||||
Torrents are P2P downloads from other users, without servers. You'll need a VPN to torrent safely
|
||||
and avoid ISP copyright notices, unless your country tolerates piracy. Check the
|
||||
[VPNs section](software.md#vpns) for more info.
|
||||
Torrents are P2P downloads from other users, without servers. You'll need a VPN
|
||||
to torrent safely and avoid ISP copyright notices, unless your country tolerates
|
||||
piracy. Check the [VPNs section](software.md#vpns) for more info.
|
||||
|
||||
- [🌟 1337x](https://1337x.to/sub/10/0/) / [Safe uploaders (except FileCR)](https://www.reddit.com/r/Piracy/comments/nudfgn/me_after_reading_the_megathread/h0yr0q6/?context=3) /
|
||||
[Torrent Page Improvements](https://greasyfork.org/scripts/33379-1337x-torrent-page-improvements) /
|
||||
[Torrent and Magnet Links](https://greasyfork.org/scripts/420754-1337x-torrent-and-magnet-links) /
|
||||
- [🌟 1337x](https://1337x.to/sub/10/0/) /
|
||||
[Safe uploaders (except FileCR)](https://www.reddit.com/r/Piracy/comments/nudfgn/me_after_reading_the_megathread/h0yr0q6/?context=3)
|
||||
/
|
||||
[Torrent Page Improvements](https://greasyfork.org/scripts/33379-1337x-torrent-page-improvements)
|
||||
/
|
||||
[Torrent and Magnet Links](https://greasyfork.org/scripts/420754-1337x-torrent-and-magnet-links)
|
||||
/
|
||||
[Convert Timestamps to Relative Format](https://greasyfork.org/scripts/421635-1337x-convert-torrent-timestamps-to-relative-format)
|
||||
/
|
||||
[Subtitle Download Links to TV and Movie Torrents](https://greasyfork.org/scripts/29467-1337x-subtitle-download-links-to-tv-and-movie-torrents)
|
||||
- [🌟 RuTracker](https://rutracker.org/forum/index.php?c=19) / [Translator](useful.md#translator)
|
||||
- [🌟 RuTracker](https://rutracker.org/forum/index.php?c=19) /
|
||||
[Translator](useful.md#translator)
|
||||
- [Rutor](http://rutor.info/games) / [Translator](useful.md#translator)
|
||||
- [Rustorka](https://rustorka.com/forum/index.php?c=6) / [Translator](useful.md#translator)
|
||||
- [Rustorka](https://rustorka.com/forum/index.php?c=6) /
|
||||
[Translator](useful.md#translator)
|
||||
- [Mac Torrents](https://www.torrentmac.net/category/games) - macOS games & apps
|
||||
- [Mac Torrent](https://www.mactorrents.is/macos-games) - macOS games & apps
|
||||
|
||||
## Repacks
|
||||
|
||||
Repacks are compressed games for low-bandwidth users, but installing them takes time due to file
|
||||
decompression.
|
||||
Repacks are compressed games for low-bandwidth users, but installing them takes
|
||||
time due to file decompression.
|
||||
|
||||
- [🌟 DODI Repacks](https://dodi-repacks.site)
|
||||
- [🌟 FitGirl Repacks](https://fitgirl-repacks.site)
|
||||
- [🌟 ElAmigos](https://elamigos.site) - Use GameDrive's, GLOAD's or
|
||||
Ova Games' mirrors for free fast downloads.
|
||||
- [🌟 ElAmigos](https://elamigos.site) - Use GameDrive's, GLOAD's or Ova Games'
|
||||
mirrors for free fast downloads.
|
||||
- [🌟 KaOsKrew](https://kaoskrew.org/viewforum.php?f=13&sid=c2dac73979171b67f4c8b70c9c4c72fb)
|
||||
- [Chovka](http://rutor.info/browse/0/8/1642915/0) / [2](https://repack.info)
|
||||
- [R.G. Mechanics](https://tapochek.net/viewforum.php?f=808)
|
||||
- [Xatab](https://byxatab.org)
|
||||
- [ScOOt3r Repacks](https://game-repack.site/scooter)
|
||||
- [Masquerade Repacks](https://web.archive.org/web/20220616203326/https://masquerade.site) - Repacks
|
||||
from up to May 2022.
|
||||
Moved to KaOsKrew in June 2022.
|
||||
- [Masquerade Repacks](https://web.archive.org/web/20220616203326/https://masquerade.site) -
|
||||
Repacks from up to May 2022. Moved to KaOsKrew in June 2022.
|
||||
- [FS-Repacks](https://www.fluxyrepacks.site)
|
||||
- [Tiny Repacks](https://www.tiny-repacks.win)
|
||||
- [ZAZIX](https://1337x.to/user/ZAZIX/)
|
||||
- [Gnarly Repacks](https://gnarly-repacks.site) - Emulated console games
|
||||
- [KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally has lossy, or compressed repacks) /
|
||||
[Translator](useful.md#translator)
|
||||
- [KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally
|
||||
has lossy, or compressed repacks) / [Translator](useful.md#translator)
|
||||
- [M4CKD0GE Repacks](https://m4ckd0ge-repacks.site)
|
||||
- [MagiPack Games](https://www.magipack.games) - Old games
|
||||
- [The Collection Chamber](https://collectionchamber.blogspot.com) - Old games
|
||||
|
@ -1,7 +1,12 @@
|
||||
---
|
||||
title: Emulation
|
||||
description: ROM sites, emulators, discussion pages and more.
|
||||
---
|
||||
|
||||
# Emulation
|
||||
|
||||
ROM sites, emulators, discussion pages and more.
|
||||
|
||||
## ROM sites
|
||||
|
||||
- [🌟 r/Roms Megathread](https://r-roms.github.io)
|
||||
@ -13,43 +18,47 @@ title: Emulation
|
||||
- [The ROM Depot](https://theromdepot.com) / Registration required
|
||||
- [Emuparadise](https://www.emuparadise.me/roms-isos-games.php) /
|
||||
[Download workaround guide](https://lemmy.world/post/3061617)
|
||||
- [NoPayStation](https://nopaystation.com) - PlayStation 1, Vita, 3, and Portable games
|
||||
- [NoPayStation](https://nopaystation.com) - PlayStation 1, Vita, 3, and
|
||||
Portable games
|
||||
- [Ziperto](https://www.ziperto.com) - Nintendo games
|
||||
- [NSW2u](https://nsw2u.com) - Nintendo Switch games
|
||||
- [NXBrew](https://nxbrew.com) - Nintendo Switch games
|
||||
|
||||
## Emulators
|
||||
|
||||
:::tip
|
||||
:::tip
|
||||
:exclamation: See the
|
||||
**[Emulation General Wiki](https://emulation.gametechwiki.com/index.php/Main_Page#Emulators)** for
|
||||
more. Some emulators require additional files (keys or BIOS) and are marked with an *. You can get
|
||||
them [here](https://r-roms.github.io/megathread/misc/#bios-files).
|
||||
**[Emulation General Wiki](https://emulation.gametechwiki.com/index.php/Main_Page#Emulators)**
|
||||
for more. Some emulators require additional files (keys or BIOS) and are marked
|
||||
with an :gear:. You can get them
|
||||
[here](https://r-roms.github.io/megathread/misc/#bios-files).
|
||||
:::
|
||||
|
||||
- [RetroArch](https://retroarch.com)* - Multiple consoles games / Avoid the melonDS, PPSSPP, Dolphin, and Citra cores
|
||||
- [Ares](https://ares-emu.net)* - Multiple consoles games / Avoid the Neo Geo, PlayStation 1, and Game Boy Advance cores
|
||||
- [Ryujinx](https://ryujinx.org)* / [Torzu](https://github.com/litucks/torzu)* ([Android](https://github.com/sudachi-emu/sudachi)) -
|
||||
Nintendo
|
||||
Switch games
|
||||
- [:gear: RetroArch](https://retroarch.com) - Multiple consoles games / Avoid
|
||||
the melonDS, PPSSPP, Dolphin, and Citra cores
|
||||
- [:gear: Ares](https://ares-emu.net) - Multiple consoles games / Avoid the Neo
|
||||
Geo, PlayStation 1, and Game Boy Advance cores
|
||||
- [:gear: Ryujinx](https://ryujinx.org) /
|
||||
[:gear: Torzu](https://github.com/litucks/torzu)
|
||||
([Android](https://github.com/sudachi-emu/sudachi)) - Nintendo Switch games
|
||||
- [Cemu](https://cemu.info) - Wii U games
|
||||
- [Vita3K](https://vita3k.org) - PlayStation Vita games
|
||||
- [Lime3DS](https://github.com/Lime3DS/Lime3DS) - Nintendo
|
||||
3DS games
|
||||
- [Lime3DS](https://github.com/Lime3DS/Lime3DS) - Nintendo 3DS games
|
||||
- [Dolphin Emulator](https://dolphin-emu.org) - Wii & GameCube games
|
||||
- [RPCS3](https://rpcs3.net) - PlayStation 3 games
|
||||
- [xenia](https://xenia.jp) - Xbox 360 games
|
||||
- [MAME](https://www.mamedev.org)* - Arcade games
|
||||
- [:gear: MAME](https://www.mamedev.org) - Arcade games
|
||||
- [PPSSPP](https://www.ppsspp.org) - PlayStation Portable games
|
||||
- [melonDS](https://melonds.kuribo64.net) / [DeSmuME](https://desmume.org) - Nintendo DS games
|
||||
- [melonDS](https://melonds.kuribo64.net) / [DeSmuME](https://desmume.org) -
|
||||
Nintendo DS games
|
||||
- [No$GBA](https://www.nogba.com) - Nintendo DS & Game Boy Advance games
|
||||
- [xemu](https://xemu.app)* - Original Xbox games
|
||||
- [:gear: xemu](https://xemu.app) - Original Xbox games
|
||||
- [mGBA](https://mgba.io) - Game Boy Advance games
|
||||
- [PCSX2](https://pcsx2.net)* - PlayStation 2 games
|
||||
- [:gear: PCSX2](https://pcsx2.net) - PlayStation 2 games
|
||||
- [Parallel Launcher](https://parallel-launcher.ca) - Nintendo 64 games
|
||||
- [DuckStation](https://www.duckstation.org)* - PlayStation 1 games
|
||||
- [bsnes](https://github.com/bsnes-emu/bsnes) / [Snes9x](https://www.snes9x.com) - Super Nintendo Entertainment System
|
||||
games
|
||||
- [:gear: DuckStation](https://www.duckstation.org) - PlayStation 1 games
|
||||
- [bsnes](https://github.com/bsnes-emu/bsnes) /
|
||||
[Snes9x](https://www.snes9x.com) - Super Nintendo Entertainment System games
|
||||
|
||||
## Related subreddits
|
||||
|
||||
|
@ -3,62 +3,70 @@ title: Glossary
|
||||
description: Answers to some of the most commonly asked questions.
|
||||
---
|
||||
|
||||
This page helps summarize over some basic topics on the piracy scene.
|
||||
This also serves as
|
||||
referential material to gloss over quickly.
|
||||
# Glossary
|
||||
|
||||
This page helps summarize over some basic topics on the piracy scene. This also
|
||||
serves as referential material to gloss over quickly.
|
||||
|
||||
## Terms
|
||||
|
||||
::: tip What is the Scene? And P2P?
|
||||
The Scene is an underground community of people who crack and
|
||||
share copyrighted material. They have strict rules that all scene members have to abide. P2P are
|
||||
independent crackers who don't follow the [Scene rules](https://scenerules.org).
|
||||
:::tip What is the Scene? And P2P?
|
||||
The Scene is an underground community of
|
||||
people who crack and share copyrighted material. They have strict rules that all
|
||||
scene members have to abide. P2P are independent crackers who don't follow the
|
||||
[Scene rules](https://scenerules.org).
|
||||
:::
|
||||
|
||||
::: tip What’re NFOs?
|
||||
NFOs are like a readme.txt that Scene makes on release. It gives you
|
||||
instructions, a general description of the game and some additional information.
|
||||
:::tip What’re NFOs?
|
||||
NFOs are like a readme.txt that Scene makes on release. It
|
||||
gives you instructions, a general description of the game and some additional
|
||||
information.
|
||||
:::
|
||||
|
||||
::: tip Why does X site have so many ads?
|
||||
**Use an adblocker**. Ads keep the websites running, but
|
||||
sometimes the ad ruins the experience or even link malware. You can take these steps if you want an
|
||||
ad-free experience:
|
||||
:::tip Why does X site have so many ads?
|
||||
**Use an adblocker**. Ads keep the
|
||||
websites running, but sometimes the ad ruins the experience or even link
|
||||
malware. You can take these steps if you want an ad-free experience:
|
||||
|
||||
### Android
|
||||
|
||||
Install [**Firefox**](https://play.google.com/store/apps/details?id=org.mozilla.firefox) and add
|
||||
[**uBlock Origin**](https://addons.mozilla.org/android/addon/ublock-origin). This should be more
|
||||
than enough. If you want system-wide support, try
|
||||
Install
|
||||
[**Firefox**](https://play.google.com/store/apps/details?id=org.mozilla.firefox)
|
||||
and add
|
||||
[**uBlock Origin**](https://addons.mozilla.org/android/addon/ublock-origin).
|
||||
This should be more than enough. If you want system-wide support, try
|
||||
[**AdGuard**](https://adguard.com/adguard-android/overview.html) or
|
||||
[**NextDNS**](https://nextdns.io). You can watch [**this video**](https://youtu.be/WUG57ynLb8I) if
|
||||
you need guidance.
|
||||
[**NextDNS**](https://nextdns.io). You can watch
|
||||
[**this video**](https://youtu.be/WUG57ynLb8I) if you need guidance.
|
||||
|
||||
### PC
|
||||
|
||||
Install [**uBlock Origin**](https://ublockorigin.com) in your browser and you're done! If you want a
|
||||
system-wide solution, you _can_ use [**NextDNS**](https://nextdns.io), but it won't be as effective
|
||||
as uBlock Origin. You can also use [Bypass All Shortlinks](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated)
|
||||
or
|
||||
[Bypass.city](https://bypass.city) to _bypass_ redirects.
|
||||
Install [**uBlock Origin**](https://ublockorigin.com) in your browser and you're
|
||||
done! If you want a system-wide solution, you _can_ use
|
||||
[**NextDNS**](https://nextdns.io), but it won't be as effective as uBlock
|
||||
Origin. You can also use
|
||||
[Bypass All Shortlinks](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated)
|
||||
or [Bypass.city](https://bypass.city) to _bypass_ redirects.
|
||||
|
||||
### iOS
|
||||
|
||||
[**NextDNS**](https://nextdns.io) should cover everything for system-wide ads & trackers. You can
|
||||
also try [**AhaDNS**](https://ahadns.com).
|
||||
[**NextDNS**](https://nextdns.io) should cover everything for system-wide ads &
|
||||
trackers. You can also try [**AhaDNS**](https://ahadns.com).
|
||||
:::
|
||||
|
||||
::: tip Do I need to use VPN while downloading?
|
||||
The necessity of using a VPN depends on the method
|
||||
of downloading. For direct downloads, a VPN is typically unnecessary. However, if you're engaging in
|
||||
peer-to-peer (P2P) activities such as torrenting, it is advisable to employ a VPN for enhanced
|
||||
security and privacy. Additionally, the legal ramifications in your area play a crucial role; if the
|
||||
consequences are lenient, you might opt to forgo using a VPN altogether.
|
||||
:::tip Do I need to use VPN while downloading?
|
||||
The necessity of using a VPN
|
||||
depends on the method of downloading. For direct downloads, a VPN is typically
|
||||
unnecessary. However, if you're engaging in peer-to-peer (P2P) activities such
|
||||
as torrenting, it is advisable to employ a VPN for enhanced security and
|
||||
privacy. Additionally, the legal ramifications in your area play a crucial role;
|
||||
if the consequences are lenient, you might opt to forgo using a VPN altogether.
|
||||
:::
|
||||
|
||||
::: tip Why is my download so slow?
|
||||
Use a download manager. Some websites impose file transfer
|
||||
limits for a single thread, thereby restricting download speeds. Download managers overcome this
|
||||
limitation by leveraging multiple threads for downloading, resulting in faster download speeds. We've listed some
|
||||
recommended ones [here](useful.md).
|
||||
:::tip Why is my download so slow?
|
||||
Use a download manager. Some websites impose
|
||||
file transfer limits for a single thread, thereby restricting download speeds.
|
||||
Download managers overcome this limitation by leveraging multiple threads for
|
||||
downloading, resulting in faster download speeds. We've listed some recommended
|
||||
ones [here](/useful).
|
||||
:::
|
||||
|
@ -18,11 +18,11 @@ features:
|
||||
- icon: 🌐
|
||||
title: Translations
|
||||
details:
|
||||
The wiki is elegantly translated into multiple languages, ensuring you can explore its content
|
||||
with utmost ease and comfort!
|
||||
The wiki is elegantly translated into multiple languages, ensuring you can
|
||||
explore its content with utmost ease and comfort!
|
||||
- icon: 🌟
|
||||
title: Favorite Picks
|
||||
details:
|
||||
We regularly curate the finest sites for you and emphasize their prominence, so you can have
|
||||
peace of mind.
|
||||
We regularly curate the finest sites for you and emphasize their
|
||||
prominence, so you can have peace of mind.
|
||||
---
|
||||
|
@ -1,51 +1,58 @@
|
||||
---
|
||||
title: Linux
|
||||
description: Everything regarding piracy on Linux
|
||||
description: Everything regarding piracy on Linux.
|
||||
tags:
|
||||
- linux
|
||||
---
|
||||
|
||||
# Linux
|
||||
|
||||
Everything regarding piracy on Linux.
|
||||
|
||||
## Downloading
|
||||
|
||||
### Direct download sites
|
||||
|
||||
- [🌟 Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games and Scene releases forum /
|
||||
Registration required
|
||||
- [🌟 KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally has lossy, or compressed repacks) /
|
||||
- [🌟 Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games and Scene
|
||||
releases forum / Registration required
|
||||
- [🌟 KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum
|
||||
(occasionally has lossy, or compressed repacks) /
|
||||
[Translator](useful.md#translator)
|
||||
- [🌟 CS.RIN.RU](https://cs.rin.ru/forum) - Game piracy forum / Registration
|
||||
required / [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / Password: `cs.rin.ru`
|
||||
required /
|
||||
[Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) /
|
||||
Password: `cs.rin.ru`
|
||||
|
||||
### Torrent sites
|
||||
|
||||
- [🌟 johncena141](https://1337x.to/user/johncena141/) - Linux games
|
||||
- [🌟 RuTracker](https://rutracker.org/forum/viewforum.php?f=899) - Linux games /
|
||||
[Translator](useful.md#translator)
|
||||
- [🌟 RuTracker](https://rutracker.org/forum/viewforum.php?f=899) - Linux games
|
||||
/ [Translator](useful.md#translator)
|
||||
|
||||
## Software
|
||||
|
||||
### Launchers
|
||||
|
||||
- [🌟 Lutris](https://lutris.net) - Game launcher
|
||||
- [🌟 Heroic Games Launcher](https://heroicgameslauncher.com) - Epic, GOG, and Amazon Prime Games
|
||||
launcher
|
||||
- [🌟 Heroic Games Launcher](https://heroicgameslauncher.com) - Epic, GOG, and
|
||||
Amazon Prime Games launcher
|
||||
- [Minigalaxy](https://sharkwouter.github.io/minigalaxy) - GOG client
|
||||
- [Bottles](https://usebottles.com) - Windows software manager
|
||||
|
||||
### Tools
|
||||
|
||||
- [MangoHud](https://github.com/flightlessmango/MangoHud) - Overlay for monitoring
|
||||
performance / [GUI](https://github.com/benjamimgois/goverlay)
|
||||
- [MangoHud](https://github.com/flightlessmango/MangoHud) - Overlay for
|
||||
monitoring performance / [GUI](https://github.com/benjamimgois/goverlay)
|
||||
- [ProtonUp-Qt](https://github.com/DavidoTek/ProtonUp-Qt) - Proton-GE manager
|
||||
- [Winetricks](https://github.com/Winetricks/winetricks) - Wine fixes & tweaks
|
||||
|
||||
## Guides
|
||||
|
||||
- [🌟 Linux Gaming Wiki](https://linux-gaming.kwindu.eu/index.php)
|
||||
- [🌟
|
||||
Installing repacks with Lutris](https://www.reddit.com/r/LinuxCrackSupport/comments/yqfirv/how_to_install_fitgirl_or_dodi_windows_repacks_in) / [Fix for DLL errors](https://reddit.com/r/LinuxCrackSupport/comments/tirarp/psa_when_installing_repacks_with_custom_wine)
|
||||
- [🌟 Installing repacks with Lutris](https://www.reddit.com/r/LinuxCrackSupport/comments/yqfirv/how_to_install_fitgirl_or_dodi_windows_repacks_in)
|
||||
/
|
||||
[Fix for DLL errors](https://reddit.com/r/LinuxCrackSupport/comments/tirarp/psa_when_installing_repacks_with_custom_wine)
|
||||
|
||||
::: info
|
||||
It's recommended to get games from DODI over FitGirl.
|
||||
:::
|
||||
|
||||
## Related Subreddits
|
||||
|
||||
|
@ -1,33 +1,52 @@
|
||||
---
|
||||
title: Software
|
||||
description: Software to enhance your piracy experience.
|
||||
---
|
||||
|
||||
# Software
|
||||
|
||||
Software to enhance your piracy experience.
|
||||
|
||||
## Download managers
|
||||
|
||||
- [🌟 Internet Download Manager](https://www.internetdownloadmanager.com) / [Crack](https://cracksurl.com/internet-download-manager) & [instructions](https://rentry.org/installidm) / [Activation script](https://github.com/lstprjct/IDM-Activation-Script) / [Trial reset](https://github.com/J2TEAM/idm-trial-reset) / [IDMHelper](https://github.com/unamer/IDMHelper)
|
||||
- [🌟 Internet Download Manager](https://www.internetdownloadmanager.com) /
|
||||
[Crack](https://cracksurl.com/internet-download-manager) &
|
||||
[instructions](https://rentry.org/installidm) /
|
||||
[Activation script](https://github.com/lstprjct/IDM-Activation-Script) /
|
||||
[Trial reset](https://github.com/J2TEAM/idm-trial-reset) /
|
||||
[IDMHelper](https://github.com/unamer/IDMHelper)
|
||||
- [🌟 JDownloader](https://jdownloader.org/jdownloader2) - Detects most file
|
||||
hosts / [Enhancement guide](https://lemmy.world/post/3098414) / [Offline CAPTCHA solver](https://github.com/cracker0dks/CaptchaSolver) / [Dark theme](https://support.jdownloader.org/Knowledgebase/Article/View/dark-mode-theme)
|
||||
hosts / [Enhancement guide](https://lemmy.world/post/3098414) /
|
||||
[Offline CAPTCHA solver](https://github.com/cracker0dks/CaptchaSolver) /
|
||||
[Dark theme](https://support.jdownloader.org/Knowledgebase/Article/View/dark-mode-theme)
|
||||
- [🌟 Xtreme Download Manager](https://xtremedownloadmanager.com)
|
||||
- [Gopeed](https://gopeed.com) / [Plugins](https://github.com/search?q=topic%3Agopeed-extension&type=repositories)
|
||||
- [imFile](https://github.com/imfile-io/imfile-desktop) or [Motrix](https://motrix.app)
|
||||
- [Aria2](https://aria2.github.io) - Terminal download
|
||||
manager / [GUI](https://persepolisdm.github.io) / [Web UI](https://github.com/ziahamza/webui-aria2)
|
||||
- [Free Download Manager](https://www.freedownloadmanager.org) / [Video downloader](https://github.com/meowcateatrat/elephant)
|
||||
- [Gopeed](https://gopeed.com) /
|
||||
[Plugins](https://github.com/search?q=topic%3Agopeed-extension&type=repositories)
|
||||
- [imFile](https://github.com/imfile-io/imfile-desktop) or
|
||||
[Motrix](https://motrix.app)
|
||||
- [Aria2](https://aria2.github.io) - Terminal download manager /
|
||||
[GUI](https://persepolisdm.github.io) /
|
||||
[Web UI](https://github.com/ziahamza/webui-aria2)
|
||||
- [Free Download Manager](https://www.freedownloadmanager.org) /
|
||||
[Video downloader](https://github.com/meowcateatrat/elephant)
|
||||
|
||||
## Torrent clients
|
||||
|
||||
- [🌟 qBittorrent](https://www.qbittorrent.org) / [Enhanced edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition) / [Dark theme](https://draculatheme.com/qbittorrent)
|
||||
- [🌟 qBittorrent](https://www.qbittorrent.org) /
|
||||
[Enhanced edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition) /
|
||||
[Dark theme](https://draculatheme.com/qbittorrent)
|
||||
- [🌟 Deluge](https://dev.deluge-torrent.org)
|
||||
- [🌟 Transmission](https://transmissionbt.com)
|
||||
- [Motrix](https://motrix.app)
|
||||
- [Tixati](https://tixati.com)
|
||||
- [PicoTorrent](https://picotorrent.org)
|
||||
- [BiglyBT](https://www.biglybt.com)
|
||||
- [LibreTorrent](https://github.com/proninyaroslav/libretorrent) - Android devices
|
||||
- [LibreTorrent](https://github.com/proninyaroslav/libretorrent) - Android
|
||||
devices
|
||||
|
||||
## VPNs
|
||||
|
||||
::: danger
|
||||
:::danger
|
||||
**Tor Browser isn't a VPN, no protection for torrenting!**
|
||||
:::
|
||||
|
||||
|
@ -1,25 +1,34 @@
|
||||
---
|
||||
title: Unsafe
|
||||
description: Things you should always avoid using.
|
||||
---
|
||||
|
||||
## Untrusted sites and uploaders
|
||||
# Unsafe
|
||||
|
||||
You can just use
|
||||
the [FMHY Unsafe Sites/Software](https://fmhy.net/unsafesites) [adblock filter](https://windowsaurora.github.io/FMHYFilterlist/site/index.html)
|
||||
on uBlacklist (more efficient) or uBlock Origin to block most of the sites mentioned here and more. Follow
|
||||
[this guide](https://iorate.github.io/ublacklist/docs/advanced-features#subscription) to add the
|
||||
custom filter to uBlacklist (put
|
||||
Things you should always avoid using.
|
||||
|
||||
:::tip
|
||||
You can just use the
|
||||
[FMHY Unsafe Sites/Software](https://fmhy.net/unsafesites)
|
||||
[adblock filter](https://windowsaurora.github.io/FMHYFilterlist/site/index.html)
|
||||
on uBlacklist (more efficient) or uBlock Origin to block most of the sites
|
||||
mentioned here and more. Follow
|
||||
[this guide](https://iorate.github.io/ublacklist/docs/advanced-features#subscription)
|
||||
to add the custom filter to uBlacklist (put
|
||||
[this link](https://raw.githubusercontent.com/privateersclub/wiki/master/unsafe_uBlacklist.txt)
|
||||
under "URL") and
|
||||
[this guide](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt)
|
||||
to add it to uBlock Origin (use
|
||||
[this](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt) under
|
||||
"Import…").
|
||||
[this](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt)
|
||||
under "Import…").
|
||||
:::
|
||||
|
||||
:::danger
|
||||
**SCENE GROUPS HAVE NO SITES!
|
||||
Sites with a Scene group name in the URL are fake.
|
||||
Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib sites](https://redd.it/16xtm67).**
|
||||
## Untrusted sites and uploaders
|
||||
|
||||
:::danger
|
||||
**SCENE GROUPS HAVE NO SITES! Sites with a Scene group name in the URL
|
||||
are fake. Also beware the [fake 1337x sites](https://redd.it/117fq8t) and
|
||||
[fake Z-Lib sites](https://redd.it/16xtm67).**
|
||||
:::
|
||||
|
||||
- AGFY - Scam links
|
||||
@ -27,11 +36,13 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site
|
||||
- AliPak/AliTPB/b4tman - Constantly caught with malware.
|
||||
- AllPCWorld - Uploaded KMS Matrix, a known malware.
|
||||
- anr285
|
||||
- AppValley/Ignition/TutuBox - [DDoS attacks](https://github.com/nbats/FMHYedit/pull/307) history.
|
||||
- AppValley/Ignition/TutuBox -
|
||||
[DDoS attacks](https://github.com/fmhy/FMHYedit/pull/307) history.
|
||||
- ApunKaGames
|
||||
- BBRepacks - Caught with malware.
|
||||
- Corepack - Stolen releases and has been caught with malware.
|
||||
- CNET/Download.com/Softonic/ZDNET - [Adware](https://www.reddit.com/r/software/comments/9s7wyb/whats_the_deal_with_sites_like_cnet_softonic_and/e8mtye9)
|
||||
- CNET/Download.com/Softonic/ZDNET -
|
||||
[Adware](https://www.reddit.com/r/software/comments/9s7wyb/whats_the_deal_with_sites_like_cnet_softonic_and/e8mtye9)
|
||||
history.
|
||||
- CracksHash - Caught with [malware](https://redd.it/lklst7).
|
||||
- Crohasit - Is affiliated to SteamUnlocked owners.
|
||||
@ -43,24 +54,26 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site
|
||||
- GameFabrique - IGG Games uploads and
|
||||
[adware installers](https://www.reddit.com/r/FREEMEDIAHECKYEAH/comments/10bh0h9/unsafe_sites_software_thread/jhi7u0h).
|
||||
- GetIntoMac/GetIntoPC - Constantly caught with malware.
|
||||
- GOG Unlocked/RomsUnlocked/SteamUnlocked - [IGG Games and nosTEAM](https://i.ibb.co/VgW2ymY/YUnRNpN.png) uploads,
|
||||
malicious
|
||||
redirect ads, and slow downloads.
|
||||
- `GOG`/`Roms`/`Steam` Unlocked -
|
||||
[IGG Games and nosTEAM](https://i.ibb.co/VgW2ymY/YUnRNpN.png) uploads,
|
||||
malicious redirect ads, and slow downloads.
|
||||
- haxNode
|
||||
- IGG Games/GamesTorrents/LoadGames/PCGamesTorrents - Doxed mercs213 (Good Old Downloads owner), exploits you for ad
|
||||
revenue, and
|
||||
puts its own DRM, crypto miner, and malware in games.
|
||||
- `IGG Games/GamesTorrents/LoadGames/PCGamesTorrents` - Doxed mercs213 (Good Old
|
||||
Downloads owner), exploits you for ad revenue, and puts its own DRM, crypto
|
||||
miner, and malware in games.
|
||||
- IGI30 - Caught with malware.
|
||||
- KaranPC - Constantly caught with malware.
|
||||
- KickassTorrents - Long-dead, what is left are sketchy copycats.
|
||||
- MainRepo/MRepo (unrelated to the Magisk module MRepo) - Caught with [malware](https://rentry.co/zu3i6).
|
||||
- NexusGames, Steam-Repacks, Unlocked-Games, World of PC Games - Caught with malware.
|
||||
- MainRepo/MRepo (unrelated to the Magisk module MRepo) - Caught with
|
||||
[malware](https://rentry.co/zu3i6).
|
||||
- NexusGames, Steam-Repacks, Unlocked-Games, World of PC Games - Caught with
|
||||
malware.
|
||||
- nosTEAM - Caught with crypto miners and has malware risk.
|
||||
- Ocean of Games/Ocean of APKs - Constantly caught with malware.
|
||||
- Qoob/Seyter - Caught with crypto miners.
|
||||
- Repack-Games - Mislabels games and steals releases.
|
||||
- RSLoad - Uploaded the same MalwareBytes version that troubled FileCR and
|
||||
has [malware in μTorrent](https://i.ibb.co/QXrCfqQ/Untitled.png).
|
||||
- RSLoad - Uploaded the same MalwareBytes version that troubled FileCR and has
|
||||
[malware in μTorrent](https://i.ibb.co/QXrCfqQ/Untitled.png).
|
||||
- SadeemAPK/SadeemPC - Constantly caught with malware.
|
||||
- The Pirate Bay - High malware risk due to no moderation.
|
||||
- VitaminX - Caught with crypto miners.
|
||||
@ -70,8 +83,8 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site
|
||||
|
||||
## Unsafe software
|
||||
|
||||
::: info
|
||||
[Fake Windows activators](https://pastebin.com/gCmWs2GR)
|
||||
:::tip
|
||||
[Read this Pastebin about Fake Windows activators.](https://pastebin.com/gCmWs2GR)
|
||||
:::
|
||||
|
||||
- μTorrent - Has ads, trackers, and
|
||||
@ -81,24 +94,29 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site
|
||||
- BitComet/BitTorrent - Adware
|
||||
- BitLord -
|
||||
[Adware](https://www.virustotal.com/gui/file/3ad1aed8bd704152157ac92afed1c51e60f205fbdce1365bad8eb9b3a69544d0)
|
||||
- Bluecord/BlueKik - History of [spam](https://redd.it/12h2v6n) and [spying](https://rentry.co/tvrnw).
|
||||
- CyberGhost/ExpressVPN/Private Internet Access/ZenMate - [Owned](https://rentry.co/i8dwr) by
|
||||
[Kape](https://www.reddit.com/q3lepv).
|
||||
- Bluecord/BlueKik - History of [spam](https://redd.it/12h2v6n) and
|
||||
[spying](https://rentry.co/tvrnw).
|
||||
- CyberGhost/ExpressVPN/Private Internet Access/ZenMate -
|
||||
[Owned](https://rentry.co/i8dwr) by [Kape](https://www.reddit.com/q3lepv).
|
||||
- Downloadly (video downloader) - Caught with crypto miners.
|
||||
- FrostWire -
|
||||
[Adware](https://www.virustotal.com/gui/file/f20d66b647f15a5cd5f590b3065a1ef2bcd9dad307478437766640f16d416bbf/detection)
|
||||
- GShade - Can trigger unwanted
|
||||
[reboots](https://rentry.co/GShade_notice).
|
||||
- GShade - Can trigger unwanted [reboots](https://rentry.co/GShade_notice).
|
||||
- Kik - Widely used by [predators and scammers](https://youtu.be/9sPaJxRmIPc).
|
||||
- KLauncher - Contains malware.
|
||||
- Limewire - Long-dead, anything claiming to be them now should be avoided.
|
||||
- McAfee - Installs bloatware.
|
||||
- Opera (
|
||||
browsers) - [very](https://www.kuketz-blog.de/opera-datensendeverhalten-desktop-version-browser-check-teil13) [bad](https://rentry.co/operagx)
|
||||
privacy policies, besides [predatory](https://www.androidpolice.com/2020/01/21/opera-predatory-loans) loan apps.
|
||||
- PCProtect/Protected/TotalAV - Antivirus
|
||||
scams ([1](https://www.malwarebytes.com/blog/detections/pup-optional-pcprotect), [2](https://youtu.be/PcS3EozgyhI), [3](https://www.malwarebytes.com/blog/detections/pup-optional-totalav)).
|
||||
- PolyMC - Owner [kicked all members](https://www.reddit.com/y6lt6s) from Discord server and
|
||||
repository.
|
||||
- TLauncher (unrelated to TLauncher Legacy) - [Shady](https://www.reddit.com/zmzzrt) business practices.
|
||||
- VSTorrent - Caught with [malware](https://redd.it/x66rz2).
|
||||
- Opera ( browsers) -
|
||||
[very](https://www.kuketz-blog.de/opera-datensendeverhalten-desktop-version-browser-check-teil13)
|
||||
[bad](https://rentry.co/operagx) privacy policies, besides
|
||||
[predatory](https://www.androidpolice.com/2020/01/21/opera-predatory-loans)
|
||||
loan apps.
|
||||
- PCProtect/Protected/TotalAV - Antivirus scams
|
||||
([1](https://www.malwarebytes.com/blog/detections/pup-optional-pcprotect),
|
||||
[2](https://youtu.be/PcS3EozgyhI),
|
||||
[3](https://www.malwarebytes.com/blog/detections/pup-optional-totalav)).
|
||||
- PolyMC - Owner [kicked all members](https://www.reddit.com/y6lt6s) from
|
||||
Discord server and repository. Use PrismLauncher.
|
||||
- TLauncher (unrelated to TLauncher Legacy) -
|
||||
[Shady](https://www.reddit.com/zmzzrt) business practices. Use PrismLauncher.
|
||||
- VSTorrent - Caught with [malware](https://redd.it/x66rz2).
|
||||
|
131
docs/useful.md
131
docs/useful.md
@ -1,11 +1,16 @@
|
||||
---
|
||||
title: Useful
|
||||
description: Essential tools, sites, components that are worth using.
|
||||
---
|
||||
|
||||
# Useful
|
||||
|
||||
Essential tools, sites, components that are worth using.
|
||||
|
||||
## Required components
|
||||
|
||||
Install all before downloading games (legitimate or pirated) to avoid crashes from missing software
|
||||
on your computer:
|
||||
Install all before downloading games (legitimate or pirated) to avoid crashes
|
||||
from missing software on your computer:
|
||||
|
||||
- [DirectX](https://www.microsoft.com/download/details.aspx?id=35)
|
||||
- [VisualCppRedist AIO](https://github.com/abbodi1406/vcredist/releases/latest)
|
||||
@ -14,66 +19,81 @@ on your computer:
|
||||
## Tools
|
||||
|
||||
:::tip
|
||||
:exclamation: See [RIN SteamInternals](https://cs.rin.ru/forum/viewtopic.php?f=10&t=65887)
|
||||
and [A Collection of Steam Tools](https://steamcommunity.com/sharedfiles/filedetails/?id=451698754) for more Steam tools.
|
||||
:exclamation: See
|
||||
[RIN SteamInternals](https://cs.rin.ru/forum/viewtopic.php?f=10&t=65887) and
|
||||
[A Collection of Steam Tools](https://steamcommunity.com/sharedfiles/filedetails/?id=451698754)
|
||||
for more Steam tools.
|
||||
:::
|
||||
|
||||
- [🌟 CreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=70576) - Legitimate Steam game DLC
|
||||
unlocker / [Automatic setup](https://cs.rin.ru/forum/viewtopic.php?p=2013521) / [Automatic installation](https://github.com/pointfeev/CreamInstaller)
|
||||
- [Koalageddon](https://github.com/acidicoala/Koalageddon) - Steam, Epic Games Store, EA clients,
|
||||
& Uplay DLC unlocker
|
||||
- [Goldberg Steam Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=91627) - Steam
|
||||
emulator / [GUI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=111152)
|
||||
- [Steamless](https://github.com/atom0s/Steamless) - SteamStub DRM
|
||||
remover / [Automatic cracker](https://github.com/oureveryday/Steam-auto-crack) / [Guide](https://rentry.co/goldberg_emulator)
|
||||
- [Auto SteamFix Tool](https://cs.rin.ru/forum/viewtopic.php?f=29&t=97112) - Automatic Steamworks
|
||||
fix creator
|
||||
- [DreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=10&t=111520) - Epic Games Store & EA clients
|
||||
DLC unlocker
|
||||
- [ScreamAPI](https://github.com/acidicoala/ScreamAPI) - Epic Games Store DLC unlocker
|
||||
- [EA DLC Unlocker](https://cs.rin.ru/forum/viewtopic.php?f=20&t=104412) - EA clients DLC unlocker
|
||||
- [Nemirtingas Epic Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=105551) - Epic Online
|
||||
Services emulator
|
||||
- [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197) - Uplay emulator
|
||||
- [Online Fix](https://online-fix.me) - Allows playing pirated games online with other pirated
|
||||
games / Password: `online-fix.me`
|
||||
- [WorkshopDL](https://github.com/imwaitingnow/WorkshopDL) - Steam Workshop downloader
|
||||
- [Sims 4 Updater](https://cs.rin.ru/forum/viewtopic.php?f=29&t=102519) - Pirated The Sims 4 version
|
||||
updater
|
||||
- [Plutonium](https://plutonium.pw) - Dedicated Call of Duty servers, with mod support & extended features.
|
||||
- [Lucky Patcher](https://www.luckypatchers.com) - Android apps patcher (better with root)
|
||||
- [🌟 CreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=70576) - Legitimate
|
||||
Steam game DLC unlocker /
|
||||
[Automatic setup](https://cs.rin.ru/forum/viewtopic.php?p=2013521) /
|
||||
[Automatic installation](https://github.com/pointfeev/CreamInstaller)
|
||||
- [Koalageddon](https://github.com/acidicoala/Koalageddon) - Steam, Epic Games
|
||||
Store, EA clients, & Uplay DLC unlocker
|
||||
- [Goldberg Steam Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=91627) -
|
||||
Steam emulator / [GUI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=111152)
|
||||
- [Steamless](https://github.com/atom0s/Steamless) - SteamStub DRM remover /
|
||||
[Automatic cracker](https://github.com/oureveryday/Steam-auto-crack) /
|
||||
[Guide](https://rentry.co/goldberg_emulator)
|
||||
- [Auto SteamFix Tool](https://cs.rin.ru/forum/viewtopic.php?f=29&t=97112) -
|
||||
Automatic Steamworks fix creator
|
||||
- [DreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=10&t=111520) - Epic Games
|
||||
Store & EA clients DLC unlocker
|
||||
- [ScreamAPI](https://github.com/acidicoala/ScreamAPI) - Epic Games Store DLC
|
||||
unlocker
|
||||
- [EA DLC Unlocker](https://cs.rin.ru/forum/viewtopic.php?f=20&t=104412) - EA
|
||||
clients DLC unlocker
|
||||
- [Nemirtingas Epic Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=105551) -
|
||||
Epic Online Services emulator
|
||||
- [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197) - Uplay
|
||||
emulator
|
||||
- [Online Fix](https://online-fix.me) - Allows playing pirated games online with
|
||||
other pirated games / Password: `online-fix.me`
|
||||
- [WorkshopDL](https://github.com/imwaitingnow/WorkshopDL) - Steam Workshop
|
||||
downloader
|
||||
- [Sims 4 Updater](https://cs.rin.ru/forum/viewtopic.php?f=29&t=102519) -
|
||||
Pirated The Sims 4 version updater
|
||||
- [Plutonium](https://plutonium.pw) - Dedicated Call of Duty servers, with mod
|
||||
support & extended features.
|
||||
- [Lucky Patcher](https://www.luckypatchers.com) - Android apps patcher (better
|
||||
with root)
|
||||
|
||||
## Useful software
|
||||
## Software
|
||||
|
||||
:::tip
|
||||
Activate Microsoft products (Office & Windows) with
|
||||
**[Microsoft Activation Scripts](https://github.com/massgravel/Microsoft-Activation-Scripts).**
|
||||
Visit **[m0nkrus](https://w14.monkrus.ws)** for Adobe products. For the rest,
|
||||
visit [LRepacks](https://lrepacks.net), [CRACKSurl](https://cracksurl.com)
|
||||
or [GameBounty](https://gamebounty.world/software).
|
||||
:::tip Activate Microsoft products (Office & Windows) with **[Microsoft Activation Scripts](https://github.com/massgravel/Microsoft-Activation-Scripts).**
|
||||
Visit **[m0nkrus](https://w14.monkrus.ws)** for Adobe products.
|
||||
|
||||
For the rest, visit [LRepacks](https://lrepacks.net),
|
||||
[CRACKSurl](https://cracksurl.com) or
|
||||
[GameBounty](https://gamebounty.world/software).
|
||||
:::
|
||||
|
||||
- [7-Zip](https://7-zip.org) - File archiver
|
||||
- [Bitwarden](https://bitwarden.com) - Open-source password manager
|
||||
- [Tor Browser](https://www.torproject.org) - Private web browser that routes Internet traffic through a decentralized
|
||||
network of volunteer-operated servers, making you hard to trace.
|
||||
- [Achievement Watcher](https://xan105.github.io/Achievement-Watcher) - Achievement file parser with
|
||||
auto-screenshot, playtime tracking, & real-time notification
|
||||
- [Tor Browser](https://www.torproject.org) - Private web browser that routes
|
||||
Internet traffic through a decentralized network of volunteer-operated
|
||||
servers, making you hard to trace.
|
||||
- [Achievement Watcher](https://xan105.github.io/Achievement-Watcher) -
|
||||
Achievement file parser with auto-screenshot, playtime tracking, & real-time
|
||||
notification
|
||||
- [Parsec](https://parsec.app) - Low-latency game streaming software
|
||||
- [RapidCRC](https://ov2.eu/programs/rapidcrc-unicode) - Checksum verifier & hash info generator
|
||||
- [RapidCRC](https://ov2.eu/programs/rapidcrc-unicode) - Checksum verifier &
|
||||
hash info generator
|
||||
|
||||
## Useful browser extensions
|
||||
## Browser Extensions
|
||||
|
||||
- [uBlock Origin](https://ublockorigin.com) - Ad content
|
||||
blocker / [yokoffing's recommendations](https://github.com/yokoffing/filterlists#recommended-filters-for-ublock-origin)
|
||||
- [uBlock Origin](https://ublockorigin.com) - Ad content blocker /
|
||||
[yokoffing's recommendations](https://github.com/yokoffing/filterlists#recommended-filters-for-ublock-origin)
|
||||
- [uBlacklist](https://iorate.github.io/ublacklist/docs) - Search filter
|
||||
- [Bypass All Shortlinks Debloated](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated) -
|
||||
Link shorterners bypasser userscript - Needs one of the 3 extensions below
|
||||
- [FireMonkey](https://addons.mozilla.org/firefox/addon/firemonkey) - Open-source userscript manager
|
||||
for Firefox
|
||||
- [Tampermonkey](https://www.tampermonkey.net) - Proprietary userscript manager for most browsers
|
||||
- [ViolentMonkey](https://violentmonkey.github.io) - Open-source userscript manager for many
|
||||
browsers
|
||||
- [FireMonkey](https://addons.mozilla.org/firefox/addon/firemonkey) -
|
||||
Open-source userscript manager for Firefox
|
||||
- [Tampermonkey](https://www.tampermonkey.net) - Proprietary userscript manager
|
||||
for most browsers
|
||||
- [ViolentMonkey](https://violentmonkey.github.io) - Open-source userscript
|
||||
manager for many browsers
|
||||
|
||||
<ul>
|
||||
<li id="translator"><a href="https://github.com/FilipePS/Traduzir-paginas-web">Translate Web Pages</a>
|
||||
@ -82,15 +102,17 @@ or [GameBounty](https://gamebounty.world/software).
|
||||
</ul>
|
||||
|
||||
- [Firefox Multi-Account Containers](https://github.com/mozilla/multi-account-containers) -
|
||||
Color-coded tabs in this tool keep your online life separated, preserving your privacy. Cookies
|
||||
are containerized, allowing simultaneous use of multiple identities or accounts.
|
||||
Color-coded tabs in this tool keep your online life separated, preserving your
|
||||
privacy. Cookies are containerized, allowing simultaneous use of multiple
|
||||
identities or accounts.
|
||||
|
||||
## Trainers (cheats)
|
||||
|
||||
Not for online games. No cheating in online games!
|
||||
|
||||
- [🌟 FLiNG Trainer](https://flingtrainer.com)
|
||||
- [🌟 GameCopyWorld](https://gamecopyworld.com/games) - Also has crack-only and NoCD fixes.
|
||||
- [🌟 GameCopyWorld](https://gamecopyworld.com/games) - Also has crack-only and
|
||||
NoCD fixes.
|
||||
- [WeMod](https://www.wemod.com)
|
||||
- [MegaGames](https://megagames.com)
|
||||
- [FearLess Cheat Engine](https://fearlessrevolution.com) - Cheat Engine tables
|
||||
@ -98,7 +120,8 @@ Not for online games. No cheating in online games!
|
||||
|
||||
## Release trackers
|
||||
|
||||
No downloads provided. Sites have P2P/Scene release info. Check here to see if a game is cracked!
|
||||
No downloads provided. Sites have P2P/Scene release info. Check here to see if a
|
||||
game is cracked!
|
||||
|
||||
- [🌟 xREL](https://www.xrel.to/games-release-list.html?lang=en_US)
|
||||
- [m2v.ru](https://m2v.ru/?func=part&Part=3)
|
||||
@ -108,8 +131,8 @@ No downloads provided. Sites have P2P/Scene release info. Check here to see if a
|
||||
- [PreDB.pw](https://predb.pw)
|
||||
- [r/CrackWatch](https://www.reddit.com/r/CrackWatch)
|
||||
- [r/RepackWatchers](https://www.reddit.com/r/RepackWatchers) - Repacks only
|
||||
- [r/RepackWorld](https://www.reddit.com/r/RepackWorld) - Repacks
|
||||
only / [r/PiratedGames](https://www.reddit.com/r/PiratedGames)' sister subreddit
|
||||
- [r/RepackWorld](https://www.reddit.com/r/RepackWorld) - Repacks only /
|
||||
[r/PiratedGames](https://www.reddit.com/r/PiratedGames)' sister subreddit
|
||||
|
||||
## Related subreddits
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
"type": "module",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"format": "prettier --log-level=warn --write docs/",
|
||||
"format": "prettier --cache --write docs/",
|
||||
"build": "pnpm run docs:build && pnpm run i18n:build",
|
||||
"docs:dev": "vitepress dev docs",
|
||||
"docs:build": "vitepress build docs",
|
||||
@ -16,6 +16,9 @@
|
||||
},
|
||||
"license": "Unlicense",
|
||||
"devDependencies": {
|
||||
"@nolebase/vitepress-plugin-enhanced-readabilities": "^2.2.0",
|
||||
"@nolebase/vitepress-plugin-git-changelog": "^2.2.0",
|
||||
"@nolebase/vitepress-plugin-page-properties": "^2.2.0",
|
||||
"@types/node": "^20.14.2",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"prettier": "^3.3.1",
|
||||
@ -28,5 +31,6 @@
|
||||
"unocss": "^0.60.4",
|
||||
"vue": "^3.4.27",
|
||||
"x-satori": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"packageManager": "pnpm@8.15.4+sha1.c85a4305534f76d461407b59277b954bac97b5c4"
|
||||
}
|
||||
|
740
pnpm-lock.yaml
740
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user