Compare commits
12 Commits
0ac214c10e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ba7968d29 | ||
|
|
4d7fcaadf2 | ||
|
|
4d2bdbaebb | ||
|
|
75bd2ec8cf | ||
|
|
be3909a224 | ||
|
|
9ae66c9627 | ||
|
|
c8aa5c707b | ||
|
|
c0fb103d45 | ||
|
|
95149fb9c3 | ||
|
|
889732b301 | ||
|
|
7f2c2589f3 | ||
|
|
30b9a60baf |
2
main.ts
2
main.ts
@@ -32,6 +32,7 @@ export default class LocalBibleRefPlugin extends Plugin {
|
||||
const calloutSettings = {
|
||||
type: CalloutType.Quote,
|
||||
linkToPassage: true,
|
||||
collapsible: true,
|
||||
};
|
||||
|
||||
this.settings ??= {
|
||||
@@ -39,6 +40,7 @@ export default class LocalBibleRefPlugin extends Plugin {
|
||||
defaultVersionShorthand: '',
|
||||
defaultPassageFormat: PassageFormat.Callout,
|
||||
bibleFormat: BibleFormat.LocalBibleRef,
|
||||
fullPreview: false,
|
||||
quote: quoteSettings,
|
||||
callout: calloutSettings,
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "local-bible-ref",
|
||||
"name": "Local Bible Ref",
|
||||
"version": "1.2.2",
|
||||
"version": "1.3.1",
|
||||
"minAppVersion": "1.9.14",
|
||||
"description": "Quickly and easily reference Bible passages stored locally in your vault.",
|
||||
"author": "Caleb Campbell",
|
||||
|
||||
400
package-lock.json
generated
400
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "local-bible-ref",
|
||||
"version": "1.2.2",
|
||||
"version": "1.3.1",
|
||||
"description": "Quickly and easily reference Bible passages stored locally in your Obsidian vault.",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
90
src/i18n/cs/books.ts
Normal file
90
src/i18n/cs/books.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { Book } from '../models';
|
||||
|
||||
export const BOOKS: Book[] = [
|
||||
{ id: 'gen', name: '1. Mojžišova', aliases: ['Genesis', '1mz', '1 mz'] },
|
||||
{ id: 'exo', name: '2. Mojžišova', aliases: ['Exodus', '2mz', '2 mz'] },
|
||||
{ id: 'lev', name: '3. Mojžišova', aliases: ['Leviticus', '3mz', '3 mz'] },
|
||||
{ id: 'num', name: '4. Mojžišova', aliases: ['Numeri', '4mz', '4 mz'] },
|
||||
{
|
||||
id: 'deu',
|
||||
name: '5. Mojžišova',
|
||||
aliases: ['Deuteronomium', '5mz', '5 mz'],
|
||||
},
|
||||
{ id: 'jos', name: 'Józua', aliases: ['Jozue', 'joz'] },
|
||||
{ id: 'jdg', name: 'Sudcov', aliases: ['Soudců', 'sd'] },
|
||||
{ id: 'rut', name: 'Rút', aliases: [] },
|
||||
{ id: '1sa', name: '1. Samuelova', aliases: ['1 Samuel'] },
|
||||
{ id: '2sa', name: '2. Samuelova', aliases: ['2 Samuel'] },
|
||||
{ id: '1ki', name: '1. Královská', aliases: ['1 Královská', '1kr', '1 kr'] },
|
||||
{ id: '2ki', name: '2. Královská', aliases: ['2 Královská', '2kr', '2 kr'] },
|
||||
{
|
||||
id: '1ch',
|
||||
name: '1. Kronická',
|
||||
aliases: ['1 Letopisů', '1. Paralipomenon', '1pa', '1par', '1 pa', '1 par'],
|
||||
},
|
||||
{
|
||||
id: '2ch',
|
||||
name: '2. Kronická',
|
||||
aliases: ['2 Letopisů', '2. Paralipomenon', '2pa', '2par', '2 pa', '2 par'],
|
||||
},
|
||||
{ id: 'ezr', name: 'Ezdráš', aliases: ['ezd'] },
|
||||
{ id: 'neh', name: 'Nehemiáš', aliases: [] },
|
||||
{ id: 'est', name: 'Ester', aliases: [] },
|
||||
{ id: 'job', name: 'Jób', aliases: ['Job'] },
|
||||
{ id: 'psa', name: 'Žalmy', aliases: ['ž', 'žal', 'žalm'] },
|
||||
{ id: 'pro', name: 'Príslovia', aliases: ['Přísloví', 'př', 'přís'] },
|
||||
{ id: 'ecc', name: 'Kazatel', aliases: ['kaz'] },
|
||||
{ id: 'sng', name: 'Pieseò', aliases: ['Píseň', 'pís', 'písn'] },
|
||||
{ id: 'isa', name: 'Izaiáš', aliases: ['iz'] },
|
||||
{ id: 'jer', name: 'Jeremiáš', aliases: [] },
|
||||
{ id: 'lam', name: 'Plaè', aliases: ['Pláč', 'pl'] },
|
||||
{ id: 'ezk', name: 'Ezechiel', aliases: ['ez'] },
|
||||
{ id: 'dan', name: 'Daniel', aliases: [] },
|
||||
{ id: 'hos', name: 'Hozeáš', aliases: ['Ozeáš', 'oz'] },
|
||||
{ id: 'jol', name: 'Joel', aliases: [] },
|
||||
{ id: 'amo', name: 'Ámos', aliases: ['Amos'] },
|
||||
{ id: 'oba', name: 'Obadiáš', aliases: ['Abdiáš', 'abd'] },
|
||||
{ id: 'jon', name: 'Jonáš', aliases: [] },
|
||||
{ id: 'mic', name: 'Micheáš', aliases: [] },
|
||||
{ id: 'nam', name: 'Náhum', aliases: ['Nahum'] },
|
||||
{ id: 'hab', name: 'Habakuk', aliases: ['Abakuk', 'ab', 'abk'] },
|
||||
{ id: 'zep', name: 'Sofoniáš', aliases: ['sof'] },
|
||||
{ id: 'hag', name: 'Haggeus', aliases: ['Ageus', 'ag'] },
|
||||
{ id: 'zec', name: 'Zachariáš', aliases: ['zach'] },
|
||||
{ id: 'mal', name: 'Malachiáš', aliases: [] },
|
||||
{ id: 'mat', name: 'Matouš', aliases: [] },
|
||||
{ id: 'mrk', name: 'Marek', aliases: [] },
|
||||
{ id: 'luk', name: 'Lukáš', aliases: [] },
|
||||
{ id: 'jhn', name: 'Jan', aliases: [] },
|
||||
{ id: 'act', name: 'Skutky Apoštolů', aliases: ['Skutky', 'sk'] },
|
||||
{ id: 'rom', name: 'Římanům', aliases: ['řím'] },
|
||||
{ id: '1co', name: '1 Korintským', aliases: ['1k', '1kor', '1 k', '1 kor'] },
|
||||
{ id: '2co', name: '2 Korintským', aliases: ['2k', '2kor', '2 k', '2 kor'] },
|
||||
{ id: 'gal', name: 'Galatským', aliases: [] },
|
||||
{ id: 'eph', name: 'Efezským', aliases: ['Efeským', 'ef'] },
|
||||
{ id: 'php', name: 'Filipským', aliases: ['fp'] },
|
||||
{ id: 'col', name: 'Koloským', aliases: ['ko', 'kol'] },
|
||||
{
|
||||
id: '1th',
|
||||
name: '1 Tesalonickým',
|
||||
aliases: ['1te', '1tes', '1 te', '1 tes'],
|
||||
},
|
||||
{
|
||||
id: '2th',
|
||||
name: '2 Tesalonickým',
|
||||
aliases: ['2te', '2tes', '2 te', '2 tes'],
|
||||
},
|
||||
{ id: '1ti', name: '1 Timoteovi', aliases: ['1 Timoteus', '1tm', '1 tm'] },
|
||||
{ id: '2ti', name: '2 Timoteovi', aliases: ['2 Timoteus', '2tm', '2 tm'] },
|
||||
{ id: 'tit', name: 'Titovi', aliases: ['Titus'] },
|
||||
{ id: 'phm', name: 'Filemonovi', aliases: ['Filemon', 'fm', 'flm'] },
|
||||
{ id: 'heb', name: 'Židům', aliases: ['žd'] },
|
||||
{ id: 'jas', name: 'Jakubův', aliases: ['Jakub', 'jk'] },
|
||||
{ id: '1pe', name: '1 Petrův', aliases: ['1 Petr'] },
|
||||
{ id: '2pe', name: '2 Petrův', aliases: ['2 Petr'] },
|
||||
{ id: '1jn', name: '1 Janův', aliases: ['1 Jan'] },
|
||||
{ id: '2jn', name: '2 Janův', aliases: ['2 Jan'] },
|
||||
{ id: '3jn', name: '3 Janův', aliases: ['3 Jan'] },
|
||||
{ id: 'jud', name: 'Judův', aliases: ['Juda', 'ju'] },
|
||||
{ id: 'rev', name: 'Zjevení Janovo', aliases: ['Zjevení', 'zj'] },
|
||||
];
|
||||
7
src/i18n/cs/common-labels.ts
Normal file
7
src/i18n/cs/common-labels.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { CommonLabels } from '../models';
|
||||
|
||||
export const COMMON_LABELS: CommonLabels = {
|
||||
folderDoesNotExist: 'Složka v cestě neexistuje:',
|
||||
settingsNotConfigured:
|
||||
'Nastavení lokálních biblických odkazů není nakonfigurováno. Před pokusem o odkazování na pasáže prosím nastavte cestu k biblickým textům.',
|
||||
};
|
||||
9
src/i18n/cs/index.ts
Normal file
9
src/i18n/cs/index.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { BOOKS } from './books';
|
||||
import { COMMON_LABELS } from './common-labels';
|
||||
import { SETTINGS_LABELS } from './settings-labels';
|
||||
|
||||
export const CS = {
|
||||
BOOKS,
|
||||
COMMON: COMMON_LABELS,
|
||||
SETTINGS: SETTINGS_LABELS,
|
||||
};
|
||||
97
src/i18n/cs/settings-labels.ts
Normal file
97
src/i18n/cs/settings-labels.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
import { PassageFormat } from 'src/passage-reference';
|
||||
import { SettingsLabels } from '../models';
|
||||
import { QuoteReferencePosition } from 'src/settings';
|
||||
|
||||
export const SETTINGS_LABELS: SettingsLabels = {
|
||||
required: {
|
||||
name: 'Požadovaný',
|
||||
controls: {
|
||||
biblesPath: {
|
||||
name: 'Biblická cesta',
|
||||
description: 'Cesta ke složce obsahující vaše bible.',
|
||||
placeholder: 'např. Data/Bible',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
optional: {
|
||||
name: 'Volitelný',
|
||||
controls: {
|
||||
defaultVersion: {
|
||||
name: 'Výchozí verze',
|
||||
description:
|
||||
'Verze, která se má používat ve výchozím nastavení – zkrácená verze. Měla by odpovídat složce ve výše vybrané složce bible.',
|
||||
placeholder: 'např. CSP',
|
||||
},
|
||||
defaultPassageFormat: {
|
||||
name: 'Výchozí formát pasáže',
|
||||
description:
|
||||
'Formát markdownu, který se má ve výchozím nastavení použít pro pasáže.',
|
||||
options: {
|
||||
[PassageFormat.Manuscript]: 'Rukopis',
|
||||
[PassageFormat.Paragraph]: 'Odstavec',
|
||||
[PassageFormat.Quote]: 'Citovat',
|
||||
[PassageFormat.Callout]: 'Popisek',
|
||||
},
|
||||
},
|
||||
bibleFormat: {
|
||||
name: 'Biblický formát',
|
||||
description:
|
||||
'Styl formátování, který používáte pro své bible v úložišti. Local Bible Ref se na něj spoléhá pro správnou analýzu pasáží.',
|
||||
},
|
||||
fullPreview: {
|
||||
name: 'Náhled celé pasáže',
|
||||
description:
|
||||
'Zda se v náhledu má zobrazit celá pasáž, a ne jen její úryvek.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
quoteFormat: {
|
||||
name: 'Formát citace',
|
||||
controls: {
|
||||
includeReference: {
|
||||
name: 'Zahrnout odkaz',
|
||||
description: 'Zda zahrnout odkaz na danou pasáž.',
|
||||
},
|
||||
referencePosition: {
|
||||
name: 'Referenční pozice',
|
||||
description: 'Pozice odkazu vzhledem k citovanému textu.',
|
||||
options: {
|
||||
[QuoteReferencePosition.Beginning]: 'Začátek',
|
||||
[QuoteReferencePosition.End]: 'Konec',
|
||||
},
|
||||
},
|
||||
linkToPassage: {
|
||||
name: 'Odkaz na pasáž',
|
||||
description: 'Zda odkazovat na pasáž ve vaší Bibli v trezoru.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
calloutFormat: {
|
||||
name: 'Formát popisku',
|
||||
controls: {
|
||||
calloutType: {
|
||||
name: 'Typ volání',
|
||||
description: 'Typ popisu, který se má pro daný text použít.',
|
||||
},
|
||||
linkToPassage: {
|
||||
name: 'Odkaz na pasáž',
|
||||
description: 'Zda odkazovat na pasáž ve vaší Bibli v trezoru.',
|
||||
},
|
||||
collapsible: {
|
||||
name: 'Skládací',
|
||||
description:
|
||||
'Zda je popis, který se má pro daný text použít, sbalitelný.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
issues: {
|
||||
before:
|
||||
'Pokud narazíte na nějaké problémy s Local Bible Ref nebo máte návrhy na vylepšení, ',
|
||||
link: 'otevřete prosím problém na GitHubu',
|
||||
after: '.',
|
||||
},
|
||||
};
|
||||
@@ -4,7 +4,7 @@ import { QuoteReferencePosition } from 'src/settings';
|
||||
|
||||
export const SETTINGS_LABELS: SettingsLabels = {
|
||||
required: {
|
||||
name: 'Erforderliche Einstellungen',
|
||||
name: 'Erforderlich',
|
||||
controls: {
|
||||
biblesPath: {
|
||||
name: 'Bibeldateien',
|
||||
@@ -15,7 +15,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
optional: {
|
||||
name: 'Optionale Einstellungen',
|
||||
name: 'Optional',
|
||||
controls: {
|
||||
defaultVersion: {
|
||||
name: 'Standardversion',
|
||||
@@ -39,12 +39,16 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
description:
|
||||
'Der Formatierungsstil, den Sie für Ihre Vault-Bibeln verwenden. Local Bible Ref benötigt diesen, um Textpassagen korrekt zu analysieren.',
|
||||
},
|
||||
fullPreview: {
|
||||
name: 'Vollständige Passage-Vorschau',
|
||||
description:
|
||||
'Ob in der Vorschau der vollständige Text oder nur ein Ausschnitt angezeigt werden soll.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
quoteFormat: {
|
||||
name: 'Einstellungen für das Angebotsformat',
|
||||
description: 'Einstellungen für das Zitatpassageformat.',
|
||||
name: 'Angebotsformat',
|
||||
controls: {
|
||||
includeReference: {
|
||||
name: 'Referenz angeben',
|
||||
@@ -68,8 +72,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
calloutFormat: {
|
||||
name: 'Einstellungen für das Callout-Format',
|
||||
description: 'Einstellungen für das Format des Callout-Passages.',
|
||||
name: 'Callout-Format',
|
||||
controls: {
|
||||
calloutType: {
|
||||
name: 'Callout-Typ',
|
||||
@@ -81,6 +84,11 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
description:
|
||||
'Ob Sie den Verweis auf die Passage in Ihrer Tresorbibel verlinken möchten.',
|
||||
},
|
||||
collapsible: {
|
||||
name: 'Zusammenklappbar',
|
||||
description:
|
||||
'Ob der für die Passage zu verwendende Hinweis einklappbar ist.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { QuoteReferencePosition } from 'src/settings';
|
||||
|
||||
export const SETTINGS_LABELS: SettingsLabels = {
|
||||
required: {
|
||||
name: 'Required Settings',
|
||||
name: 'Required',
|
||||
controls: {
|
||||
biblesPath: {
|
||||
name: 'Bibles path',
|
||||
@@ -15,7 +15,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
optional: {
|
||||
name: 'Optional Settings',
|
||||
name: 'Optional',
|
||||
controls: {
|
||||
defaultVersion: {
|
||||
name: 'Default version',
|
||||
@@ -38,12 +38,16 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
description:
|
||||
'The formatting style you use for your vault bibles. Local Bible Ref relies on this to parse passages correctly.',
|
||||
},
|
||||
fullPreview: {
|
||||
name: 'Full Passage Preview',
|
||||
description:
|
||||
'Whether to display the full passage in the preview rather than just a snippet.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
quoteFormat: {
|
||||
name: 'Quote Format Settings',
|
||||
description: 'Settings for the quote passage format.',
|
||||
name: 'Quote format',
|
||||
controls: {
|
||||
includeReference: {
|
||||
name: 'Include reference',
|
||||
@@ -67,8 +71,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
calloutFormat: {
|
||||
name: 'Callout Format Settings',
|
||||
description: 'Settings for the callout passage format.',
|
||||
name: 'Callout format',
|
||||
controls: {
|
||||
calloutType: {
|
||||
name: 'Callout type',
|
||||
@@ -79,6 +82,11 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
description:
|
||||
'Whether to link the reference to the passage in your vault Bible.',
|
||||
},
|
||||
collapsible: {
|
||||
name: 'Collapsible',
|
||||
description:
|
||||
'Whether the callout to use for the passage is collapsible.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { CS } from './cs';
|
||||
import { DE } from './de';
|
||||
import { EN } from './en';
|
||||
import { KO } from './ko';
|
||||
|
||||
export const I18N = {
|
||||
CS,
|
||||
DE,
|
||||
EN,
|
||||
KO,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { QuoteReferencePosition } from 'src/settings';
|
||||
|
||||
export const SETTINGS_LABELS: SettingsLabels = {
|
||||
required: {
|
||||
name: '필수 설정',
|
||||
name: '필수의',
|
||||
controls: {
|
||||
biblesPath: {
|
||||
name: '성경의 길',
|
||||
@@ -15,7 +15,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
optional: {
|
||||
name: '선택적 설정',
|
||||
name: '선택 과목',
|
||||
controls: {
|
||||
defaultVersion: {
|
||||
name: '기본 버전',
|
||||
@@ -38,12 +38,15 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
description:
|
||||
'보관된 성경에 사용하는 서식 스타일입니다. Local Bible Ref는 이 스타일을 기반으로 구절을 정확하게 분석합니다.',
|
||||
},
|
||||
fullPreview: {
|
||||
name: '전체 구절 미리보기',
|
||||
description: '미리보기에서 전체 내용을 표시할지, 아니면 일부만 표시할지 여부.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
quoteFormat: {
|
||||
name: '견적 형식 설정',
|
||||
description: '인용구 형식 설정입니다.',
|
||||
name: '견적 형식',
|
||||
controls: {
|
||||
includeReference: {
|
||||
name: '참조 포함',
|
||||
@@ -65,8 +68,7 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
},
|
||||
|
||||
calloutFormat: {
|
||||
name: '콜아웃 형식 설정',
|
||||
description: '설명문 형식 설정입니다.',
|
||||
name: '콜아웃 형식',
|
||||
controls: {
|
||||
calloutType: {
|
||||
name: '콜아웃 유형',
|
||||
@@ -76,6 +78,11 @@ export const SETTINGS_LABELS: SettingsLabels = {
|
||||
name: '통로 바로가기',
|
||||
description: '보관된 성경의 해당 구절에 참조를 연결할지 여부.',
|
||||
},
|
||||
collapsible: {
|
||||
name: '접을 수 있는',
|
||||
description:
|
||||
'해당 구절에 사용할 콜아웃이 접을 수 있는지 여부.',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
@@ -33,12 +33,12 @@ export interface SettingsLabels {
|
||||
};
|
||||
};
|
||||
bibleFormat: Control;
|
||||
fullPreview: Control;
|
||||
};
|
||||
};
|
||||
|
||||
quoteFormat: {
|
||||
name: string;
|
||||
description: string;
|
||||
controls: {
|
||||
includeReference: Control;
|
||||
referencePosition: Control & {
|
||||
@@ -53,10 +53,10 @@ export interface SettingsLabels {
|
||||
|
||||
calloutFormat: {
|
||||
name: string;
|
||||
description: string;
|
||||
controls: {
|
||||
calloutType: Control;
|
||||
linkToPassage: Control;
|
||||
collapsible: Control;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
Notice,
|
||||
PluginSettingTab,
|
||||
Setting,
|
||||
SettingGroup,
|
||||
TextComponent,
|
||||
} from 'obsidian';
|
||||
import { PassageFormat } from './passage-reference';
|
||||
@@ -16,7 +17,7 @@ import { SettingsLabels } from './i18n/models';
|
||||
import { I18N } from './i18n';
|
||||
|
||||
export default class LocalBibleRefSettingTab extends PluginSettingTab {
|
||||
private readonly hiddenClass = 'local-bible-ref-hidden';
|
||||
private readonly settingClass = 'local-bible-ref-setting';
|
||||
|
||||
private plugin: LocalBibleRefPlugin;
|
||||
private folderDoesNotExistText = '';
|
||||
@@ -27,6 +28,10 @@ export default class LocalBibleRefSettingTab extends PluginSettingTab {
|
||||
this.plugin = plugin;
|
||||
|
||||
switch (getLanguage()) {
|
||||
case 'cs':
|
||||
this.folderDoesNotExistText = I18N.CS.COMMON.folderDoesNotExist;
|
||||
this.settingsLabels = I18N.CS.SETTINGS;
|
||||
break;
|
||||
case 'de':
|
||||
this.folderDoesNotExistText = I18N.DE.COMMON.folderDoesNotExist;
|
||||
this.settingsLabels = I18N.DE.SETTINGS;
|
||||
@@ -49,210 +54,265 @@ export default class LocalBibleRefSettingTab extends PluginSettingTab {
|
||||
this.settingsLabels;
|
||||
containerEl.empty();
|
||||
|
||||
new Setting(containerEl).setName(required.name).setHeading();
|
||||
|
||||
// required settings ---
|
||||
let biblesPathTimeout: number;
|
||||
new Setting(containerEl)
|
||||
.setName(required.controls.biblesPath.name)
|
||||
.setDesc(required.controls.biblesPath.description)
|
||||
.addText((text) => {
|
||||
text
|
||||
.setPlaceholder(required.controls.biblesPath.placeholder)
|
||||
.setValue(this.plugin.settings.biblesPath)
|
||||
.onChange(async (value) => {
|
||||
// toggle visibility of default version setting
|
||||
if (value) {
|
||||
defaultVersionSetting.settingEl.removeClass(this.hiddenClass);
|
||||
} else {
|
||||
defaultVersionSetting.settingEl.addClass(this.hiddenClass);
|
||||
(
|
||||
defaultVersionSetting.components[0] as TextComponent
|
||||
).inputEl.value = '';
|
||||
this.plugin.settings.defaultVersionShorthand = '';
|
||||
}
|
||||
new SettingGroup(containerEl)
|
||||
.setHeading(required.name)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(required.controls.biblesPath.name)
|
||||
.setDesc(required.controls.biblesPath.description)
|
||||
.setClass(this.settingClass)
|
||||
.addText((text) => {
|
||||
text
|
||||
.setPlaceholder(required.controls.biblesPath.placeholder)
|
||||
.setValue(this.plugin.settings.biblesPath)
|
||||
.onChange(async (value) => {
|
||||
// toggle editability of default version setting
|
||||
if (value) {
|
||||
defaultVersionSetting.setDisabled(false);
|
||||
} else {
|
||||
defaultVersionSetting.setDisabled(true);
|
||||
const textComponent = defaultVersionSetting
|
||||
.components[0] as TextComponent;
|
||||
textComponent.inputEl.value = '';
|
||||
this.plugin.settings.defaultVersionShorthand = '';
|
||||
}
|
||||
|
||||
const path = value ? normalizePath(value) : '';
|
||||
this.plugin.settings.biblesPath = path;
|
||||
await this.plugin.saveSettings();
|
||||
const path = value ? normalizePath(value) : '';
|
||||
this.plugin.settings.biblesPath = path;
|
||||
await this.plugin.saveSettings();
|
||||
|
||||
clearTimeout(biblesPathTimeout);
|
||||
biblesPathTimeout = window.setTimeout(async () => {
|
||||
if (!path) return;
|
||||
const exists = this.app.vault.getFolderByPath(path);
|
||||
if (!exists)
|
||||
new Notice(`${this.folderDoesNotExistText} ${path}.`);
|
||||
}, 1000);
|
||||
});
|
||||
clearTimeout(biblesPathTimeout);
|
||||
biblesPathTimeout = window.setTimeout(async () => {
|
||||
if (!path) return;
|
||||
const exists = this.app.vault.getFolderByPath(path);
|
||||
if (!exists)
|
||||
new Notice(`${this.folderDoesNotExistText} ${path}.`);
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
new PathSuggest(this.app, text.inputEl);
|
||||
});
|
||||
|
||||
new Setting(containerEl).setName(optional.name).setHeading();
|
||||
new PathSuggest(this.app, text.inputEl);
|
||||
})
|
||||
);
|
||||
|
||||
// optional settings ---
|
||||
let defaultVersionTimeout: number;
|
||||
const defaultVersionSetting = new Setting(containerEl)
|
||||
.setName(optional.controls.defaultVersion.name)
|
||||
.setDesc(optional.controls.defaultVersion.description)
|
||||
.addText((text) => {
|
||||
text
|
||||
.setPlaceholder(optional.controls.defaultVersion.placeholder)
|
||||
.setValue(this.plugin.settings.defaultVersionShorthand)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.defaultVersionShorthand = value;
|
||||
await this.plugin.saveSettings();
|
||||
let defaultVersionSetting = {} as Setting;
|
||||
new SettingGroup(containerEl)
|
||||
.setHeading(optional.name)
|
||||
.addSetting((setting) => {
|
||||
setting
|
||||
.setName(optional.controls.defaultVersion.name)
|
||||
.setDesc(optional.controls.defaultVersion.description)
|
||||
.setClass(this.settingClass)
|
||||
.addText((text) => {
|
||||
text
|
||||
.setPlaceholder(optional.controls.defaultVersion.placeholder)
|
||||
.setValue(this.plugin.settings.defaultVersionShorthand)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.defaultVersionShorthand = value;
|
||||
await this.plugin.saveSettings();
|
||||
|
||||
clearTimeout(defaultVersionTimeout);
|
||||
defaultVersionTimeout = window.setTimeout(async () => {
|
||||
const path = `${this.plugin.settings.biblesPath}/${value}`;
|
||||
const exists = this.app.vault.getFolderByPath(
|
||||
normalizePath(path)
|
||||
);
|
||||
if (!exists)
|
||||
new Notice(`${this.folderDoesNotExistText} ${path}.`);
|
||||
}, 1000);
|
||||
clearTimeout(defaultVersionTimeout);
|
||||
defaultVersionTimeout = window.setTimeout(async () => {
|
||||
const path = `${this.plugin.settings.biblesPath}/${value}`;
|
||||
const exists = this.app.vault.getFolderByPath(
|
||||
normalizePath(path)
|
||||
);
|
||||
if (!exists)
|
||||
new Notice(`${this.folderDoesNotExistText} ${path}.`);
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
new VersionSuggest(this.app, text.inputEl, this.plugin.settings);
|
||||
});
|
||||
|
||||
new VersionSuggest(this.app, text.inputEl, this.plugin.settings);
|
||||
if (this.plugin.settings.biblesPath) setting.setDisabled(false);
|
||||
else setting.setDisabled(true);
|
||||
defaultVersionSetting = setting;
|
||||
})
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(optional.controls.defaultPassageFormat.name)
|
||||
.setDesc(optional.controls.defaultPassageFormat.description)
|
||||
.setClass(this.settingClass)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions(optional.controls.defaultPassageFormat.options)
|
||||
.setValue(this.plugin.settings.defaultPassageFormat)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.defaultPassageFormat =
|
||||
value as PassageFormat;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(optional.controls.bibleFormat.name)
|
||||
.setDesc(optional.controls.bibleFormat.description)
|
||||
.setClass(this.settingClass)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions({
|
||||
[BibleFormat.LocalBibleRef]: 'Local Bible Ref',
|
||||
[BibleFormat.BibleLinker]: 'Bible Linker',
|
||||
})
|
||||
.setValue(this.plugin.settings.bibleFormat)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.bibleFormat = value as BibleFormat;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(optional.controls.fullPreview.name)
|
||||
.setDesc(optional.controls.fullPreview.description)
|
||||
.setClass(this.settingClass)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.fullPreview)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.fullPreview = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
// quote format settings ---
|
||||
let quoteRefPositionSetting = {} as Setting;
|
||||
let quoteRefLinkSetting = {} as Setting;
|
||||
new SettingGroup(containerEl)
|
||||
.setHeading(quoteFormat.name)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(quoteFormat.controls.includeReference.name)
|
||||
.setDesc(quoteFormat.controls.includeReference.description)
|
||||
.setClass(this.settingClass)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.quote.includeReference)
|
||||
.onChange(async (value) => {
|
||||
// toggle editability of other paragraph reference settings
|
||||
if (value) {
|
||||
quoteRefPositionSetting.setDisabled(false);
|
||||
quoteRefLinkSetting.setDisabled(false);
|
||||
} else {
|
||||
quoteRefPositionSetting.setDisabled(true);
|
||||
quoteRefLinkSetting.setDisabled(true);
|
||||
}
|
||||
|
||||
this.plugin.settings.quote.includeReference = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
)
|
||||
.addSetting((setting) => {
|
||||
setting
|
||||
.setName(quoteFormat.controls.referencePosition.name)
|
||||
.setDesc(quoteFormat.controls.referencePosition.description)
|
||||
.setClass(this.settingClass)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions(quoteFormat.controls.referencePosition.options)
|
||||
.setValue(this.plugin.settings.quote.referencePosition)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.quote.referencePosition =
|
||||
value as QuoteReferencePosition;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
const includeRef = this.plugin.settings.quote.includeReference;
|
||||
if (includeRef) setting.setDisabled(false);
|
||||
else setting.setDisabled(true);
|
||||
quoteRefPositionSetting = setting;
|
||||
})
|
||||
.addSetting((setting) => {
|
||||
setting
|
||||
.setName(quoteFormat.controls.linkToPassage.name)
|
||||
.setDesc(quoteFormat.controls.linkToPassage.description)
|
||||
.setClass(this.settingClass)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.quote.linkToPassage)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.quote.linkToPassage = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
const includeRef = this.plugin.settings.quote.includeReference;
|
||||
if (includeRef) setting.setDisabled(false);
|
||||
else setting.setDisabled(true);
|
||||
quoteRefLinkSetting = setting;
|
||||
});
|
||||
|
||||
if (this.plugin.settings.biblesPath) {
|
||||
defaultVersionSetting.settingEl.removeClass(this.hiddenClass);
|
||||
} else {
|
||||
defaultVersionSetting.settingEl.addClass(this.hiddenClass);
|
||||
}
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(optional.controls.defaultPassageFormat.name)
|
||||
.setDesc(optional.controls.defaultPassageFormat.description)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions(optional.controls.defaultPassageFormat.options)
|
||||
.setValue(this.plugin.settings.defaultPassageFormat)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.defaultPassageFormat = value as PassageFormat;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
// callout format settings ---
|
||||
new SettingGroup(containerEl)
|
||||
.setHeading(calloutFormat.name)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(calloutFormat.controls.calloutType.name)
|
||||
.setDesc(calloutFormat.controls.calloutType.description)
|
||||
.setClass(this.settingClass)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions({
|
||||
note: 'Note',
|
||||
abstract: 'Abstract',
|
||||
info: 'Info',
|
||||
todo: 'Todo',
|
||||
tip: 'Tip',
|
||||
success: 'Success',
|
||||
question: 'Question',
|
||||
warning: 'Warning',
|
||||
failure: 'Failure',
|
||||
danger: 'Danger',
|
||||
bug: 'Bug',
|
||||
example: 'Example',
|
||||
quote: 'Quote',
|
||||
})
|
||||
.setValue(this.plugin.settings.callout.type)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.callout.type = value as CalloutType;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(calloutFormat.controls.linkToPassage.name)
|
||||
.setDesc(calloutFormat.controls.linkToPassage.description)
|
||||
.setClass(this.settingClass)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.callout.linkToPassage)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.callout.linkToPassage = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
)
|
||||
.addSetting((setting) =>
|
||||
setting
|
||||
.setName(calloutFormat.controls.collapsible.name)
|
||||
.setDesc(calloutFormat.controls.collapsible.description)
|
||||
.setClass(this.settingClass)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.callout.collapsible)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.callout.collapsible = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(optional.controls.bibleFormat.name)
|
||||
.setDesc(optional.controls.bibleFormat.description)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions({
|
||||
[BibleFormat.LocalBibleRef]: 'Local Bible Ref',
|
||||
[BibleFormat.BibleLinker]: 'Bible Linker',
|
||||
})
|
||||
.setValue(this.plugin.settings.bibleFormat)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.bibleFormat = value as BibleFormat;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(quoteFormat.name)
|
||||
.setDesc(quoteFormat.description)
|
||||
.setHeading();
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(quoteFormat.controls.includeReference.name)
|
||||
.setDesc(quoteFormat.controls.includeReference.description)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.quote.includeReference)
|
||||
.onChange(async (value) => {
|
||||
// toggle visibility of other paragraph reference settings
|
||||
if (value) {
|
||||
quoteRefPositionSetting.settingEl.removeClass(this.hiddenClass);
|
||||
quoteRefLinkSetting.settingEl.removeClass(this.hiddenClass);
|
||||
} else {
|
||||
quoteRefPositionSetting.settingEl.addClass(this.hiddenClass);
|
||||
quoteRefLinkSetting.settingEl.addClass(this.hiddenClass);
|
||||
}
|
||||
|
||||
this.plugin.settings.quote.includeReference = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
const quoteRefPositionSetting = new Setting(containerEl)
|
||||
.setName(quoteFormat.controls.referencePosition.name)
|
||||
.setDesc(quoteFormat.controls.referencePosition.description)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions(quoteFormat.controls.referencePosition.options)
|
||||
.setValue(this.plugin.settings.quote.referencePosition)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.quote.referencePosition =
|
||||
value as QuoteReferencePosition;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
const quoteRefLinkSetting = new Setting(containerEl)
|
||||
.setName(quoteFormat.controls.linkToPassage.name)
|
||||
.setDesc(quoteFormat.controls.linkToPassage.description)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.quote.linkToPassage)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.quote.linkToPassage = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
if (this.plugin.settings.quote.includeReference) {
|
||||
quoteRefPositionSetting.settingEl.removeClass(this.hiddenClass);
|
||||
quoteRefLinkSetting.settingEl.removeClass(this.hiddenClass);
|
||||
} else {
|
||||
quoteRefPositionSetting.settingEl.addClass(this.hiddenClass);
|
||||
quoteRefLinkSetting.settingEl.addClass(this.hiddenClass);
|
||||
}
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(calloutFormat.name)
|
||||
.setDesc(calloutFormat.description)
|
||||
.setHeading();
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(calloutFormat.controls.calloutType.name)
|
||||
.setDesc(calloutFormat.controls.calloutType.description)
|
||||
.addDropdown((dropdown) =>
|
||||
dropdown
|
||||
.addOptions({
|
||||
note: 'Note',
|
||||
abstract: 'Abstract',
|
||||
info: 'Info',
|
||||
todo: 'Todo',
|
||||
tip: 'Tip',
|
||||
success: 'Success',
|
||||
question: 'Question',
|
||||
warning: 'Warning',
|
||||
failure: 'Failure',
|
||||
danger: 'Danger',
|
||||
bug: 'Bug',
|
||||
example: 'Example',
|
||||
quote: 'Quote',
|
||||
})
|
||||
.setValue(this.plugin.settings.callout.type)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.callout.type = value as CalloutType;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(calloutFormat.controls.linkToPassage.name)
|
||||
.setDesc(calloutFormat.controls.linkToPassage.description)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(this.plugin.settings.callout.linkToPassage)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.callout.linkToPassage = value;
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
// just acts as a spacer for the issues link
|
||||
new Setting(containerEl).setHeading();
|
||||
|
||||
const issuesLink = document.createElement('a');
|
||||
issuesLink.href = 'https://github.com/camelChief/local-bible-ref/issues';
|
||||
|
||||
@@ -61,7 +61,7 @@ export default class PassageReference
|
||||
.map((b) => `${b.name}|${b.aliases.join('|')}`)
|
||||
.join('|');
|
||||
regExpString +=
|
||||
') ?(\\d{1,3}(?::\\d{1,3})?(?: ?\\- ?\\d{1,3}(?::\\d{1,3})?)?)((?: ?\\+[a-z]+(?::[a-z]+)?){0,2})$';
|
||||
') ?(\\d{1,3}(?::\\d{1,3})?(?: ?\\- ?\\d{1,3}(?::\\d{1,3})?)?)((?: ?\\+\\w+(?::[a-z]+)?){0,2})$';
|
||||
|
||||
return new RegExp(regExpString, 'i');
|
||||
}
|
||||
@@ -210,6 +210,8 @@ export default class PassageReference
|
||||
|
||||
function getBooksByLanguage(): Book[] {
|
||||
switch (getLanguage()) {
|
||||
case 'cs':
|
||||
return I18N.CS.BOOKS;
|
||||
case 'de':
|
||||
return I18N.DE.BOOKS;
|
||||
case 'ko':
|
||||
|
||||
@@ -27,6 +27,9 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
||||
this.settings = settings;
|
||||
|
||||
switch (getLanguage()) {
|
||||
case 'cs':
|
||||
this.settingsNotConfiguredText = I18N.CS.COMMON.settingsNotConfigured;
|
||||
break;
|
||||
case 'de':
|
||||
this.settingsNotConfiguredText = I18N.DE.COMMON.settingsNotConfigured;
|
||||
break;
|
||||
@@ -117,7 +120,8 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
||||
});
|
||||
|
||||
// suggest
|
||||
const excerpt = this.generateExcerpt(texts[0]);
|
||||
const fullText = texts.join('\n\n');
|
||||
const excerpt = this.generateExcerpt(fullText);
|
||||
const text = this.formatTexts(texts, passageRef, context);
|
||||
return [{ excerpt, text }];
|
||||
}
|
||||
@@ -295,15 +299,23 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
||||
|
||||
/** Generates an excerpt for the suggestion. */
|
||||
private generateExcerpt(text: string): string {
|
||||
text = text.split(/<\/sup>/, 2)[1];
|
||||
text = text.replace(/<sup>\d+<\/sup>/g, '');
|
||||
text = text.replace(/^(?:> |- )/gm, '');
|
||||
const fullPreview = this.settings.fullPreview;
|
||||
if (fullPreview) {
|
||||
text = text.replace(/<sup>/g, '');
|
||||
text = text.replace(/<\/sup>/g, '');
|
||||
} else {
|
||||
text = text.split(/<\/sup>/, 2)[1];
|
||||
text = text.replace(/<sup>\d+<\/sup>/g, '');
|
||||
text = text.replace(/^(?:> |- )/gm, '');
|
||||
}
|
||||
|
||||
text = text.replace(
|
||||
/<span(?:\s+\w+=['"][^'"]+['"])*>([^<]+)<\/span>/g,
|
||||
'$1'
|
||||
);
|
||||
text = text.replace(/\n/g, ' ');
|
||||
if (!fullPreview) text = text.replace(/\n/g, ' ');
|
||||
text = text.replace(/ {2,}/g, ' ');
|
||||
if (fullPreview) return text;
|
||||
return text.slice(0, 45) + '...';
|
||||
}
|
||||
|
||||
@@ -352,14 +364,14 @@ export default class PassageSuggest extends EditorSuggest<PassageSuggestion> {
|
||||
break;
|
||||
}
|
||||
case PassageFormat.Callout: {
|
||||
const { type, linkToPassage } = this.settings.callout;
|
||||
const { type, linkToPassage, collapsible } = this.settings.callout;
|
||||
|
||||
let stringRef = '';
|
||||
if (linkToPassage)
|
||||
stringRef = this.generatePassageLink(passageRef, context);
|
||||
else stringRef = passageRef.stringify();
|
||||
|
||||
formatted = `> [!${type}] ${stringRef}\n`;
|
||||
formatted = `> [!${type}]${collapsible ? '+' : ''} ${stringRef}\n`;
|
||||
formatted += texts.join('\n\n').trim();
|
||||
formatted = formatted.replace(/\n/gm, '\n> ');
|
||||
formatted += '\n\n';
|
||||
|
||||
@@ -6,6 +6,7 @@ export default interface LocalBibleRefSettings {
|
||||
defaultVersionShorthand: string;
|
||||
defaultPassageFormat: PassageFormat;
|
||||
bibleFormat: BibleFormat;
|
||||
fullPreview: boolean;
|
||||
quote: {
|
||||
includeReference: boolean;
|
||||
referencePosition: QuoteReferencePosition;
|
||||
@@ -14,6 +15,7 @@ export default interface LocalBibleRefSettings {
|
||||
callout: {
|
||||
type: CalloutType;
|
||||
linkToPassage: boolean;
|
||||
collapsible: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
div.setting-item.local-bible-ref-hidden {
|
||||
display: none;
|
||||
}
|
||||
div.setting-item.local-bible-ref-setting.is-disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
Reference in New Issue
Block a user