mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-22 09:46:30 -05:00
Extract URLs in extra file and change riot link to element-link (#551)
* Update matrix chat link to new element URL * Correct other usages of the element link * Extracted static external links into separate file
This commit is contained in:
parent
ca2bd1d90f
commit
be2428f22c
8 changed files with 43 additions and 22 deletions
|
@ -138,8 +138,8 @@ describe('Links Intro', () => {
|
||||||
|
|
||||||
describe('Follow us Links', () => {
|
describe('Follow us Links', () => {
|
||||||
it('Github', () => {
|
it('Github', () => {
|
||||||
cy.get('a[href="https://github.com/codimd/server"]')
|
cy.get('a[href="https://github.com/codimd/"]')
|
||||||
.checkExternalLink('https://github.com/codimd/server')
|
.checkExternalLink('https://github.com/codimd/')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Discourse', () => {
|
it('Discourse', () => {
|
||||||
|
@ -148,13 +148,13 @@ describe('Links Intro', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Matrix', () => {
|
it('Matrix', () => {
|
||||||
cy.get('a[href="https://riot.im/app/#/room/#hedgedoc:matrix.org"]')
|
cy.get('a[href="https://app.element.io/#/room/#hedgedoc:matrix.org"]')
|
||||||
.checkExternalLink('https://riot.im/app/#/room/#hedgedoc:matrix.org')
|
.checkExternalLink('https://app.element.io/#/room/#hedgedoc:matrix.org')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Mastodon', () => {
|
it('Mastodon', () => {
|
||||||
cy.get('a[href="https://social.codimd.org/mastodon"]')
|
cy.get('a[href="https://social.codimd.org"]')
|
||||||
.checkExternalLink('https://social.codimd.org/mastodon')
|
.checkExternalLink('https://social.codimd.org')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('POEditor', () => {
|
it('POEditor', () => {
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Col, Row } from 'react-bootstrap'
|
import { Col, Row } from 'react-bootstrap'
|
||||||
import { Trans, useTranslation } from 'react-i18next'
|
import { Trans, useTranslation } from 'react-i18next'
|
||||||
|
import { useSelector } from 'react-redux'
|
||||||
|
import { ApplicationState } from '../../../../redux'
|
||||||
import { TranslatedExternalLink } from '../../../common/links/translated-external-link'
|
import { TranslatedExternalLink } from '../../../common/links/translated-external-link'
|
||||||
import { TranslatedInternalLink } from '../../../common/links/translated-internal-link'
|
import { TranslatedInternalLink } from '../../../common/links/translated-internal-link'
|
||||||
|
import links from '../../../../links.json'
|
||||||
|
|
||||||
export const Links: React.FC = () => {
|
export const Links: React.FC = () => {
|
||||||
useTranslation()
|
useTranslation()
|
||||||
|
|
||||||
|
const backendIssueTracker = useSelector((state: ApplicationState) => state.config.version.issueTrackerUrl)
|
||||||
return (
|
return (
|
||||||
<Row className={'justify-content-center pt-4'}>
|
<Row className={'justify-content-center pt-4'}>
|
||||||
<Col lg={4}>
|
<Col lg={4}>
|
||||||
|
@ -15,7 +20,7 @@ export const Links: React.FC = () => {
|
||||||
<li>
|
<li>
|
||||||
<TranslatedExternalLink
|
<TranslatedExternalLink
|
||||||
i18nKey='editor.help.contacts.community'
|
i18nKey='editor.help.contacts.community'
|
||||||
href='https://community.codimd.org/'
|
href={links.community}
|
||||||
icon='users'
|
icon='users'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
|
@ -24,7 +29,7 @@ export const Links: React.FC = () => {
|
||||||
<TranslatedExternalLink
|
<TranslatedExternalLink
|
||||||
i18nKey='editor.help.contacts.meetUsOn'
|
i18nKey='editor.help.contacts.meetUsOn'
|
||||||
i18nOption={{ service: 'Matrix' }}
|
i18nOption={{ service: 'Matrix' }}
|
||||||
href='https://riot.im/app/#/room/#hedgedoc:matrix.org'
|
href={links.chatElement}
|
||||||
icon='hashtag'
|
icon='hashtag'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
|
@ -32,7 +37,7 @@ export const Links: React.FC = () => {
|
||||||
<li>
|
<li>
|
||||||
<TranslatedExternalLink
|
<TranslatedExternalLink
|
||||||
i18nKey='editor.help.contacts.reportIssue'
|
i18nKey='editor.help.contacts.reportIssue'
|
||||||
href='https://github.com/codimd/server/issues'
|
href={backendIssueTracker}
|
||||||
icon='tag'
|
icon='tag'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
|
@ -40,7 +45,7 @@ export const Links: React.FC = () => {
|
||||||
<li>
|
<li>
|
||||||
<TranslatedExternalLink
|
<TranslatedExternalLink
|
||||||
i18nKey='editor.help.contacts.helpTranslating'
|
i18nKey='editor.help.contacts.helpTranslating'
|
||||||
href='https://translate.codimd.org/'
|
href={links.translate}
|
||||||
icon='language'
|
icon='language'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
|
@ -63,15 +68,15 @@ export const Links: React.FC = () => {
|
||||||
<li>
|
<li>
|
||||||
<TranslatedInternalLink
|
<TranslatedInternalLink
|
||||||
i18nKey='editor.help.documents.yamlMetadata'
|
i18nKey='editor.help.documents.yamlMetadata'
|
||||||
href='/n/yaml-data'
|
href='/n/yaml-metadata'
|
||||||
icon='dot-circle-o'
|
icon='dot-circle-o'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<TranslatedExternalLink
|
<TranslatedInternalLink
|
||||||
i18nKey='editor.help.documents.slideExample'
|
i18nKey='editor.help.documents.slideExample'
|
||||||
href='https://github.com/codimd/server/issues'
|
href='/n/slide-example'
|
||||||
icon='dot-circle-o'
|
icon='dot-circle-o'
|
||||||
className='text-primary'
|
className='text-primary'
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -2,6 +2,7 @@ import React from 'react'
|
||||||
import { Dropdown } from 'react-bootstrap'
|
import { Dropdown } from 'react-bootstrap'
|
||||||
import { Trans, useTranslation } from 'react-i18next'
|
import { Trans, useTranslation } from 'react-i18next'
|
||||||
import { ForkAwesomeIcon } from '../../../common/fork-awesome/fork-awesome-icon'
|
import { ForkAwesomeIcon } from '../../../common/fork-awesome/fork-awesome-icon'
|
||||||
|
import links from '../../../../links.json'
|
||||||
|
|
||||||
const ExportMenu: React.FC = () => {
|
const ExportMenu: React.FC = () => {
|
||||||
useTranslation()
|
useTranslation()
|
||||||
|
@ -44,7 +45,7 @@ const ExportMenu: React.FC = () => {
|
||||||
|
|
||||||
<Dropdown.Divider/>
|
<Dropdown.Divider/>
|
||||||
|
|
||||||
<Dropdown.Item className='small text-muted' dir={'auto'} href={'https://community.codimd.org/t/frequently-asked-questions/190'} target={'_blank'} rel='noopener noreferrer'>
|
<Dropdown.Item className='small text-muted' dir={'auto'} href={links.faq} target={'_blank'} rel='noopener noreferrer'>
|
||||||
<ForkAwesomeIcon icon='file-pdf-o' className={'mx-2'}/>
|
<ForkAwesomeIcon icon='file-pdf-o' className={'mx-2'}/>
|
||||||
<Trans i18nKey={'editor.export.pdf'}/>
|
<Trans i18nKey={'editor.export.pdf'}/>
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ import { Button, Container } from 'react-bootstrap'
|
||||||
import frontendVersion from '../../version.json'
|
import frontendVersion from '../../version.json'
|
||||||
import { ForkAwesomeIcon } from '../common/fork-awesome/fork-awesome-icon'
|
import { ForkAwesomeIcon } from '../common/fork-awesome/fork-awesome-icon'
|
||||||
import { ExternalLink } from '../common/links/external-link'
|
import { ExternalLink } from '../common/links/external-link'
|
||||||
|
import links from '../../links.json'
|
||||||
|
|
||||||
export class ErrorBoundary extends Component {
|
export class ErrorBoundary extends Component {
|
||||||
state: {
|
state: {
|
||||||
|
@ -35,7 +36,9 @@ export class ErrorBoundary extends Component {
|
||||||
<div className='text-white d-flex flex-column align-items-center justify-content-center my-5'>
|
<div className='text-white d-flex flex-column align-items-center justify-content-center my-5'>
|
||||||
<h1>An unknown error occurred</h1>
|
<h1>An unknown error occurred</h1>
|
||||||
<p>Don't worry, this happens sometimes. If this is the first time you see this page then try reloading the app.</p>
|
<p>Don't worry, this happens sometimes. If this is the first time you see this page then try reloading the app.</p>
|
||||||
If you can reproduce this error, then we would be glad if you <ExternalLink text={'open an issue on github'} href={frontendVersion.issueTrackerUrl} className={'text-primary'}/> or <ExternalLink text={'contact us on matrix.'} href={'https://riot.im/app/#/room/#hedgedoc:matrix.org'} className={'text-primary'}/>
|
If you can reproduce this error, then we would be glad if you 
|
||||||
|
<ExternalLink text={'open an issue on github'} href={frontendVersion.issueTrackerUrl} className={'text-primary'}/> 
|
||||||
|
or <ExternalLink text={'contact us on matrix.'} href={links.chatElement} className={'text-primary'}/>
|
||||||
<Button onClick={() => this.refreshPage()} title={'Reload App'} className={'mt-4'}>
|
<Button onClick={() => this.refreshPage()} title={'Reload App'} className={'mt-4'}>
|
||||||
<ForkAwesomeIcon icon={'refresh'}/> Reload App
|
<ForkAwesomeIcon icon={'refresh'}/> Reload App
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
@ -6,6 +6,7 @@ import { ExternalLink } from '../../common/links/external-link'
|
||||||
import { TranslatedExternalLink } from '../../common/links/translated-external-link'
|
import { TranslatedExternalLink } from '../../common/links/translated-external-link'
|
||||||
import { TranslatedInternalLink } from '../../common/links/translated-internal-link'
|
import { TranslatedInternalLink } from '../../common/links/translated-internal-link'
|
||||||
import { VersionInfo } from './version-info'
|
import { VersionInfo } from './version-info'
|
||||||
|
import links from '../../../links.json'
|
||||||
|
|
||||||
export const PoweredByLinks: React.FC = () => {
|
export const PoweredByLinks: React.FC = () => {
|
||||||
useTranslation()
|
useTranslation()
|
||||||
|
@ -15,7 +16,7 @@ export const PoweredByLinks: React.FC = () => {
|
||||||
return (
|
return (
|
||||||
<p>
|
<p>
|
||||||
<Trans i18nKey="landing.footer.poweredBy">
|
<Trans i18nKey="landing.footer.poweredBy">
|
||||||
<ExternalLink href="https://codimd.org" text="HedgeDoc"/>
|
<ExternalLink href={links.webpage} text="HedgeDoc"/>
|
||||||
</Trans>
|
</Trans>
|
||||||
|
|
|
|
||||||
<TranslatedInternalLink href='/n/release-notes' i18nKey='landing.footer.releases'/>
|
<TranslatedInternalLink href='/n/release-notes' i18nKey='landing.footer.releases'/>
|
||||||
|
|
|
@ -1,17 +1,18 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Trans, useTranslation } from 'react-i18next'
|
import { Trans, useTranslation } from 'react-i18next'
|
||||||
import { ExternalLink } from '../../common/links/external-link'
|
import { ExternalLink } from '../../common/links/external-link'
|
||||||
|
import links from '../../../links.json'
|
||||||
|
|
||||||
const SocialLink: React.FC = () => {
|
const SocialLink: React.FC = () => {
|
||||||
useTranslation()
|
useTranslation()
|
||||||
return (
|
return (
|
||||||
<p>
|
<p>
|
||||||
<Trans i18nKey="landing.footer.followUs" components={[
|
<Trans i18nKey="landing.footer.followUs" components={[
|
||||||
<ExternalLink href="https://github.com/codimd/server" icon='github' text="GitHub"/>,
|
<ExternalLink href={links.githubOrg} icon='github' text="GitHub"/>,
|
||||||
<ExternalLink href="https://community.codimd.org" icon='users' text="Discourse"/>,
|
<ExternalLink href={links.community} icon='users' text="Discourse"/>,
|
||||||
<ExternalLink href="https://riot.im/app/#/room/#hedgedoc:matrix.org" icon="comment" text="Riot"/>,
|
<ExternalLink href={links.chatElement} icon="comment" text="Element"/>,
|
||||||
<ExternalLink href="https://social.codimd.org/mastodon" icon='mastodon' text="Mastodon"/>,
|
<ExternalLink href={links.mastodon} icon='mastodon' text="Mastodon"/>,
|
||||||
<ExternalLink href="https://translate.codimd.org" icon="globe" text="POEditor"/>
|
<ExternalLink href={links.translate} icon="globe" text="POEditor"/>
|
||||||
]}/>
|
]}/>
|
||||||
</p>
|
</p>
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,6 +2,7 @@ import React from 'react'
|
||||||
import { Alert } from 'react-bootstrap'
|
import { Alert } from 'react-bootstrap'
|
||||||
import { Trans, useTranslation } from 'react-i18next'
|
import { Trans, useTranslation } from 'react-i18next'
|
||||||
import { TranslatedExternalLink } from '../../../common/links/translated-external-link'
|
import { TranslatedExternalLink } from '../../../common/links/translated-external-link'
|
||||||
|
import links from '../../../../links.json'
|
||||||
|
|
||||||
export const DeprecationWarning: React.FC = () => {
|
export const DeprecationWarning: React.FC = () => {
|
||||||
useTranslation()
|
useTranslation()
|
||||||
|
@ -10,7 +11,7 @@ export const DeprecationWarning: React.FC = () => {
|
||||||
<Alert className={'mt-2'} variant={'warning'}>
|
<Alert className={'mt-2'} variant={'warning'}>
|
||||||
<Trans i18nKey={'renderer.sequence.deprecationWarning'}/>
|
<Trans i18nKey={'renderer.sequence.deprecationWarning'}/>
|
||||||
|
|
||||||
<TranslatedExternalLink i18nKey={'common.why'} className={'text-dark'} href={'https://community.codimd.org/t/frequently-asked-questions/190'}/>
|
<TranslatedExternalLink i18nKey={'common.why'} className={'text-dark'} href={links.faq}/>
|
||||||
</Alert>
|
</Alert>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
9
src/links.json
Normal file
9
src/links.json
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"chatElement": "https://app.element.io/#/room/#hedgedoc:matrix.org",
|
||||||
|
"community": "https://community.codimd.org",
|
||||||
|
"faq": "https://community.codimd.org/t/frequently-asked-questions/190",
|
||||||
|
"githubOrg": "https://github.com/codimd/",
|
||||||
|
"mastodon": "https://social.codimd.org",
|
||||||
|
"translate": "https://translate.codimd.org",
|
||||||
|
"webpage": "https://codimd.org"
|
||||||
|
}
|
Loading…
Reference in a new issue