Merge pull request #2703 from omnivore-app/fix/web-rm-help-files

Move all the help stuff into the docs
This commit is contained in:
Jackson Harper 2023-08-30 13:41:51 +08:00 committed by GitHub
commit 3fc6f52b07
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 17 additions and 800 deletions

View file

@ -164,7 +164,11 @@ export default function ExtensionsInstallHelp({
to Omnivore from your computer.
<br />
{!onboarding && (
<Link passHref href="/help/saving-links">
<a
href="https://docs.omnivore.app/using/saving.html"
target="_blank"
rel="noreferrer"
>
<StyledAnchor
css={{
color: '$grayTextContrast',
@ -175,7 +179,7 @@ export default function ExtensionsInstallHelp({
>
Learn more about the browser extension -&gt;
</StyledAnchor>
</Link>
</a>
)}
</StyledText>
<HStack

View file

@ -23,6 +23,8 @@ export function InfoLink(props: InfoLinkProps): JSX.Element {
<a
href={props.href}
style={{ textDecoration: 'none', width: '24px', height: '24px' }}
target="_blank"
rel="noreferrer"
>
<TooltipWrapped
tooltipContent="Learn More"

View file

@ -149,7 +149,11 @@ export default function MobileInstallHelp({
share extension.
<br />
{!onboarding && (
<Link passHref href="/help/saving-links">
<a
href="https://docs.omnivore.app/using/saving.html"
target="_blank"
rel="noreferrer"
>
<StyledAnchor
css={{
color: '$grayTextContrast',
@ -160,7 +164,7 @@ export default function MobileInstallHelp({
>
Learn more about the iOS app -&gt;
</StyledAnchor>
</Link>
</a>
)}
</StyledText>
<HStack

View file

@ -1,66 +0,0 @@
/* eslint-disable @next/next/no-img-element */
import { Box, HStack } from '../../components/elements/LayoutPrimitives'
import { SettingsLayout } from '../../components/templates/SettingsLayout'
import { Button } from '../../components/elements/Button'
import Link from 'next/link'
export default function Emails(): JSX.Element {
return (
<SettingsLayout>
<Box
css={{
m: '42px',
maxWidth: '640px',
color: '$grayText',
img: {
maxWidth: '85%',
},
'@smDown': {
m: '16px',
maxWidth: '85%',
alignSelf: 'center',
},
}}
>
<h1>Omnivore Email Addresses</h1>
<hr />
<p>
An Omnivore email address will receive email, detect whether the email
is a PDF document or newsletter, and add the content to your library.
</p>
<p>
If Omnivore doesn&apos;t think the item should be added to your
library, it will be forwarded to the email address you used when you
registered for Omnivore (from <code>msgs@omnivore.app</code>).
</p>
<h2>Sending PDFs to your Omnivore Email Address</h2>
<p>
Add PDFs to your Omnivore library by sending them to your Omnivore
email address. If there is a subject line in the email, it will be
used as the title of the PDF. If there is no subject line, the
filename will be used as the title.
</p>
<h2>Read all your newsletters in Omnivore</h2>
<p>
Subscribe to newsletters with your Omnivore email address and they
will be added to your library when we receive them.
</p>
<p>
<Link href="/help/newsletters">
Learn more about setting up newsletters
</Link>
</p>
<HStack alignment="center" css={{ mb: '32px', width: '100%' }}>
<Link passHref href="/settings/emails">
<Button style="ctaDarkYellow">Get Started</Button>
</Link>
</HStack>
</Box>
<Box css={{ height: '120px' }} />
</SettingsLayout>
)
}

View file

@ -1,107 +0,0 @@
/* eslint-disable @next/next/no-img-element */
import { Box } from '../../components/elements/LayoutPrimitives'
import { SettingsLayout } from '../../components/templates/SettingsLayout'
import Link from 'next/link'
export default function Labels(): JSX.Element {
return (
<SettingsLayout>
<Box
css={{
m: '42px',
maxWidth: '640px',
color: '$grayText',
img: {
maxWidth: '85%',
},
'@smDown': {
m: '16px',
maxWidth: '85%',
alignSelf: 'center',
},
}}
>
<h1>Organize your Omnivore library with labels</h1>
<hr />
<h2>Introduction</h2>
<p>
Labels allow you to group and search for content in Omnivore. A saved
page can have multiple labels and search results can be filtered by
label.
</p>
<h2>Adding labels to a page on iOS</h2>
<p>
On iOS you add and remove labels from a page using the Assign Labels
modal.
</p>
<p>
You can open the Assign Labels modal from the home view or the reader
view. In the home view long press on an item and choose Edit Labels
from the dropdowm menu. In the reader view use the top right menu
button.
</p>
<h2>Adding labels to a page on the web</h2>
<p>
On the web you add and remove labels from a page using the Assign
Labels dropdown or modal depending on your screen size. For larger
monitors you will see the Labels button on the left hand side of the
reader view. For smaller monitors you will see the labels dropdown at
the top of your screen.
</p>
<p>
You can also use keyboard commands to open the assign labels modal. On
the reader view tap the <code>l</code> key. Once open you can use the
up/down arrow keys, or the tab key to navigate the available labels,
and the Enter key to toggle a label.
</p>
<h2>Searching by label on iOS</h2>
<p>
On iOS you can use the Labels search chip to search for labels. This
will open a modal allowing you to assign multiple labels to your
search. This will become an <code>OR </code>
search, meaning if you add multiple labels to your search, pages that
have any of the labels will be returned.
</p>
<h2>Searching by label with Advanced Search</h2>
<p>
Omnivore&apos;s advanced search syntax supports searching for multiple
labels using
<code>AND</code> and <code>OR</code> clauses. You can also negate a
label search to find all pages that do not have a certain label.
</p>
<p>Some examples:</p>
<ul>
<li>
<code>-label:Newsletter</code> finds all pages that have the label{' '}
<code>Newsletter</code>
</li>
<li>
<code>label:Cooking,Fitness</code> finds all your pages with either
the <code>Cooking</code> or <code>Fitness</code> labels
</li>
<li>
<code>label:Newsletter label:Surfing</code> finds all pages with
both the <code>Newsletter</code> and <code>Surfing</code> labels
</li>
<li>
<code>label:Coding -label:Newsletter</code> finds all pages with the{' '}
<code>Coding</code> label that do not have the{' '}
<code>Newsletter</code> label
</li>
</ul>
<h2>Editing your list of labels</h2>
<p>
The{' '}
<Link href="/settings/labels">
<a>labels</a>
</Link>{' '}
page allows you to edit all of your labels. From here you can create
new labels, delete existing labels, or modify the color and
description of a label.
</p>
</Box>
<Box css={{ height: '120px' }} />
</SettingsLayout>
)
}

View file

@ -1,257 +0,0 @@
/* eslint-disable @next/next/no-img-element */
import {
Box,
HStack,
SpanBox,
} from '../../components/elements/LayoutPrimitives'
import { SettingsLayout } from '../../components/templates/SettingsLayout'
import { Button } from '../../components/elements/Button'
import Link from 'next/link'
import { Copy, Plus } from 'phosphor-react'
import { theme } from '../../components/tokens/stitches.config'
const AddEmailButton = () => {
return (
<Button
style="ctaDarkYellow"
css={{
cursor: 'default',
display: 'inline-flex',
alignItems: 'center',
}}
>
<Plus size={18} style={{ marginRight: '6.5px' }} />
<SpanBox>Create a new email address</SpanBox>
</Button>
)
}
const CopyButton = () => {
return (
<Button
style="plainIcon"
css={{
pl: '2px',
pr: '4px',
cursor: 'default',
display: 'inline-flex',
}}
>
<Copy color={theme.colors.grayTextContrast.toString()} />
</Button>
)
}
export default function Newsletters(): JSX.Element {
return (
<SettingsLayout>
<Box
css={{
m: '42px',
maxWidth: '640px',
color: '$grayText',
img: {
maxWidth: '85%',
},
'@smDown': {
m: '16px',
maxWidth: '85%',
alignSelf: 'center',
},
}}
>
<h1>Read Newsletters in Omnivore</h1>
<hr />
<p>Omnivore supports newsletters from the following providers:</p>
<ul>
<li>
Newsletters hosted on{' '}
<a href="https://substack.com" target="_blank" rel="noreferrer">
substack.com
</a>
</li>
<li>
Newsletters hosted on{' '}
<a href="https://www.beehiiv.com/" target="_blank" rel="noreferrer">
beehiiv.com
</a>
</li>
<li>
The{' '}
<a
href="https://www.axios.com/newsletters"
target="_blank"
rel="noreferrer"
>
Axios Daily
</a>{' '}
newsletters
</li>
<li>
<a
href="https://golangweekly.com/"
target="_blank"
rel="noreferrer"
>
Golang Weekly
</a>
</li>
<li>
<a
href="https://www.bloomberg.com/account/newsletters"
target="_blank"
rel="noreferrer"
>
Bloomberg Newsletters
</a>
</li>
</ul>
<p>
If there is a newsletter you would like to read in Omnivore, please
let us know.
</p>
<h2>Omnivore Email Addresses</h2>
<p>
Omnivore allows you to create unique email addresses for subscribing
to newsletters. You can reuse one address for all your newsletters, or
you can create a unique address for each.
</p>
<p>
An Omnivore email address will receive email, detect whether the email
is a newsletter, and add the newsletter content to your library. If
the email does not appear to be a newsletter, it will be forwarded to
the email address you used when you registered for Omnivore.
</p>
<p>
There are multiple ways to add newsletters to your Omnivore library:
</p>
<ul>
<li>
<a href="#updating">
Updating your account email to an Omnivore email address
</a>
</li>
<li>
<a href="#directly">
Subscribe to the newsletter with an Omnivore email address
</a>
</li>
<li>
<a href="#forwarding">
Create a forwarding rule from your email account
</a>
</li>
</ul>
<h2 id="updating">Updating your account email</h2>
<p>
If you want all your substack newsletters sent to Omnivore, you can
login and change the address on{' '}
<a href="https://substack.com/account/settings">your account page</a>{' '}
in Substack.
</p>
<h2 id="directly">Subscribing Directly</h2>
<p>
Create your first email address by clicking the <AddEmailButton />{' '}
button on the <Link href="/settings/emails">emails page</Link>. Copy
the email address to your clipboard using the <CopyButton />
copy button, and enter that email address into an email subscription
box.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/newsletter-email-signup.gif"
alt="Animated image setting up an Omnivore Email Address"
/>
</HStack>
<p>
If you are already logged into Substack you might need to logout to
use your new email address.
</p>
<h2 id="forwarding">Create a Forwarding Rule</h2>
<p>
If you are a Gmail user you can create a forwarding rule to send email
from your regular account to your Omnivore email address. This is
useful if you have an existing paid newsletter subscription and
don&apos;t want to update your account email address.
</p>
<p>
For free newsletters we recommend subscribing directly to the
newsletter with your Omnivore email address instead of setting up
forwarding rules.
</p>
<p>Before you start:</p>
<ul>
<li>
Create an Omnivore Email Address by clicking the <AddEmailButton />{' '}
button on the <Link href="/settings/emails">emails page</Link>.
</li>
<li>
Make a note of the Newsletter&apos;s sender email address. For
example <code>omnivore@substack.com</code>.
</li>
</ul>
<p>Create a forwarding rule:</p>
<ul>
<li>
On a computer open your{' '}
<Link href="https://mail.google.com/mail/u/0/#settings/fwdandpop">
Gmail Forwarding Rules
</Link>
. If this link does not work: click on the Gear icon in the upper
right corner of Gmail and select All Settings, then click the
Forwarding and POP/IMAP tab.
</li>
<li>
In the <b>Forwarding</b> section click{' '}
<b>Add a forwarding address</b>.
</li>
<li>
Enter your Omnivore Email Address (eg{' '}
<code>username-sdfsd@inbox.omnivore.app</code>) and click Next.
</li>
<li>Click Proceed and OK</li>
<li>
Refresh the Omnivore Newsletter Emails page and you should see a
code appear beside your address (eg 663421251). Copy this code to
your clipboard (click the <CopyButton /> button).
</li>
<li>
Return to your forwarding rules section and look for the confirm
code text box. Enter the confirmation code you copied and click{' '}
<b>Verify</b>.
</li>
<li>
In the forwarding section of Gmail, Click on{' '}
<b>Creating a Filter</b>
</li>
<li>
Add the email address of your newsletter (eg omnivore@substack.app)
in the <code>From</code> section.
</li>
<li>
Click <code>Create Filter</code>
</li>
<li>
Choose <b>Forward it to</b> and enter your Omnivore Email Address
(eg <code>username-sdfsd@inbox.omnivore.app</code>)
</li>
<li>
Click <code>Create Filter</code> at the bottom of the dialog.
</li>
</ul>
</Box>
<Box css={{ height: '120px' }} />
</SettingsLayout>
)
}

View file

@ -1,163 +0,0 @@
/* eslint-disable @next/next/no-img-element */
import { Box, HStack } from '../../components/elements/LayoutPrimitives'
import { PrimaryLayout } from '../../components/templates/PrimaryLayout'
import { Button } from '../../components/elements/Button'
import Link from 'next/link'
import { SettingsLayout } from '../../components/templates/SettingsLayout'
export default function Colors(): JSX.Element {
return (
<SettingsLayout>
<Box
css={{
m: '42px',
maxWidth: '640px',
color: '$grayText',
img: {
maxWidth: '85%',
},
'@smDown': {
m: '16px',
maxWidth: '85%',
alignSelf: 'center',
},
}}
>
<h1>Saving Links to your Omnivore Library</h1>
<hr />
<h3>Learn how to save links to your Omnivore Library</h3>
<p>
Omnivore is a place to store everything you read. We keep it safe,
organized, and easy to share.
</p>
<p>
When you start using Omnivore, it is important to figure out the best
way to save content to your library.
</p>
<ul>
<li>
<a href="#savingfromyouriphone">Saving from your iPhone</a>
</li>
<li>
<a href="#savingfromyourandroiddevice">
Saving from your Android Device
</a>
</li>
<li>
<a href="#savingfromyourcomputer">Saving from your Computer</a>
</li>
<li>
<a href="#savingpdfswiththemacapp">Saving PDFs from your Mac</a>
</li>
</ul>
<h2 id="savingfromyouriphone">Saving from your iPhone</h2>
<p>
If you are using an iPhone or iPad, the best way to save links is by
installing the iOS app. You can find the iOS app here:{' '}
<a href="https://omnivore.app/install/ios">
https://omnivore.app/install/ios
</a>
</p>
<p>
With the iOS Share extension installed, you can save links from Safari
or any other app that supports sharing links.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
width={212}
height={347}
src="/static/help/share-module-ios.gif"
alt="Animated image of iOS share extension share action"
/>
</HStack>
<h2 id="savingfromyourandroiddevice">
Saving from your Android Device
</h2>
<p>
If you are using an Android device you can install the Omnivore
Progressive Web App. After logging in to Omnivore in Chrome you should
see an &#8220;Install Omnivore&#8221; option. Most Android versions
display this at the bottom of the screen.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/android-bottom-bar.png"
alt="Save button shown on Android device"
/>
</HStack>
<p>
After installing Omnivore as a Progressive Web App it will be
displayed in your Sharing Menu on Chrome.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/android-share.png"
alt="Android device with Omnivore progressive web app installed"
/>
</HStack>
<h2 id="savingfromyourcomputer">Saving from your computer</h2>
<p>
If you are saving from a computer, you will need to install the
Omnivore extension for the web browser(s) you use.
</p>
The browser extensions are available here:
<ul>
<li>
<a href="https://omnivore.app/install/chrome">Chrome</a>
</li>
<li>
<a href="https://omnivore.app/install/edge">Edge</a>
</li>
<li>
<a href="https://omnivore.app/install/firefox">FireFox</a>
</li>
<li>
<a href="https://omnivore.app/install/safari">Safari</a>
</li>
</ul>
<p>
With the browser extension(s) of your choice installed, you can tap
the Omnivore button on any page to save your link.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/share-extension.gif"
alt="Animated image of browser plugin save action"
/>
</HStack>
<h2 id="savingpdfswiththemacapp">Saving PDFs with the Mac App</h2>
<p>
<a href="https://omnivore.app/install/mac">
https://omnivore.app/install/mac
</a>
</p>
<p>
With the MacOS App installed you can upload PDFs from your computer to
your Omnivore library by right-clicking and sharing to Omnivore.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/saving-pdfs-mac.png"
alt="Animated image of macOS share extension link saving"
/>
</HStack>
<p>
You can enable sharing from Finder on the Mac in the Extensions
section of System Preferences.
</p>
<HStack distribution="center" css={{ width: '100%', my: '32px' }}>
<img
src="/static/help/enable-sharing-on-mac.gif"
alt="Animated image of enabling share extension for macOS Finder"
/>
</HStack>
<HStack alignment="center" css={{ mb: '32px', width: '100%' }}>
<Link passHref href="/home">
<Button style="ctaDarkYellow">Start Reading</Button>
</Link>
</HStack>
</Box>
<Box css={{ height: '120px' }} />
</SettingsLayout>
)
}

View file

@ -1,200 +0,0 @@
/* eslint-disable @next/next/no-img-element */
import { Box } from '../../components/elements/LayoutPrimitives'
import { SettingsLayout } from '../../components/templates/SettingsLayout'
export default function Search(): JSX.Element {
return (
<SettingsLayout>
<Box
css={{
m: '42px',
maxWidth: '640px',
color: '$grayText',
img: {
maxWidth: '85%',
},
'@smDown': {
m: '16px',
maxWidth: '85%',
alignSelf: 'center',
},
}}
>
<h1>Search</h1>
<hr />
<p>
Omnivore uses search to filter items in your library. You can use a
simple keyword search or our advanced search syntax to find items.
</p>
<ul>
<li>
<a href="#text">Searching for text</a>
</li>
<li>
<a href="#label">Filtering by label</a>
</li>
<li>
<a href="#in">Filtering by archive status</a>
</li>
<li>
<a href="#is">Filtering by read state</a>
</li>
<li>
<a href="#type">Filtering by type</a>
</li>
<li>
<a href="#has">Finding highlights</a>
</li>
<li>
<a href="#dates">Filtering by save/publish dates</a>
</li>
<li>
<a href="#sort">Sorting</a>
</li>
</ul>
<h2 id="text">Searching for text</h2>
<p>
Omnivore will perform full text search across library item&apos;s
content, title, description, and site by default. You can search for
specific terms by quoting your terms. By default all results that
match your search will be returned in the order they were saved. To
change your search to relevance use the <code>sort:score</code>{' '}
parameter.
</p>
<h2 id="label">Filtering by label</h2>
<p>
You can filter your search based on labels using AND and OR clauses.
You can also negate a label search to find pages that do not have a
certain label.
</p>
<p>Some examples:</p>
<ul>
<li>
label:Newsletter finds all pages that have the label Newsletter
</li>
<li>
label:Cooking,Fitness finds all your pages with either the Cooking
or Fitness labels
</li>
<li>
label:Newsletter label:Surfing finds all pages with both the
Newsletter and Surfing labels
</li>
<li>
label:Coding -label:News finds all pages with the Coding label that
do not have the News label
</li>
</ul>
<h2 id="in">Filtering by archive status</h2>
<p>
The <code>in:</code> filter is used to filter search by archive
status. The options are:
</p>
<ul>
<li>
<code>in:inbox</code> (the default): show unarchived items
</li>
<li>
<code>in:archive</code>: show archived items
</li>
<li>
<code>in:all</code>: Show all items regardless of archive state
</li>
</ul>
<h2 id="is">Filtering by read state</h2>
<p>
The <code>is:</code> filter is used to filter search by read state.
Note that in Omnivore &apos;read&apos; means fully read, not just
opened.
</p>
<p>
The <code>is:</code> filter options are:{' '}
</p>
<ul>
<li>
<code>is:read</code>: Show only items that are fully read
</li>
<li>
<code>is:unread</code> (the default): show unread items
</li>
</ul>
<h2 id="type">Filtering by type</h2>
<p>
The <code>type:</code> filter is used to filter search by type.
</p>
<ul>
<li>
<code>type:article</code>: Show only articles
</li>
<li>
<code>type:file</code>: Show only files
</li>
<li>
<code>type:pdf</code>: Show only PDFs
</li>
<li>
<code>type:highlights</code>: Show your highlights
</li>
</ul>
<h2 id="has">Finding highlights</h2>
<p>
You can find your highlights by using the <code>type:highlights</code>{' '}
filter or find saved items with highlights using the{' '}
<code>has:highlights</code> filter.
</p>
<h2 id="dates">Filtering by save/publish dates</h2>
<p>
You can filter your searches based on the time they were saved or
published using the
<code>saved:</code> and <code>published:</code> filters. These filters
take two dates to create a date range. The <code>*</code> wildcard
will accept any date.
</p>
<p>For Example:</p>
<ul>
<li>
<code>saved:2022-04-21..*</code> All items saved since 2022-04-21
</li>
<li>
<code>published:2020-01-01..2022-02-02</code> All items published
between 2020-01-01 and 2022-02-02
</li>
<li>
<code>published:*..2020-01-01</code> All items published before
2020-01-01
</li>
</ul>
<h2 id="sort">Sorting</h2>
<p>
By default all search results in Omnivore are sorted by saved date.
This puts the most recently saved items at the top of your library.
You can use sort options to change the library order:
</p>
<ul>
<li>
<code>sort:saved</code>: Sort by saved date
</li>
<li>
<code>sort:updated</code>: Sort by time the item was updated, for
example having a label or highlight added.
</li>
<li>
<code>sort:score</code>: Sort by query term relevance.
</li>
</ul>
</Box>
<Box css={{ height: '120px' }} />
</SettingsLayout>
)
}

View file

@ -117,7 +117,7 @@ export default function EmailsPage(): JSX.Element {
<>
<SettingsTable
pageId="settings-emails-tag"
pageInfoLink="/help/newsletters"
pageInfoLink="https://docs.omnivore.app/using/inbox.html"
headerTitle="Address"
createTitle="Create a new email address"
createAction={createEmail}

View file

@ -280,7 +280,7 @@ export default function LabelsPage(): JSX.Element {
<Box>
<StyledText style="fixedHeadline">Labels </StyledText>
</Box>
<InfoLink href="/help/labels" />
<InfoLink href="https://docs.omnivore.app/using/organizing.html#labels" />
<Box
css={{
display: 'flex',

View file

@ -44,7 +44,7 @@ export default function SubscriptionsPage(): JSX.Element {
return (
<SettingsTable
pageId="settings-subscriptions-tag"
pageInfoLink="/help/newsletters"
pageInfoLink="https://docs.omnivore.app/using/inbox.html"
headerTitle="Subscriptions"
>
<>