refactor: rename project from OpenReader WebUI to OpenReader across all relevant files.
This commit is contained in:
parent
f7af557073
commit
a0cc189a0f
21 changed files with 62 additions and 58 deletions
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
|
@ -11,7 +11,7 @@ assignees: richardr1126
|
||||||
A description of what the bug is, which explains how you got there.
|
A description of what the bug is, which explains how you got there.
|
||||||
|
|
||||||
**Environment info:**
|
**Environment info:**
|
||||||
- OpenReader-WebUI version: [e.g. v0.2.5 (found in the terminal when starting)]
|
- OpenReader version: [e.g. v0.2.5 (found in the terminal when starting)]
|
||||||
- Using Docker: yes/no
|
- Using Docker: yes/no
|
||||||
- Browser: [e.g. Safari, Firefox, Chromium]
|
- Browser: [e.g. Safari, Firefox, Chromium]
|
||||||
- Device: [e.g. iPhone16, Macbook Pro, Intel/AMD PC]
|
- Device: [e.g. iPhone16, Macbook Pro, Intel/AMD PC]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
OpenReader-WebUI
|
OpenReader
|
||||||
Third-Party Notices
|
Third-Party Notices
|
||||||
===================
|
===================
|
||||||
|
|
||||||
|
|
|
||||||
26
README.md
26
README.md
|
|
@ -1,16 +1,18 @@
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/releases)
|
[](https://github.com/richardr1126/openreader/releases)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://docs.openreader.richardr.dev/)
|
[](https://docs.openreader.richardr.dev/)
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/actions/workflows/playwright.yml)
|
[](https://github.com/richardr1126/openreader/actions/workflows/playwright.yml)
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/actions/workflows/docs-check.yml)
|
[](https://github.com/richardr1126/openreader/actions/workflows/docs-check.yml)
|
||||||
|
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/stargazers)
|
[](https://github.com/richardr1126/openreader/stargazers)
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/network/members)
|
[](https://github.com/richardr1126/openreader/network/members)
|
||||||
[](https://github.com/richardr1126/OpenReader-WebUI/discussions)
|
[](https://github.com/richardr1126/openreader/discussions)
|
||||||
|
|
||||||
# 📄🔊 OpenReader WebUI
|
# 📄🔊 OpenReader
|
||||||
|
|
||||||
OpenReader WebUI is an open source, self-host-friendly text-to-speech document reader built with Next.js for **EPUB, PDF, TXT, MD, and DOCX** with synchronized read-along playback.
|
OpenReader is an open source, self-host-friendly text-to-speech document reader built with Next.js for **EPUB, PDF, TXT, MD, and DOCX** with synchronized read-along playback.
|
||||||
|
|
||||||
|
> Previously named **OpenReader-WebUI**.
|
||||||
|
|
||||||
> **Get started in the [docs](https://docs.openreader.richardr.dev/)**.
|
> **Get started in the [docs](https://docs.openreader.richardr.dev/)**.
|
||||||
|
|
||||||
|
|
@ -40,8 +42,8 @@ OpenReader WebUI is an open source, self-host-friendly text-to-speech document r
|
||||||
|
|
||||||
## 🧭 Community
|
## 🧭 Community
|
||||||
|
|
||||||
- Questions and ideas: [GitHub Discussions](https://github.com/richardr1126/OpenReader-WebUI/discussions)
|
- Questions and ideas: [GitHub Discussions](https://github.com/richardr1126/openreader/discussions)
|
||||||
- Bug reports: [GitHub Issues](https://github.com/richardr1126/OpenReader-WebUI/issues)
|
- Bug reports: [GitHub Issues](https://github.com/richardr1126/openreader/issues)
|
||||||
- Contributions: open a pull request
|
- Contributions: open a pull request
|
||||||
|
|
||||||
## 📜 License
|
## 📜 License
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
title: License
|
title: License
|
||||||
---
|
---
|
||||||
|
|
||||||
OpenReader WebUI is licensed under the MIT License.
|
OpenReader is licensed under the MIT License.
|
||||||
|
|
||||||
- Repository license file: [LICENSE](https://github.com/richardr1126/OpenReader-WebUI/blob/main/LICENSE)
|
- Repository license file: [LICENSE](https://github.com/richardr1126/openreader/blob/main/LICENSE)
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ title: Support and Contributing
|
||||||
|
|
||||||
## Feature requests
|
## Feature requests
|
||||||
|
|
||||||
Use [GitHub Discussions](https://github.com/richardr1126/OpenReader-WebUI/discussions) for feature requests and ideas.
|
Use [GitHub Discussions](https://github.com/richardr1126/openreader/discussions) for feature requests and ideas.
|
||||||
|
|
||||||
## Issues and support
|
## Issues and support
|
||||||
|
|
||||||
If you encounter a bug, open an issue in [GitHub Issues](https://github.com/richardr1126/OpenReader-WebUI/issues).
|
If you encounter a bug, open an issue in [GitHub Issues](https://github.com/richardr1126/openreader/issues).
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
title: Database
|
title: Database
|
||||||
---
|
---
|
||||||
|
|
||||||
This page covers database mode selection for OpenReader WebUI.
|
This page covers database mode selection for OpenReader.
|
||||||
|
|
||||||
## Database mode
|
## Database mode
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ title: Migrations
|
||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
This page covers migration behavior for both database schema and storage data in OpenReader WebUI.
|
This page covers migration behavior for both database schema and storage data in OpenReader.
|
||||||
|
|
||||||
## Startup migration behavior
|
## Startup migration behavior
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ title: TTS Providers
|
||||||
import Tabs from '@theme/Tabs';
|
import Tabs from '@theme/Tabs';
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
OpenReader WebUI supports OpenAI-compatible TTS providers through a common API shape.
|
OpenReader supports OpenAI-compatible TTS providers through a common API shape.
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
If you are running a self-hosted TTS server (Kokoro/Orpheus/etc.), use **Custom OpenAI-Like** in Settings.
|
If you are running a self-hosted TTS server (Kokoro/Orpheus/etc.), use **Custom OpenAI-Like** in Settings.
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,8 @@ Set `WHISPER_CPP_BIN` in your `.env` to enable word-by-word highlighting.
|
||||||
1. Clone the repository.
|
1. Clone the repository.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/richardr1126/OpenReader-WebUI.git
|
git clone https://github.com/richardr1126/openreader.git
|
||||||
cd OpenReader-WebUI
|
cd OpenReader
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Install dependencies.
|
2. Install dependencies.
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
title: Vercel Deployment
|
title: Vercel Deployment
|
||||||
---
|
---
|
||||||
|
|
||||||
This guide covers deploying OpenReader WebUI to Vercel with external Postgres and S3-compatible object storage.
|
This guide covers deploying OpenReader to Vercel with external Postgres and S3-compatible object storage.
|
||||||
|
|
||||||
## What works on Vercel
|
## What works on Vercel
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,11 +22,11 @@ If you have suitable hardware, you can run Kokoro locally with Docker. See [Koko
|
||||||
Auth disabled, embedded storage ephemeral, no library import:
|
Auth disabled, embedded storage ephemeral, no library import:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --name openreader-webui \
|
docker run --name openreader \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-p 3003:3003 \
|
-p 3003:3003 \
|
||||||
-p 8333:8333 \
|
-p 8333:8333 \
|
||||||
ghcr.io/richardr1126/openreader-webui:latest
|
ghcr.io/richardr1126/openreader:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
@ -35,7 +35,7 @@ docker run --name openreader-webui \
|
||||||
Persistent storage, embedded SeaweedFS `weed mini`, optional auth, optional library mount:
|
Persistent storage, embedded SeaweedFS `weed mini`, optional auth, optional library mount:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --name openreader-webui \
|
docker run --name openreader \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-p 3003:3003 \
|
-p 3003:3003 \
|
||||||
-p 8333:8333 \
|
-p 8333:8333 \
|
||||||
|
|
@ -45,7 +45,7 @@ docker run --name openreader-webui \
|
||||||
-e API_KEY=none \
|
-e API_KEY=none \
|
||||||
-e BASE_URL=http://localhost:3003 \
|
-e BASE_URL=http://localhost:3003 \
|
||||||
-e AUTH_SECRET=$(openssl rand -hex 32) \
|
-e AUTH_SECRET=$(openssl rand -hex 32) \
|
||||||
ghcr.io/richardr1126/openreader-webui:latest
|
ghcr.io/richardr1126/openreader:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
@ -91,10 +91,10 @@ If `8333` is not reachable from the browser, direct presigned access is unavaila
|
||||||
## 3. Update Docker image
|
## 3. Update Docker image
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker stop openreader-webui || true && \
|
docker stop openreader || true && \
|
||||||
docker rm openreader-webui || true && \
|
docker rm openreader || true && \
|
||||||
docker image rm ghcr.io/richardr1126/openreader-webui:latest || true && \
|
docker image rm ghcr.io/richardr1126/openreader:latest || true && \
|
||||||
docker pull ghcr.io/richardr1126/openreader-webui:latest
|
docker pull ghcr.io/richardr1126/openreader:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ title: Introduction
|
||||||
slug: /
|
slug: /
|
||||||
---
|
---
|
||||||
|
|
||||||
OpenReader WebUI is an open source text-to-speech document reader built with Next.js. It provides a read-along experience with narration for **EPUB, PDF, TXT, MD, and DOCX documents**.
|
OpenReader is an open source text-to-speech document reader built with Next.js. It provides a read-along experience with narration for **EPUB, PDF, TXT, MD, and DOCX documents**.
|
||||||
|
|
||||||
|
> Previously named **OpenReader-WebUI**.
|
||||||
|
|
||||||
It supports multiple TTS providers including OpenAI, DeepInfra, and custom OpenAI-compatible endpoints such as [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) and [Orpheus-FastAPI](https://github.com/Lex-au/Orpheus-FastAPI).
|
It supports multiple TTS providers including OpenAI, DeepInfra, and custom OpenAI-compatible endpoints such as [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI) and [Orpheus-FastAPI](https://github.com/Lex-au/Orpheus-FastAPI).
|
||||||
|
|
||||||
|
|
@ -46,4 +48,4 @@ It supports multiple TTS providers including OpenAI, DeepInfra, and custom OpenA
|
||||||
|
|
||||||
## Source Repository
|
## Source Repository
|
||||||
|
|
||||||
- GitHub: [richardr1126/OpenReader-WebUI](https://github.com/richardr1126/OpenReader-WebUI)
|
- GitHub: [richardr1126/openreader](https://github.com/richardr1126/openreader)
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ title: Environment Variables
|
||||||
toc_max_heading_level: 3
|
toc_max_heading_level: 3
|
||||||
---
|
---
|
||||||
|
|
||||||
This is the single reference page for OpenReader WebUI environment variables.
|
This is the single reference page for OpenReader environment variables.
|
||||||
|
|
||||||
## Quick Reference Table
|
## Quick Reference Table
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import type { Config } from '@docusaurus/types';
|
||||||
import type * as Preset from '@docusaurus/preset-classic';
|
import type * as Preset from '@docusaurus/preset-classic';
|
||||||
|
|
||||||
const config: Config = {
|
const config: Config = {
|
||||||
title: 'OpenReader WebUI Docs',
|
title: 'OpenReader Docs',
|
||||||
tagline: 'Docs for OpenReader',
|
tagline: 'Docs for OpenReader',
|
||||||
favicon: 'favicon.ico',
|
favicon: 'favicon.ico',
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ const config: Config = {
|
||||||
baseUrl: '/',
|
baseUrl: '/',
|
||||||
|
|
||||||
organizationName: 'richardr1126',
|
organizationName: 'richardr1126',
|
||||||
projectName: 'OpenReader-WebUI',
|
projectName: 'OpenReader',
|
||||||
|
|
||||||
onBrokenLinks: 'throw',
|
onBrokenLinks: 'throw',
|
||||||
markdown: {
|
markdown: {
|
||||||
|
|
@ -36,7 +36,7 @@ const config: Config = {
|
||||||
docs: {
|
docs: {
|
||||||
routeBasePath: '/',
|
routeBasePath: '/',
|
||||||
sidebarPath: './sidebars.ts',
|
sidebarPath: './sidebars.ts',
|
||||||
editUrl: 'https://github.com/richardr1126/OpenReader-WebUI/tree/main/docs-site/',
|
editUrl: 'https://github.com/richardr1126/openreader/tree/main/docs-site/',
|
||||||
// lastVersion: 'current',
|
// lastVersion: 'current',
|
||||||
// versions: {
|
// versions: {
|
||||||
// current: {
|
// current: {
|
||||||
|
|
@ -74,7 +74,7 @@ const config: Config = {
|
||||||
respectPrefersColorScheme: true,
|
respectPrefersColorScheme: true,
|
||||||
},
|
},
|
||||||
navbar: {
|
navbar: {
|
||||||
title: 'OpenReader WebUI',
|
title: 'OpenReader',
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
type: 'docSidebar',
|
type: 'docSidebar',
|
||||||
|
|
@ -87,7 +87,7 @@ const config: Config = {
|
||||||
position: 'left',
|
position: 'left',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: 'https://github.com/richardr1126/OpenReader-WebUI',
|
href: 'https://github.com/richardr1126/openreader',
|
||||||
label: 'GitHub',
|
label: 'GitHub',
|
||||||
position: 'right',
|
position: 'right',
|
||||||
},
|
},
|
||||||
|
|
@ -99,15 +99,15 @@ const config: Config = {
|
||||||
title: 'Community',
|
title: 'Community',
|
||||||
items: [
|
items: [
|
||||||
{ label: 'Support', to: '/about/support-and-contributing' },
|
{ label: 'Support', to: '/about/support-and-contributing' },
|
||||||
{ label: 'GitHub Discussions', href: 'https://github.com/richardr1126/OpenReader-WebUI/discussions' },
|
{ label: 'GitHub Discussions', href: 'https://github.com/richardr1126/openreader/discussions' },
|
||||||
{ label: 'Issues', href: 'https://github.com/richardr1126/OpenReader-WebUI/issues' },
|
{ label: 'Issues', href: 'https://github.com/richardr1126/openreader/issues' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Project',
|
title: 'Project',
|
||||||
items: [
|
items: [
|
||||||
{ label: 'GitHub', href: 'https://github.com/richardr1126/OpenReader-WebUI' },
|
{ label: 'GitHub', href: 'https://github.com/richardr1126/openreader' },
|
||||||
{ label: 'Releases', href: 'https://github.com/richardr1126/OpenReader-WebUI/releases' },
|
{ label: 'Releases', href: 'https://github.com/richardr1126/openreader/releases' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "openreader-webui",
|
"name": "openreader",
|
||||||
"version": "v1.3.0",
|
"version": "v1.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -292,7 +292,7 @@ export default function PublicLayout({ children }: { children: ReactNode }) {
|
||||||
<footer className="landing-footer">
|
<footer className="landing-footer">
|
||||||
<div className="landing-footer-inner">
|
<div className="landing-footer-inner">
|
||||||
<a
|
<a
|
||||||
href="https://github.com/richardr1126/OpenReader-WebUI#readme"
|
href="https://github.com/richardr1126/openreader#readme"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="landing-footer-link-bold"
|
className="landing-footer-link-bold"
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ export const metadata: Metadata = {
|
||||||
type: 'website',
|
type: 'website',
|
||||||
locale: 'en_US',
|
locale: 'en_US',
|
||||||
url: 'https://openreader.richardr.dev',
|
url: 'https://openreader.richardr.dev',
|
||||||
siteName: 'OpenReader WebUI',
|
siteName: 'OpenReader',
|
||||||
title: 'OpenReader WebUI | Read and Listen to Documents',
|
title: 'OpenReader | Read and Listen to Documents',
|
||||||
description:
|
description:
|
||||||
'Upload EPUB, PDF, TXT, MD, and DOCX files, then listen with synchronized read-along playback using OpenAI-compatible TTS providers.',
|
'Upload EPUB, PDF, TXT, MD, and DOCX files, then listen with synchronized read-along playback using OpenAI-compatible TTS providers.',
|
||||||
images: [
|
images: [
|
||||||
|
|
@ -23,7 +23,7 @@ export const metadata: Metadata = {
|
||||||
url: '/web-app-manifest-512x512.png',
|
url: '/web-app-manifest-512x512.png',
|
||||||
width: 512,
|
width: 512,
|
||||||
height: 512,
|
height: 512,
|
||||||
alt: 'OpenReader WebUI Logo',
|
alt: 'OpenReader Logo',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ import Link from 'next/link';
|
||||||
import { headers } from 'next/headers';
|
import { headers } from 'next/headers';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'Privacy & Data Usage | OpenReader WebUI',
|
title: 'Privacy & Data Usage | OpenReader',
|
||||||
description:
|
description:
|
||||||
'Learn how OpenReader WebUI handles your data, what is stored in your browser, and what is sent to the server.',
|
'Learn how OpenReader handles your data, what is stored in your browser, and what is sent to the server.',
|
||||||
alternates: {
|
alternates: {
|
||||||
canonical: '/privacy',
|
canonical: '/privacy',
|
||||||
},
|
},
|
||||||
|
|
@ -272,12 +272,12 @@ export default async function PrivacyPage() {
|
||||||
If you have questions or concerns about this Privacy Policy, please contact the instance administrator via the repository:
|
If you have questions or concerns about this Privacy Policy, please contact the instance administrator via the repository:
|
||||||
</p>
|
</p>
|
||||||
<a
|
<a
|
||||||
href="https://github.com/richardr1126/OpenReader-WebUI/issues"
|
href="https://github.com/richardr1126/openreader/issues"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="text-accent hover:underline font-medium"
|
className="text-accent hover:underline font-medium"
|
||||||
>
|
>
|
||||||
OpenReader WebUI Issues
|
OpenReader Issues
|
||||||
</a>
|
</a>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -285,7 +285,7 @@ export default async function PrivacyPage() {
|
||||||
<p className="privacy-note mt-12 pt-8 border-t border-border">
|
<p className="privacy-note mt-12 pt-8 border-t border-border">
|
||||||
For maximum privacy, you can self-host OpenReader using the{' '}
|
For maximum privacy, you can self-host OpenReader using the{' '}
|
||||||
<a
|
<a
|
||||||
href="https://github.com/richardr1126/OpenReader-WebUI#readme"
|
href="https://github.com/richardr1126/openreader#readme"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ const themeInitScript = `
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: {
|
title: {
|
||||||
default: "OpenReader WebUI",
|
default: "OpenReader",
|
||||||
template: "%s | OpenReader WebUI",
|
template: "%s | OpenReader",
|
||||||
},
|
},
|
||||||
manifest: "/manifest.json",
|
manifest: "/manifest.json",
|
||||||
metadataBase: new URL("https://openreader.richardr.dev"),
|
metadataBase: new URL("https://openreader.richardr.dev"),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "OpenReader WebUI",
|
"name": "OpenReader",
|
||||||
"short_name": "OpenReader",
|
"short_name": "OpenReader",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ export function useMediaSession(controls: MediaControls) {
|
||||||
if ('mediaSession' in navigator) {
|
if ('mediaSession' in navigator) {
|
||||||
navigator.mediaSession.metadata = new MediaMetadata({
|
navigator.mediaSession.metadata = new MediaMetadata({
|
||||||
title: 'Text-to-Speech',
|
title: 'Text-to-Speech',
|
||||||
artist: 'OpenReader WebUI',
|
artist: 'OpenReader',
|
||||||
album: 'Current Document',
|
album: 'Current Document',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue