mirror of
https://git.unlock-music.dev/um/um-react.git
synced 2024-11-24 01:22:17 +00:00
docs: update faq to include valid version of qmpc #52
This commit is contained in:
parent
c39d2edce7
commit
a0bab29966
@ -7,7 +7,6 @@ import {
|
|||||||
Box,
|
Box,
|
||||||
Code,
|
Code,
|
||||||
Heading,
|
Heading,
|
||||||
Link,
|
|
||||||
ListItem,
|
ListItem,
|
||||||
OrderedList,
|
OrderedList,
|
||||||
Text,
|
Text,
|
||||||
@ -19,6 +18,7 @@ import hljsStyleGitHub from 'react-syntax-highlighter/dist/esm/styles/hljs/githu
|
|||||||
|
|
||||||
import PowerShellAdbDumpCommandTemplate from './adb_dump.ps1?raw';
|
import PowerShellAdbDumpCommandTemplate from './adb_dump.ps1?raw';
|
||||||
import ShellAdbDumpCommandTemplate from './adb_dump.sh?raw';
|
import ShellAdbDumpCommandTemplate from './adb_dump.sh?raw';
|
||||||
|
import { ExtLink } from '../ExtLink';
|
||||||
|
|
||||||
const applyTemplate = (tpl: string, values: Record<string, unknown>) => {
|
const applyTemplate = (tpl: string, values: Record<string, unknown>) => {
|
||||||
return tpl.replace(/\{\{\s*(\w+)\s*\}\}/g, (_, key) => (Object.hasOwn(values, key) ? String(values[key]) : '<nil>'));
|
return tpl.replace(/\{\{\s*(\w+)\s*\}\}/g, (_, key) => (Object.hasOwn(values, key) ? String(values[key]) : '<nil>'));
|
||||||
@ -96,9 +96,9 @@ export function AndroidADBPullInstruction({ dir, file }: AndroidADBPullInstructi
|
|||||||
</Text>
|
</Text>
|
||||||
<Text>
|
<Text>
|
||||||
💡 如果没有,可以
|
💡 如果没有,可以
|
||||||
<Link href="https://scoop.sh/#/apps?q=adb" isExternal>
|
<ExtLink href="https://scoop.sh/#/apps?q=adb">
|
||||||
使用 Scoop 安装 <ExternalLinkIcon />
|
使用 Scoop 安装 <ExternalLinkIcon />
|
||||||
</Link>
|
</ExtLink>
|
||||||
。
|
。
|
||||||
</Text>
|
</Text>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
|
12
src/components/ExtLink.tsx
Normal file
12
src/components/ExtLink.tsx
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import type { AnchorHTMLAttributes } from 'react';
|
||||||
|
import { ExternalLinkIcon } from '@chakra-ui/icons';
|
||||||
|
import { Link } from '@chakra-ui/react';
|
||||||
|
|
||||||
|
export function ExtLink({ children, ...props }: AnchorHTMLAttributes<HTMLAnchorElement>) {
|
||||||
|
return (
|
||||||
|
<Link isExternal {...props} rel="noreferrer noopener nofollow">
|
||||||
|
{children}
|
||||||
|
<ExternalLinkIcon />
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
import { ExternalLinkIcon } from '@chakra-ui/icons';
|
import { Text } from '@chakra-ui/react';
|
||||||
import { Link, Text } from '@chakra-ui/react';
|
import { ExtLink } from '~/components/ExtLink';
|
||||||
import { Header4 } from '~/components/HelpText/Header4';
|
import { Header4 } from '~/components/HelpText/Header4';
|
||||||
import { ProjectIssue } from '~/components/ProjectIssue';
|
import { ProjectIssue } from '~/components/ProjectIssue';
|
||||||
|
|
||||||
@ -17,10 +17,7 @@ export function OtherFAQ() {
|
|||||||
<Header4>有更多问题?</Header4>
|
<Header4>有更多问题?</Header4>
|
||||||
<Text>
|
<Text>
|
||||||
{'欢迎进入 '}
|
{'欢迎进入 '}
|
||||||
<Link href={'https://t.me/unlock_music_chat'} isExternal>
|
<ExtLink href={'https://t.me/unlock_music_chat'}>Telegram “音乐解锁-交流” 交流群</ExtLink>
|
||||||
Telegram “音乐解锁-交流” 交流群
|
|
||||||
<ExternalLinkIcon />
|
|
||||||
</Link>
|
|
||||||
{' 一起探讨。'}
|
{' 一起探讨。'}
|
||||||
</Text>
|
</Text>
|
||||||
</>
|
</>
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { Alert, AlertIcon, Container, Flex, List, ListItem, Text, chakra } from '@chakra-ui/react';
|
import { Alert, AlertIcon, Container, Flex, List, ListItem, Text, UnorderedList, chakra } from '@chakra-ui/react';
|
||||||
import { Header4 } from '~/components/HelpText/Header4';
|
import { Header4 } from '~/components/HelpText/Header4';
|
||||||
import { SegmentTryOfficialPlayer } from './SegmentTryOfficialPlayer';
|
import { SegmentTryOfficialPlayer } from './SegmentTryOfficialPlayer';
|
||||||
import { QMCv2AllInstructions } from '~/features/settings/panels/QMCv2/QMCv2AllInstructions';
|
import { QMCv2AllInstructions } from '~/features/settings/panels/QMCv2/QMCv2AllInstructions';
|
||||||
import { SegmentKeyImportInstructions } from './SegmentKeyImportInstructions';
|
import { SegmentKeyImportInstructions } from './SegmentKeyImportInstructions';
|
||||||
|
import { ExtLink } from '~/components/ExtLink';
|
||||||
|
|
||||||
export function QQMusicFAQ() {
|
export function QQMusicFAQ() {
|
||||||
return (
|
return (
|
||||||
@ -16,7 +17,26 @@ export function QQMusicFAQ() {
|
|||||||
<Text>
|
<Text>
|
||||||
<chakra.strong>2、检查您的平台</chakra.strong>
|
<chakra.strong>2、检查您的平台</chakra.strong>
|
||||||
</Text>
|
</Text>
|
||||||
<Text>日前,仅Windows客户端下载的歌曲无需密钥,其余平台的官方正式版本均需要提取密钥。</Text>
|
<Text>
|
||||||
|
日前,仅 Windows 客户端 19.43 或更低版本下载的歌曲文件无需密钥,其余平台的官方正式版本均需要提取密钥。
|
||||||
|
你可以通过下方的链接获取 QQ 音乐 Windows 客户端 v19.43 的安装程序:
|
||||||
|
</Text>
|
||||||
|
<UnorderedList pl={3}>
|
||||||
|
<ListItem>
|
||||||
|
<Text>
|
||||||
|
<ExtLink href="https://dldir1v6.qq.com/music/clntupate/QQMusic_Setup_1943.exe">
|
||||||
|
<code>qq.com</code> 官方下载地址(推荐)
|
||||||
|
</ExtLink>
|
||||||
|
</Text>
|
||||||
|
</ListItem>
|
||||||
|
<ListItem>
|
||||||
|
<Text>
|
||||||
|
<ExtLink href="https://web.archive.org/web/2023/https://dldir1v6.qq.com/music/clntupate/QQMusic_Setup_1943.exe">
|
||||||
|
<code>Archive.org</code> 存档
|
||||||
|
</ExtLink>
|
||||||
|
</Text>
|
||||||
|
</ListItem>
|
||||||
|
</UnorderedList>
|
||||||
|
|
||||||
<Container p={2}>
|
<Container p={2}>
|
||||||
<Alert status="warning" borderRadius={5}>
|
<Alert status="warning" borderRadius={5}>
|
||||||
|
@ -92,7 +92,7 @@ export function FileRow({ id, file }: FileRowProps) {
|
|||||||
</WrapItem>
|
</WrapItem>
|
||||||
<WrapItem>
|
<WrapItem>
|
||||||
{file.decrypted && (
|
{file.decrypted && (
|
||||||
<Link isExternal href={file.decrypted} download={decryptedName}>
|
<Link href={file.decrypted} download={decryptedName}>
|
||||||
<Button as="span">下载</Button>
|
<Button as="span">下载</Button>
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
|
Loading…
Reference in New Issue
Block a user