Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG SERVER_VERSION=v0.21.0
ARG SERVER_VERSION=v0.21.1

# Builder image to compile the website
FROM ubuntu AS builder
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ If you want to refute a previously granted ownership, please comment on the corr
Enable Yarn, install dependencies, build assets and start a dev server:

```bash
cd website
corepack enable
corepack prepare yarn@stable --activate
yarn --cwd website
Expand Down
4 changes: 2 additions & 2 deletions configuration/ehcache.xml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
</listener>
</listeners>
<resources>
<heap>250</heap>
<heap>400</heap>
</resources>
</cache>
<cache alias="files.extension">
Expand All @@ -113,7 +113,7 @@
</listener>
</listeners>
<resources>
<heap>50</heap>
<heap>100</heap>
</resources>
</cache>
</config>
2 changes: 1 addition & 1 deletion website/src/about.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const About = () => {
and deployment details, see our <Link color='secondary' underline='hover' href='https://github.com/EclipseFdn/open-vsx.org/wiki'>wiki</Link>.
</Paragraph>

<Heading variant='h5'>Communication</Heading>
<Heading variant='h5'>Contact Us</Heading>
<Paragraph variant='body1'>
We use Slack for instant messaging and general communication,
use this <Link color='secondary' underline='hover' href='https://join.slack.com/t/openvsxworkinggroup/shared_invite/zt-2y07y1ggy-ct3IfJljjGI6xWUQ9llv6A'>link</Link> to join our Slack workspace.
Expand Down
27 changes: 8 additions & 19 deletions website/src/footer-content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,7 @@ const MainFooter = ({isSmallDisplay, isLargeDisplay}: MainFooterProps) => {
{termsOfUse()}
</Box>
<Box ml={itemSpacing}>
{publisherAgreement()}
</Box>
<Box ml={itemSpacing}>
{copyrightAgent()}
{compliance()}
</Box>
<Box ml={itemSpacing}>
{legalResources()}
Expand Down Expand Up @@ -107,10 +104,7 @@ const FooterContent: FunctionComponent<{ expanded: boolean }> = ({ expanded }) =
{termsOfUse()}
</Box>
<Box mb={itemSpacing}>
{publisherAgreement()}
</Box>
<Box mb={itemSpacing}>
{copyrightAgent()}
{compliance()}
</Box>
<Box mb={itemSpacing}>
{legalResources()}
Expand All @@ -136,7 +130,7 @@ const repositoryLink = () =>

const privacyPolicy = () =>
<Link
href='https://www.eclipse.org/legal/privacy.php'
href='https://www.eclipse.org/legal/privacy/'
sx={[styles.link, styles.legalText]}>
Privacy Policy
</Link>;
Expand All @@ -146,21 +140,16 @@ const termsOfUse = () =>
Terms of Use
</LegalLink>;

const publisherAgreement = () =>
<LegalLink to='/publisher-agreement-v1.0'>
Publisher Agreement
</LegalLink>;

const copyrightAgent = () =>
const compliance = () =>
<Link
href='https://www.eclipse.org/legal/copyright.php'
href='https://www.eclipse.org/legal/compliance/'
sx={[styles.link, styles.legalText]}>
Copyright Agent
Compliance
</Link>;

const legalResources = () =>
<Link
href='http://www.eclipse.org/legal'
href='http://www.eclipse.org/legal/'
sx={[styles.link, styles.legalText]}>
Legal Resources
</Link>;
Expand All @@ -170,7 +159,7 @@ const copyrightText = () =>
Copyright &copy; <Link
href='https://www.eclipse.org'
sx={styles.link}>
Eclipse Foundation, Inc.
Eclipse Foundation, AISBL.
</Link>
</Box>;

Expand Down
73 changes: 38 additions & 35 deletions website/src/page-settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import Adopters from './adopters';
import Members from './members';

//---------- HEAD TAGS
const HeadTags: FunctionComponent<{title?: string, description?: string, keywords?: string, url?: string, imageUrl?: string, type?: string}> = (props) => {
const HeadTags: FunctionComponent<{ title?: string, description?: string, keywords?: string, url?: string, imageUrl?: string, type?: string }> = (props) => {
const handleChangeClientState = (newState: any, addedTags: HelmetTags, removedTags: HelmetTags): void => {
if (addedTags.metaTags) {
addedTags.metaTags.forEach((value: HTMLMetaElement) => {
Expand All @@ -41,38 +41,38 @@ const HeadTags: FunctionComponent<{title?: string, description?: string, keyword
<title>{props.title}</title>

{/* SEO Meta Tags */}
<meta name='description' content={props.description}/>
<meta name='keywords' content={props.keywords}/>
<meta property='og:url' content={props.url}/>
<meta property='og:type' content={type}/>
<meta property='og:title' content={props.title}/>
<meta property='og:description' content={props.description}/>
<meta property='og:image' content={props.imageUrl}/>
<meta name='description' content={props.description} />
<meta name='keywords' content={props.keywords} />
<meta property='og:url' content={props.url} />
<meta property='og:type' content={type} />
<meta property='og:title' content={props.title} />
<meta property='og:description' content={props.description} />
<meta property='og:image' content={props.imageUrl} />

{/* Google Meta Tags */}
<meta itemProp='name' content={props.title}/>
<meta itemProp='description' content={props.description}/>
<meta itemProp='image' content={props.imageUrl}/>
<meta itemProp='name' content={props.title} />
<meta itemProp='description' content={props.description} />
<meta itemProp='image' content={props.imageUrl} />

{/* Twitter Meta Tags */}
<meta name='twitter:card' content={twitterCard}/>
<meta name='twitter:title' content={props.title}/>
<meta name='twitter:description' content={props.description}/>
<meta name='twitter:image' content={props.imageUrl}/>
<meta name='twitter:card' content={twitterCard} />
<meta name='twitter:title' content={props.title} />
<meta name='twitter:description' content={props.description} />
<meta name='twitter:image' content={props.imageUrl} />
</Helmet>;
};

const MainHeadTags: FunctionComponent<{pageSettings: PageSettings}> = (props) => {
const MainHeadTags: FunctionComponent<{ pageSettings: PageSettings }> = (props) => {
const title = props.pageSettings.pageTitle;
const description = 'Open VSX is an Eclipse open-source project and alternative to the Visual Studio Marketplace. It is deployed by the Eclipse Foundation at open-vsx.org.';
const keywords = 'eclipse,ide,open source,development environment,development,vs code,visual studio code,extension,plugin,plug-in,registry,theia';
const url = `${location.protocol}//${location.host}`;
const imageUrl = url + '/openvsx-preview.png';

return (<HeadTags title={title} description={description} keywords={keywords} url={url} imageUrl={imageUrl}/>);
return (<HeadTags title={title} description={description} keywords={keywords} url={url} imageUrl={imageUrl} />);
};

const ExtensionHeadTags: FunctionComponent<{extension?: Extension, pageSettings: PageSettings}> = (props) => {
const ExtensionHeadTags: FunctionComponent<{ extension?: Extension, pageSettings: PageSettings }> = (props) => {
const { name, namespace } = useParams();
let title = ` – ${props.pageSettings.pageTitle}`;
let url = `${location.protocol}//${location.host}/extension/`;
Expand All @@ -96,19 +96,19 @@ const ExtensionHeadTags: FunctionComponent<{extension?: Extension, pageSettings:
url += `${namespace}/${name}`;
}

return(<HeadTags title={title} url={url} description={description} keywords={keywords}/>)
return (<HeadTags title={title} url={url} description={description} keywords={keywords} />)
};

const NamespaceHeadTags: FunctionComponent<{namespaceDetails?: NamespaceDetails, pageSettings: PageSettings}> = (props) => {
const NamespaceHeadTags: FunctionComponent<{ namespaceDetails?: NamespaceDetails, pageSettings: PageSettings }> = (props) => {
const { name } = useParams();
const namespaceName = props.namespaceDetails?.displayName ?? props.namespaceDetails?.name ?? name
const title = `${namespaceName} – ${props.pageSettings.pageTitle}`;
const url = `${location.protocol}//${location.host}/namespace/${namespaceName}`;
const description = props.namespaceDetails?.description
return(<HeadTags title={title} url={url} description={description}/>)
return (<HeadTags title={title} url={url} description={description} />)
};

export default function createPageSettings(theme: Theme, prefersDarkMode: boolean, serverVersionPromise: Promise<string>): PageSettings {
export default function createPageSettings(theme: Theme, prefersDarkMode: boolean, serverVersionPromise: Promise<string>): PageSettings {

//---------- SERVER VERSION
const ServerVersion = lazy(async () => {
Expand All @@ -123,7 +123,7 @@ export default function createPageSettings(theme: Theme, prefersDarkMode: boolea
<OpenVSXLogo width='auto' height='40px' marginTop='8px' prefersDarkMode={prefersDarkMode} />
</RouteLink>
<Suspense>
<ServerVersion/>
<ServerVersion />
</Suspense>
</>;

Expand All @@ -146,14 +146,14 @@ export default function createPageSettings(theme: Theme, prefersDarkMode: boolea

//---------- DOWNLOAD TERMS
const downloadTerms: FunctionComponent = () =>
<Box mt={1}>
<Typography variant='body2'>
By clicking download, you accept this website&apos;s&nbsp;
<Link color='secondary' underline='hover' href='https://open-vsx.org/terms-of-use'>
Terms of Use
</Link>.
</Typography>
</Box>;
<Box mt={1}>
<Typography variant='body2'>
By clicking download, you accept this website&apos;s&nbsp;
<Link color='secondary' underline='hover' href='https://open-vsx.org/terms-of-use'>
Terms of Use
</Link>.
</Typography>
</Box>;

//---------- ADDITIONAL PAGES
const additionalRoutes: ReactNode = <>
Expand All @@ -169,18 +169,21 @@ export default function createPageSettings(theme: Theme, prefersDarkMode: boolea
const reportAbuseText = encodeURIComponent('<Please describe the issue>');
const extensionURL = encodeURIComponent(`${location.protocol}//${location.hostname}/extension/${extension.namespace}/${extension.name}`);
return <Link
href={`mailto:license@eclipse.org?subject=Report%20Abuse%20-%20${extension.namespace}.${extension.name}&Body=${reportAbuseText}%0A%0A${extensionURL}`}
href={`mailto:security@eclipse-foundation.org?subject=Report%20Abuse%20-%20${extension.namespace}.${extension.name}&Body=${reportAbuseText}%0A%0A${extensionURL}`}
variant='body2' color='secondary' underline='hover' sx={sx} >
Report Abuse
</Link>;
};

//---------- CLAIM NAMESPACE LINK
const claimNamespace: FunctionComponent<{ extension: Extension, sx: SxProps<Theme> }> = ({ sx }) => <Link
href='https://github.com/EclipseFdn/open-vsx.org/issues/new/choose'
const claimNamespace: FunctionComponent<{ extension: Extension, sx: SxProps<Theme> }> = ({ sx, extension }) => {
const body = 'Briefly explain what makes you a legitimate owner of the namespace mentioned in the issue title.\nPlease ensure that you have logged in to https://open-vsx.org at least once, otherwise we cannot process your request.'
return <Link
href={`https://github.com/EclipseFdn/open-vsx.org/issues/new?labels=namespace&title=${encodeURIComponent(`Claiming namespace \`${extension.namespace}\``)}&body=${encodeURIComponent(body)}`}
target='_blank' variant='body2' color='secondary' underline='hover' sx={sx} >
Claim Ownership
</Link>;
</Link>
};


return {
Expand Down
3 changes: 2 additions & 1 deletion website/static/documents/terms-of-use.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ Neither the Eclipse Foundation nor its agents, affiliates, and members (collecti

All logos and trademarks contained on this Website are and remain the property of their respective owners. Unless otherwise provided by a Third Party Publisher, no licenses or other rights in or to such logos and/or trademarks are granted to you.

If you wish to provide any feedback regarding this Website or its Content, please send an email to license@eclipse.org. If you believe that Content residing or accessible on or through this Website infringes a copyright, please send a notice of copyright infringement to our designated agent pursuant to the procedures set forth here: https://www.eclipse.org/legal/copyright.php.
If you wish to provide any feedback regarding this Website or its Content, please use the
contact information at https://open-vsx.org/about or create an issue at https://github.com/EclipseFdn/open-vsx.org/issues. If you believe that Content residing or accessible on or through this Website infringes a copyright, please send a notice of copyright infringement to our designated agent pursuant to the procedures set forth here: https://www.eclipse.org/legal/copyright.php.

## For Third Party Publishers

Expand Down
Loading