mirror of https://gitlab.com/ecentrics/concordia
Apostolos Fanakis
4 years ago
4 changed files with 61 additions and 9 deletions
@ -0,0 +1,27 @@ |
|||||
|
# About Concordia |
||||
|
|
||||
|
## What |
||||
|
|
||||
|
Concordia is a forum platform (remember forums? 🤩) that focuses on user privacy and direct democratic voting. It is a |
||||
|
FOSS distributed via its Gitlab [repository][concordia-repository] and Docker [repository][concordia-docker-hub] under |
||||
|
the [MIT][concordia-license] license. |
||||
|
|
||||
|
## Why |
||||
|
|
||||
|
Values of privacy and freedom are diminishing in modern software. Even more so in social media software. Users are now |
||||
|
called to decide between being the product of companies that sell their personal information for gain and being shut out |
||||
|
of the modern, digital society. |
||||
|
|
||||
|
Concordia, much like other projects of this kind, provides an alternative to this predicament. |
||||
|
|
||||
|
## How |
||||
|
|
||||
|
TODO |
||||
|
|
||||
|
## Who |
||||
|
|
||||
|
TODO |
||||
|
|
||||
|
[concordia-repository]: https://gitlab.com/ecentrics/apella |
||||
|
[concordia-docker-hub]: https://hub.docker.com/repository/docker/ecentrics/apella-app |
||||
|
[concordia-license]: https://gitlab.com/ecentrics/apella/-/blob/master/LICENSE.md |
@ -1,12 +1,38 @@ |
|||||
import React, { |
import React, { |
||||
memo, useMemo, |
memo, useEffect, useState, |
||||
} from 'react'; |
} from 'react'; |
||||
|
import ReactMarkdown from 'react-markdown'; |
||||
import { Container } from 'semantic-ui-react'; |
import { Container } from 'semantic-ui-react'; |
||||
|
import AboutMd from '../../assets/About.md'; |
||||
|
|
||||
const About = () => useMemo(() => ( |
const targetBlank = () => ({ href, children }) => ( |
||||
<Container id="about-container" textAlign="center"> |
<a href={href} target="_blank" rel="noopener noreferrer"> |
||||
TODO |
{children} |
||||
|
</a> |
||||
|
); |
||||
|
|
||||
|
const About = () => { |
||||
|
const [aboutMd, setAboutMd] = useState(''); |
||||
|
|
||||
|
useEffect(() => { |
||||
|
fetch(AboutMd) |
||||
|
.then((response) => response.text()) |
||||
|
.then((text) => { |
||||
|
setAboutMd(text); |
||||
|
}); |
||||
|
}, []); |
||||
|
|
||||
|
return ( |
||||
|
<Container id="about-container"> |
||||
|
<ReactMarkdown |
||||
|
source={aboutMd} |
||||
|
renderers={{ |
||||
|
link: targetBlank(), |
||||
|
linkReference: targetBlank(), |
||||
|
}} |
||||
|
/> |
||||
</Container> |
</Container> |
||||
), []); |
); |
||||
|
}; |
||||
|
|
||||
export default memo(About); |
export default memo(About); |
||||
|
Loading…
Reference in new issue