Renamed Atlas to Outline
This commit is contained in:
@ -2,8 +2,8 @@
|
|||||||
#
|
#
|
||||||
# Please use `openssl rand -hex 32` to create SEQUELIZE_SECRET
|
# Please use `openssl rand -hex 32` to create SEQUELIZE_SECRET
|
||||||
|
|
||||||
DATABASE_URL=postgres://user:pass@example.com:5432/atlas
|
DATABASE_URL=postgres://user:pass@example.com:5432/outline
|
||||||
DATABASE_URL_TEST=postgres://user:pass@example.com:5432/atlas-test
|
DATABASE_URL_TEST=postgres://user:pass@example.com:5432/outline-test
|
||||||
PORT=3000
|
PORT=3000
|
||||||
REDIS_URL=redis://localhost:6379
|
REDIS_URL=redis://localhost:6379
|
||||||
SEQUELIZE_SECRET=F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634B
|
SEQUELIZE_SECRET=F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634B
|
||||||
|
4
LICENSE
4
LICENSE
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2017 Atlas (https://www.beautifulatlas.com/) and individual contributors.
|
Copyright (c) 2017 Outline (https://www.getoutline.com/) and individual contributors.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
@ -8,7 +8,7 @@ Redistribution and use in source and binary forms, with or without modification,
|
|||||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
|
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
|
||||||
documentation and/or other materials provided with the distribution.
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
3. Neither the name of the Atlas nor the names of its contributors may be used to endorse or promote products derived from this software
|
3. Neither the name of the Outline nor the names of its contributors may be used to endorse or promote products derived from this software
|
||||||
without specific prior written permission.
|
without specific prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
2
app.json
2
app.json
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "atlas",
|
"name": "outline",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postdeploy": "yarn build && yarn sequelize:migrate"
|
"postdeploy": "yarn build && yarn sequelize:migrate"
|
||||||
},
|
},
|
||||||
|
@ -14,13 +14,13 @@ function getPathFromUrl(href: string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function isAtlasUrl(href: string) {
|
function isOutlineUrl(href: string) {
|
||||||
if (href[0] === '/') return true;
|
if (href[0] === '/') return true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const atlas = new URL(BASE_URL);
|
const outline = new URL(BASE_URL);
|
||||||
const parsed = new URL(href);
|
const parsed = new URL(href);
|
||||||
return parsed.hostname === atlas.hostname;
|
return parsed.hostname === outline.hostname;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -30,7 +30,7 @@ export default function Link({ attributes, node, children, readOnly }: Props) {
|
|||||||
const href = node.data.get('href');
|
const href = node.data.get('href');
|
||||||
const path = getPathFromUrl(href);
|
const path = getPathFromUrl(href);
|
||||||
|
|
||||||
if (isAtlasUrl(href) && readOnly) {
|
if (isOutlineUrl(href) && readOnly) {
|
||||||
return <InternalLink {...attributes} to={path}>{children}</InternalLink>;
|
return <InternalLink {...attributes} to={path}>{children}</InternalLink>;
|
||||||
} else {
|
} else {
|
||||||
return <a {...attributes} href={href} target="_blank">{children}</a>;
|
return <a {...attributes} href={href} target="_blank">{children}</a>;
|
||||||
|
@ -102,7 +102,7 @@ type Props = {
|
|||||||
return (
|
return (
|
||||||
<Container column auto>
|
<Container column auto>
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>Atlas</title>
|
<title>Outline</title>
|
||||||
<meta
|
<meta
|
||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width, initial-scale=1.0"
|
content="width=device-width, initial-scale=1.0"
|
||||||
|
@ -7,7 +7,7 @@ type Props = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const PageTitle = ({ title }: Props) => (
|
const PageTitle = ({ title }: Props) => (
|
||||||
<Helmet><title>{`${title} - Atlas`}</title></Helmet>
|
<Helmet><title>{`${title} - Outline`}</title></Helmet>
|
||||||
);
|
);
|
||||||
|
|
||||||
export default PageTitle;
|
export default PageTitle;
|
||||||
|
@ -56,7 +56,7 @@ type Props = {
|
|||||||
return (
|
return (
|
||||||
<form onSubmit={this.handleSubmit}>
|
<form onSubmit={this.handleSubmit}>
|
||||||
<HelpText>
|
<HelpText>
|
||||||
Collections are for grouping your Atlas. They work best when organized
|
Collections are for grouping your Outline. They work best when organized
|
||||||
around a topic or internal team — Product or Engineering for example.
|
around a topic or internal team — Product or Engineering for example.
|
||||||
</HelpText>
|
</HelpText>
|
||||||
<Input
|
<Input
|
||||||
|
@ -9,7 +9,7 @@ function KeyboardShortcuts() {
|
|||||||
return (
|
return (
|
||||||
<Flex column>
|
<Flex column>
|
||||||
<HelpText>
|
<HelpText>
|
||||||
Atlas is designed to be super fast and easy to use.
|
Outline is designed to be super fast and easy to use.
|
||||||
All of your usual keyboard shortcuts work here, and there
|
All of your usual keyboard shortcuts work here, and there
|
||||||
{"'"}
|
{"'"}
|
||||||
s Markdown too.
|
s Markdown too.
|
||||||
|
@ -31,8 +31,8 @@ import SlackAuthLink from 'components/SlackAuthLink';
|
|||||||
<Section>
|
<Section>
|
||||||
<SectionLabel>Slack</SectionLabel>
|
<SectionLabel>Slack</SectionLabel>
|
||||||
<HelpText>
|
<HelpText>
|
||||||
Connect Atlas to your Slack to instantly search for your documents
|
Connect Outline to your Slack to instantly search for your documents
|
||||||
using <Code>/atlas</Code> command.
|
using <Code>/outline</Code> command.
|
||||||
</HelpText>
|
</HelpText>
|
||||||
|
|
||||||
<SlackAuthLink
|
<SlackAuthLink
|
||||||
@ -52,7 +52,7 @@ import SlackAuthLink from 'components/SlackAuthLink';
|
|||||||
<Section>
|
<Section>
|
||||||
<SectionLabel>API Access</SectionLabel>
|
<SectionLabel>API Access</SectionLabel>
|
||||||
<HelpText>
|
<HelpText>
|
||||||
Create API tokens to hack on your Atlas.
|
Create API tokens to hack on your Outline.
|
||||||
Learn more in <Link to="/developers">API documentation</Link>.
|
Learn more in <Link to="/developers">API documentation</Link>.
|
||||||
</HelpText>
|
</HelpText>
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
# Atlas API
|
# Outline API
|
||||||
|
|
||||||
_Our API is currently in beta and we might make minor adjustments._
|
_Our API is currently in beta and we might make minor adjustments._
|
||||||
|
|
||||||
## Making requests
|
## Making requests
|
||||||
|
|
||||||
Atlas' API follows JSON RPC style conventions where each API endpoint is a method on `https://www.beautifulatlas.com/api/<METHOD>`. Each request needs to be made using HTTPS and both `GET` and `POST` (recommended) methods are supported.
|
Outline's API follows JSON RPC style conventions where each API endpoint is a method on `https://www.getoutline.com/api/<METHOD>`. Each request needs to be made using HTTPS and both `GET` and `POST` (recommended) methods are supported.
|
||||||
|
|
||||||
For `GET` requests query string parameters are expected (e.g. `/api/document.info?id=...&token=...`). When making `POST` requests, request parameters are parsed depending on `Content-Type` header. To make a call using JSON payload, one must pass `Content-Type: application/json` header:
|
For `GET` requests query string parameters are expected (e.g. `/api/document.info?id=...&token=...`). When making `POST` requests, request parameters are parsed depending on `Content-Type` header. To make a call using JSON payload, one must pass `Content-Type: application/json` header:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
curl 'https://www.beautifulatlas.com/api/documents.info?id=atlas-api-NTpezNwhUP'\
|
curl 'https://www.getoutline.com/api/documents.info?id=outline-api-NTpezNwhUP'\
|
||||||
-H 'authorization: Bearer <API KEY>'\
|
-H 'authorization: Bearer <API KEY>'\
|
||||||
-H 'content-type: application/json'\
|
-H 'content-type: application/json'\
|
||||||
-H 'accept: application/json'
|
-H 'accept: application/json'
|
||||||
@ -17,9 +17,9 @@ curl 'https://www.beautifulatlas.com/api/documents.info?id=atlas-api-NTpezNwhUP'
|
|||||||
|
|
||||||
## Authentication
|
## Authentication
|
||||||
|
|
||||||
To access private API endpoints, you must provide a valid API key. You can create new API keys in your [account settings](https://www.beautifulatlas.com/settings). Be careful when handling your keys as they give access to all of your documents.
|
To access private API endpoints, you must provide a valid API key. You can create new API keys in your [account settings](https://www.getoutline.com/settings). Be careful when handling your keys as they give access to all of your documents.
|
||||||
|
|
||||||
To authenticate with Atlas API, you can supply the API key as a header (`Authorization: Bearer <API KEY>`) or as part of the payload using `token` parameter.
|
To authenticate with Outline API, you can supply the API key as a header (`Authorization: Bearer <API KEY>`) or as part of the payload using `token` parameter.
|
||||||
|
|
||||||
Some API endpoints allow unauhenticated requests for public resources and they can be called without an API key.
|
Some API endpoints allow unauhenticated requests for public resources and they can be called without an API key.
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ This method returns the information for currently logged in user.
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/user.info`
|
`https://www.getoutline.com/api/user.info`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -52,11 +52,11 @@ Parameter | Description
|
|||||||
|
|
||||||
### `user.s3Upload` - Gets S3 upload credentials
|
### `user.s3Upload` - Gets S3 upload credentials
|
||||||
|
|
||||||
You can upload small files and images as part of your documents. All files are stored using Amazon S3. Instead of uploading files to Atlas, you need to upload them directly to S3 with special credentials which can be obtained through this endpoint.
|
You can upload small files and images as part of your documents. All files are stored using Amazon S3. Instead of uploading files to Outline, you need to upload them directly to S3 with special credentials which can be obtained through this endpoint.
|
||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/user.s3Upload`
|
`https://www.getoutline.com/api/user.s3Upload`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -73,7 +73,7 @@ List all your document collections.
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/collections.list`
|
`https://www.getoutline.com/api/collections.list`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -89,7 +89,7 @@ Returns detailed information on a document collection.
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/collections.info`
|
`https://www.getoutline.com/api/collections.info`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -100,14 +100,14 @@ Parameter | Description
|
|||||||
|
|
||||||
### `collections.create` - Create a document collection
|
### `collections.create` - Create a document collection
|
||||||
|
|
||||||
Creates a new document collection. Atlas supports two types of collections:
|
Creates a new document collection. Outline supports two types of collections:
|
||||||
|
|
||||||
- `atlas` - Structured collection with a navigation tree
|
- `atlas` - Structured collection with a navigation tree
|
||||||
- `journal` - Chronological collection of documents
|
- `journal` - Chronological collection of documents
|
||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/collections.create`
|
`https://www.getoutline.com/api/collections.create`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -124,7 +124,7 @@ Collection navigation can be re-organized by sending a modified version of the n
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/collections.updateNavigationTree`
|
`https://www.getoutline.com/api/collections.updateNavigationTree`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -139,11 +139,11 @@ Parameter | Description
|
|||||||
This method returns information for a document with a specific ID. Following identifiers are allowed:
|
This method returns information for a document with a specific ID. Following identifiers are allowed:
|
||||||
|
|
||||||
- UUID - `id` field of the document
|
- UUID - `id` field of the document
|
||||||
- URI identifier - Human readable identifier used in Atlas URLs (e.g. `atlas-api-i48ZEZc5zjXndcP`)
|
- URI identifier - Human readable identifier used in Outline URLs (e.g. `outline-api-i48ZEZc5zjXndcP`)
|
||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/documents.info`
|
`https://www.getoutline.com/api/documents.info`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -158,7 +158,7 @@ This methods allows you to search all of your documents with keywords.
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/documents.search`
|
`https://www.getoutline.com/api/documents.search`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -173,7 +173,7 @@ This method allows you to publish a new document under an existing collection. I
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/documents.create`
|
`https://www.getoutline.com/api/documents.create`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
@ -191,7 +191,7 @@ Delete a document and all of its child documents if any.
|
|||||||
|
|
||||||
#### Arguments
|
#### Arguments
|
||||||
|
|
||||||
`https://www.beautifulatlas.com/api/documents.delete`
|
`https://www.getoutline.com/api/documents.delete`
|
||||||
|
|
||||||
Parameter | Description
|
Parameter | Description
|
||||||
------------ | -------------
|
------------ | -------------
|
||||||
|
@ -13,7 +13,7 @@ class ApiClient {
|
|||||||
|
|
||||||
constructor(options: Options = {}) {
|
constructor(options: Options = {}) {
|
||||||
this.baseUrl = options.baseUrl || '/api';
|
this.baseUrl = options.baseUrl || '/api';
|
||||||
this.userAgent = 'AtlasFrontend';
|
this.userAgent = 'OutlineFrontend';
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch = (
|
fetch = (
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "Atlas",
|
"name": "Outline",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+ssh://git@github.com/jorilallo/atlas.git"
|
"url": "git+ssh://git@github.com/outline/outline.git"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tommoor/slate-drop-or-paste-images": "0.5.1",
|
"@tommoor/slate-drop-or-paste-images": "0.5.1",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default function subdomainRedirect(options) {
|
export default function subdomainRedirect(options) {
|
||||||
return async function subdomainRedirectMiddleware(ctx, next) {
|
return async function subdomainRedirectMiddleware(ctx, next) {
|
||||||
if (ctx.headers.host === 'beautifulatlas.com') {
|
if (ctx.headers.host === 'getoutline.com') {
|
||||||
ctx.redirect(`https://www.${ctx.headers.host}${ctx.path}`);
|
ctx.redirect(`https://www.${ctx.headers.host}${ctx.path}`);
|
||||||
} else {
|
} else {
|
||||||
return next();
|
return next();
|
||||||
|
@ -11,7 +11,7 @@ export default function About() {
|
|||||||
<title>About</title>
|
<title>About</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
<Hero>
|
<Hero>
|
||||||
<h1>About Atlas</h1>
|
<h1>About Outline</h1>
|
||||||
<p>
|
<p>
|
||||||
Just a proof of concept for multiple pages.
|
Just a proof of concept for multiple pages.
|
||||||
</p>
|
</p>
|
||||||
|
@ -13,7 +13,7 @@ export default function Pricing() {
|
|||||||
<Hero>
|
<Hero>
|
||||||
<h1>Pricing</h1>
|
<h1>Pricing</h1>
|
||||||
<p>
|
<p>
|
||||||
Explore Atlas with a 14 day trial, free forever for teams smaller than 5.
|
Explore Outline with a 14 day trial, free forever for teams smaller than 5.
|
||||||
</p>
|
</p>
|
||||||
</Hero>
|
</Hero>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -15,7 +15,7 @@ export default function Layout({ children }: Props) {
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>Atlas</title>
|
<title>Outline</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import { color } from '../../../shared/styles/constants';
|
|||||||
function Navigation() {
|
function Navigation() {
|
||||||
return (
|
return (
|
||||||
<Nav>
|
<Nav>
|
||||||
<Brand href="/">Atlas</Brand>
|
<Brand href="/">Outline</Brand>
|
||||||
<Menu>
|
<Menu>
|
||||||
<MenuItem><a href="/auth/slack">Sign In</a></MenuItem>
|
<MenuItem><a href="/auth/slack">Sign In</a></MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Atlas</title>
|
<title>Outline</title>
|
||||||
<link href="/static/styles.css" rel="stylesheet">
|
<link href="/static/styles.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<style>
|
<style>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Atlas</title>
|
<title>Outline</title>
|
||||||
<style>
|
<style>
|
||||||
body,
|
body,
|
||||||
html {
|
html {
|
||||||
|
@ -24,7 +24,7 @@ developmentWebpackConfig.plugins.push(new webpack.HotModuleReplacementPlugin());
|
|||||||
developmentWebpackConfig.plugins.push(new webpack.NoErrorsPlugin());
|
developmentWebpackConfig.plugins.push(new webpack.NoErrorsPlugin());
|
||||||
developmentWebpackConfig.plugins.push(
|
developmentWebpackConfig.plugins.push(
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
title: 'Atlas',
|
title: 'Outline',
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user