bookish-press 0.4.0 → 0.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/components/Auth.svelte +19 -14
- package/components/Auth.svelte.d.ts +4 -4
- package/components/Authentication.d.ts +2 -2
- package/components/BookPreview.svelte +77 -59
- package/components/BookPreview.svelte.d.ts +5 -5
- package/components/External.svelte +1 -1
- package/components/External.svelte.d.ts +3 -3
- package/components/Link.svelte +49 -3
- package/components/Link.svelte.d.ts +3 -4
- package/components/app/BookList.svelte +19 -0
- package/components/app/BookList.svelte.d.ts +18 -0
- package/components/app/Button.svelte +49 -0
- package/components/app/Button.svelte.d.ts +22 -0
- package/components/app/Feedback.svelte +45 -0
- package/components/app/Feedback.svelte.d.ts +18 -0
- package/components/app/Head.svelte +12 -0
- package/components/app/Head.svelte.d.ts +27 -0
- package/components/app/Large.svelte +8 -0
- package/components/app/Large.svelte.d.ts +27 -0
- package/components/app/Lead.svelte +12 -0
- package/components/app/Lead.svelte.d.ts +27 -0
- package/components/app/Link.svelte +24 -0
- package/components/app/Link.svelte.d.ts +20 -0
- package/components/app/Options.svelte +24 -0
- package/components/app/Options.svelte.d.ts +19 -0
- package/components/app/Paragraph.svelte +19 -0
- package/components/app/Paragraph.svelte.d.ts +18 -0
- package/components/app/Table.svelte +32 -0
- package/components/app/Table.svelte.d.ts +27 -0
- package/components/app/TextInput.svelte +37 -0
- package/components/app/TextInput.svelte.d.ts +22 -0
- package/components/app/Writing.svelte +13 -0
- package/components/app/Writing.svelte.d.ts +27 -0
- package/components/chapter/Atom.svelte +20 -6
- package/components/chapter/Atom.svelte.d.ts +3 -3
- package/components/chapter/Block.svelte +23 -20
- package/components/chapter/Block.svelte.d.ts +4 -4
- package/components/chapter/Callout.svelte +38 -7
- package/components/chapter/Callout.svelte.d.ts +4 -4
- package/components/chapter/CaptionedCode.svelte +66 -23
- package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
- package/components/chapter/ChapterBody.svelte +61 -9
- package/components/chapter/ChapterBody.svelte.d.ts +4 -4
- package/components/chapter/Citations.svelte +86 -20
- package/components/chapter/Citations.svelte.d.ts +4 -4
- package/components/chapter/Code.svelte +152 -21
- package/components/chapter/Code.svelte.d.ts +3 -3
- package/components/chapter/Comment.svelte +38 -16
- package/components/chapter/Comment.svelte.d.ts +3 -3
- package/components/chapter/Definition.svelte +52 -18
- package/components/chapter/Definition.svelte.d.ts +5 -8
- package/components/chapter/Embed.svelte +154 -66
- package/components/chapter/Embed.svelte.d.ts +5 -4
- package/components/chapter/ErrorMessage.svelte +7 -2
- package/components/chapter/ErrorMessage.svelte.d.ts +4 -4
- package/components/chapter/ExtendedPrism.d.ts +2 -0
- package/components/chapter/ExtendedPrism.js +69 -0
- package/components/chapter/Figure.svelte +90 -0
- package/components/chapter/Figure.svelte.d.ts +24 -0
- package/components/chapter/Footnote.svelte +75 -12
- package/components/chapter/Footnote.svelte.d.ts +4 -4
- package/components/chapter/Format.svelte +60 -37
- package/components/chapter/Format.svelte.d.ts +4 -4
- package/components/chapter/InlineCode.svelte +15 -5
- package/components/chapter/InlineCode.svelte.d.ts +4 -4
- package/components/chapter/Label.svelte +37 -8
- package/components/chapter/Label.svelte.d.ts +4 -4
- package/components/chapter/Link.svelte +23 -18
- package/components/chapter/Link.svelte.d.ts +4 -4
- package/components/chapter/List.svelte +75 -8
- package/components/chapter/List.svelte.d.ts +4 -4
- package/components/chapter/Marginal.svelte +169 -27
- package/components/chapter/Marginal.svelte.d.ts +6 -3
- package/components/chapter/Paragraph.svelte +74 -6
- package/components/chapter/Paragraph.svelte.d.ts +4 -4
- package/components/chapter/Positioned.svelte +33 -0
- package/components/chapter/Positioned.svelte.d.ts +19 -0
- package/components/chapter/Problem.svelte +15 -0
- package/components/chapter/Problem.svelte.d.ts +27 -0
- package/components/chapter/Python.svelte +68 -21
- package/components/chapter/Python.svelte.d.ts +4 -4
- package/components/chapter/Quote.svelte +64 -11
- package/components/chapter/Quote.svelte.d.ts +4 -4
- package/components/chapter/Rule.svelte +12 -1
- package/components/chapter/Rule.svelte.d.ts +4 -4
- package/components/chapter/Table.svelte +36 -25
- package/components/chapter/Table.svelte.d.ts +4 -4
- package/components/chapter/Text.svelte +61 -36
- package/components/chapter/Text.svelte.d.ts +5 -4
- package/components/editor/BookishEditor.svelte +343 -237
- package/components/editor/BookishEditor.svelte.d.ts +5 -5
- package/components/editor/CalloutEditor.svelte +5 -5
- package/components/editor/CalloutEditor.svelte.d.ts +4 -4
- package/components/editor/CaptionedCodeEditor.svelte +16 -12
- package/components/editor/CaptionedCodeEditor.svelte.d.ts +4 -4
- package/components/editor/CaretContext.d.ts +48 -16
- package/components/editor/CaretState.d.ts +16 -44
- package/components/editor/CaretUtilities.d.ts +2 -2
- package/components/editor/CaretView.svelte +80 -0
- package/components/editor/CaretView.svelte.d.ts +24 -0
- package/components/editor/CitationsEditor.svelte +36 -25
- package/components/editor/CitationsEditor.svelte.d.ts +4 -4
- package/components/editor/Clipboard.d.ts +2 -2
- package/components/editor/Command.d.ts +13 -12
- package/components/editor/Commands.d.ts +1 -1
- package/components/editor/Commands.js +1114 -571
- package/components/editor/ConfirmButton.svelte +18 -12
- package/components/editor/ConfirmButton.svelte.d.ts +5 -4
- package/components/editor/DefinitionEditor.svelte +29 -21
- package/components/editor/DefinitionEditor.svelte.d.ts +4 -4
- package/components/editor/EmbedEditor.svelte +93 -43
- package/components/editor/EmbedEditor.svelte.d.ts +3 -3
- package/components/editor/Icon.svelte +17 -0
- package/components/editor/Icon.svelte.d.ts +16 -0
- package/components/editor/ImageChooser.svelte +53 -34
- package/components/editor/ImageChooser.svelte.d.ts +3 -3
- package/components/editor/InlineCodeEditor.svelte +7 -4
- package/components/editor/InlineCodeEditor.svelte.d.ts +4 -4
- package/components/editor/LabelEditor.svelte +20 -11
- package/components/editor/LabelEditor.svelte.d.ts +4 -4
- package/components/editor/LanguageEditor.svelte +10 -7
- package/components/editor/LanguageEditor.svelte.d.ts +3 -3
- package/components/editor/LinkEditor.svelte +64 -39
- package/components/editor/LinkEditor.svelte.d.ts +4 -4
- package/components/editor/Note.svelte +3 -3
- package/components/editor/Note.svelte.d.ts +6 -2
- package/components/editor/PositionEditor.svelte +9 -6
- package/components/editor/PositionEditor.svelte.d.ts +4 -4
- package/components/editor/QuoteEditor.svelte +7 -2
- package/components/editor/QuoteEditor.svelte.d.ts +4 -4
- package/components/editor/Switch.svelte +55 -28
- package/components/editor/Switch.svelte.d.ts +4 -4
- package/components/editor/TableEditor.svelte +10 -0
- package/components/editor/TableEditor.svelte.d.ts +17 -0
- package/components/editor/TextEditor.svelte +83 -45
- package/components/editor/TextEditor.svelte.d.ts +5 -4
- package/components/editor/Toggle.svelte +11 -8
- package/components/editor/Toggle.svelte.d.ts +4 -4
- package/components/editor/Toolbar.svelte +192 -144
- package/components/editor/Toolbar.svelte.d.ts +5 -8
- package/components/editor/ToolbarGroup.svelte +18 -23
- package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
- package/components/editor/ToolbarSpacer.svelte +8 -1
- package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
- package/components/editor/URLEditor.svelte +6 -8
- package/components/editor/URLEditor.svelte.d.ts +3 -3
- package/components/editor/UndoState.d.ts +3 -3
- package/components/editor/icons/annotate.svg +1 -0
- package/components/editor/icons/block.svg +1 -0
- package/components/editor/icons/bold.svg +1 -0
- package/components/editor/icons/bullets.svg +1 -0
- package/components/editor/icons/callout.svg +1 -0
- package/components/editor/icons/citation.svg +8 -0
- package/components/editor/icons/clear.svg +1 -0
- package/components/editor/icons/clipboard.svg +1 -0
- package/components/editor/icons/code.svg +1 -0
- package/components/editor/icons/columnafter.svg +1 -0
- package/components/editor/icons/columnbefore.svg +1 -0
- package/components/editor/icons/comment.svg +1 -0
- package/components/editor/icons/copy.svg +1 -0
- package/components/editor/icons/cut.svg +1 -0
- package/components/editor/icons/define.svg +7 -0
- package/components/editor/icons/deletecolumn.svg +1 -0
- package/components/editor/icons/deleterow.svg +1 -0
- package/components/editor/icons/footnote.svg +8 -0
- package/components/editor/icons/header1.svg +7 -0
- package/components/editor/icons/header2.svg +7 -0
- package/components/editor/icons/header3.svg +7 -0
- package/components/editor/icons/home.svg +1 -0
- package/components/editor/icons/indent.svg +1 -0
- package/components/editor/icons/italic.svg +1 -0
- package/components/editor/icons/label.svg +1 -0
- package/components/editor/icons/left.svg +1 -0
- package/components/editor/icons/level.svg +1 -0
- package/components/editor/icons/link.svg +1 -0
- package/components/editor/icons/list.svg +1 -0
- package/components/editor/icons/media.svg +1 -0
- package/components/editor/icons/middle.svg +1 -0
- package/components/editor/icons/numbers.svg +10 -0
- package/components/editor/icons/paragraph.svg +1 -0
- package/components/editor/icons/paste.svg +10 -0
- package/components/editor/icons/quote.svg +1 -0
- package/components/editor/icons/redo.svg +1 -0
- package/components/editor/icons/right.svg +1 -0
- package/components/editor/icons/rowabove.svg +1 -0
- package/components/editor/icons/rowbelow.svg +1 -0
- package/components/editor/icons/rule.svg +1 -0
- package/components/editor/icons/sub.svg +1 -0
- package/components/editor/icons/super.svg +1 -0
- package/components/editor/icons/table.svg +1 -0
- package/components/editor/icons/text.svg +1 -0
- package/components/editor/icons/time.svg +1 -0
- package/components/editor/icons/undo.svg +1 -0
- package/components/editor/icons/unindent.svg +1 -0
- package/components/editor/icons/unlink.svg +1 -0
- package/components/page/Acknowledgements.svelte +31 -22
- package/components/page/Acknowledgements.svelte.d.ts +4 -4
- package/components/page/Authors.svelte +34 -14
- package/components/page/Authors.svelte.d.ts +6 -6
- package/components/page/BulkReferenceEditor.svelte +53 -22
- package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
- package/components/page/Chapter.svelte +196 -141
- package/components/page/Chapter.svelte.d.ts +3 -3
- package/components/page/ChapterContext.d.ts +4 -4
- package/components/page/ChapterNumber.svelte +9 -0
- package/components/page/ChapterNumber.svelte.d.ts +27 -0
- package/components/page/ChapterTitle.svelte +16 -0
- package/components/page/ChapterTitle.svelte.d.ts +18 -0
- package/components/page/Contexts.d.ts +31 -20
- package/components/page/Contexts.js +47 -17
- package/components/page/DefinitionView.svelte +115 -86
- package/components/page/DefinitionView.svelte.d.ts +3 -3
- package/components/page/Description.svelte +27 -18
- package/components/page/Description.svelte.d.ts +4 -4
- package/components/page/Edition.svelte +127 -74
- package/components/page/Edition.svelte.d.ts +4 -4
- package/components/page/Editions.svelte +144 -0
- package/components/page/Editions.svelte.d.ts +14 -0
- package/components/page/Glossary.svelte +57 -48
- package/components/page/Glossary.svelte.d.ts +4 -4
- package/components/page/Header.svelte +129 -44
- package/components/page/Header.svelte.d.ts +6 -6
- package/components/page/Index.svelte +114 -80
- package/components/page/Index.svelte.d.ts +4 -4
- package/components/page/Instructions.svelte +18 -16
- package/components/page/Instructions.svelte.d.ts +4 -4
- package/components/page/License.svelte +29 -21
- package/components/page/License.svelte.d.ts +4 -4
- package/components/page/Loading.svelte +102 -12
- package/components/page/Loading.svelte.d.ts +6 -2
- package/components/page/Media.svelte +77 -51
- package/components/page/Media.svelte.d.ts +4 -4
- package/components/page/MediaPreview.svelte +26 -8
- package/components/page/MediaPreview.svelte.d.ts +3 -3
- package/components/page/Muted.svelte +10 -0
- package/components/page/Muted.svelte.d.ts +27 -0
- package/components/page/Outline.svelte +279 -59
- package/components/page/Outline.svelte.d.ts +3 -3
- package/components/page/Page.svelte +40 -9
- package/components/page/Page.svelte.d.ts +3 -3
- package/components/page/PageHeader.svelte +14 -0
- package/components/page/PageHeader.svelte.d.ts +18 -0
- package/components/page/PageParagraph.svelte +18 -0
- package/components/page/PageParagraph.svelte.d.ts +27 -0
- package/components/page/PossibleChapter.svelte +7 -7
- package/components/page/PossibleChapter.svelte.d.ts +4 -4
- package/components/page/PossibleReference.svelte +6 -11
- package/components/page/PossibleReference.svelte.d.ts +6 -7
- package/components/page/Print.svelte +27 -3
- package/components/page/Print.svelte.d.ts +4 -4
- package/components/page/Reference.svelte +256 -113
- package/components/page/Reference.svelte.d.ts +5 -5
- package/components/page/References.svelte +39 -47
- package/components/page/References.svelte.d.ts +4 -4
- package/components/page/Rows.svelte +54 -0
- package/components/page/Rows.svelte.d.ts +27 -0
- package/components/page/Search.svelte +86 -63
- package/components/page/Search.svelte.d.ts +4 -4
- package/components/page/Status.svelte +43 -35
- package/components/page/Status.svelte.d.ts +4 -9
- package/components/page/SubdomainEditor.svelte +40 -27
- package/components/page/SubdomainEditor.svelte.d.ts +4 -4
- package/components/page/TableOfContents.svelte +225 -190
- package/components/page/TableOfContents.svelte.d.ts +4 -4
- package/components/page/TableOfContentsImage.svelte +8 -8
- package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
- package/components/page/TableOfContentsRow.svelte +96 -33
- package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
- package/components/page/ThemeEditor.svelte +174 -39
- package/components/page/ThemeEditor.svelte.d.ts +4 -4
- package/components/page/ThemeEditorPreview.svelte +35 -23
- package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
- package/components/page/ThemeSetEditor.svelte +15 -13
- package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
- package/components/page/ThemeVariableEditor.svelte +24 -15
- package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
- package/components/page/Title.svelte +12 -0
- package/components/page/Title.svelte.d.ts +27 -0
- package/components/page/Unknown.svelte +25 -21
- package/components/page/Unknown.svelte.d.ts +4 -4
- package/components/page/margins.js +50 -33
- package/index.d.ts +14 -0
- package/index.js +14 -0
- package/models/CRUD.d.ts +17 -0
- package/models/CRUD.js +194 -0
- package/models/Firebase.js +17 -15
- package/models/book/Book.d.ts +24 -28
- package/models/book/Book.js +120 -113
- package/models/book/BookMedia.d.ts +3 -3
- package/models/book/BookMedia.js +22 -16
- package/models/book/BookSaveStatus.d.ts +7 -0
- package/models/book/BookSaveStatus.js +8 -0
- package/models/book/Chapter.d.ts +46 -39
- package/models/book/Chapter.js +180 -198
- package/models/book/ChapterID.js +7 -7
- package/models/book/Definition.d.ts +1 -1
- package/models/book/Edition.d.ts +62 -60
- package/models/book/Edition.js +385 -303
- package/models/book/Reference.d.ts +24 -0
- package/models/book/Reference.js +78 -0
- package/models/book/Schema.d.ts +169 -0
- package/models/book/Schema.js +114 -0
- package/models/book/Theme.d.ts +44 -37
- package/models/book/Theme.js +452 -52
- package/models/book/ThemeColors.d.ts +1 -1
- package/models/book/Words.d.ts +2 -0
- package/models/book/Words.js +110 -0
- package/models/chapter/AtomNode.d.ts +4 -4
- package/models/chapter/AtomNode.js +20 -13
- package/models/chapter/BlockNode.d.ts +9 -10
- package/models/chapter/BlockNode.js +32 -13
- package/models/chapter/BlocksNode.d.ts +10 -10
- package/models/chapter/BlocksNode.js +315 -120
- package/models/chapter/BlocksNode.test.js +494 -228
- package/models/chapter/Bookkeeping.d.ts +1 -1
- package/models/chapter/CalloutNode.d.ts +3 -3
- package/models/chapter/CalloutNode.js +34 -12
- package/models/chapter/Caret.d.ts +9 -7
- package/models/chapter/Caret.js +11 -6
- package/models/chapter/ChapterNode.d.ts +11 -11
- package/models/chapter/ChapterNode.js +70 -33
- package/models/chapter/CitationsNode.d.ts +3 -3
- package/models/chapter/CitationsNode.js +31 -12
- package/models/chapter/CodeNode.d.ts +11 -6
- package/models/chapter/CodeNode.js +143 -34
- package/models/chapter/CommentNode.d.ts +5 -5
- package/models/chapter/CommentNode.js +29 -13
- package/models/chapter/DefinitionNode.d.ts +2 -2
- package/models/chapter/DefinitionNode.js +15 -7
- package/models/chapter/Edit.d.ts +3 -3
- package/models/chapter/EmbedNode.d.ts +9 -5
- package/models/chapter/EmbedNode.js +108 -35
- package/models/chapter/ErrorNode.d.ts +2 -2
- package/models/chapter/ErrorNode.js +34 -12
- package/models/chapter/FootnoteNode.d.ts +5 -5
- package/models/chapter/FootnoteNode.js +34 -16
- package/models/chapter/FormatNode.d.ts +10 -10
- package/models/chapter/FormatNode.js +237 -106
- package/models/chapter/FormatNode.test.js +87 -45
- package/models/chapter/InlineCodeNode.d.ts +2 -2
- package/models/chapter/InlineCodeNode.js +22 -9
- package/models/chapter/LabelNode.d.ts +4 -4
- package/models/chapter/LabelNode.js +31 -13
- package/models/chapter/LinkNode.d.ts +2 -2
- package/models/chapter/LinkNode.js +21 -9
- package/models/chapter/ListNode.d.ts +8 -8
- package/models/chapter/ListNode.js +99 -38
- package/models/chapter/ListNode.test.js +29 -24
- package/models/chapter/MetadataNode.d.ts +3 -3
- package/models/chapter/MetadataNode.js +13 -5
- package/models/chapter/Node.d.ts +5 -3
- package/models/chapter/Node.js +76 -29
- package/models/chapter/Node.test.js +20 -18
- package/models/chapter/ParagraphNode.d.ts +6 -6
- package/models/chapter/ParagraphNode.js +84 -29
- package/models/chapter/ParagraphNode.test.js +22 -13
- package/models/chapter/Parser.d.ts +25 -25
- package/models/chapter/Parser.js +201 -189
- package/models/chapter/Parser.test.js +16 -16
- package/models/chapter/Position.d.ts +1 -1
- package/models/chapter/QuoteNode.d.ts +6 -6
- package/models/chapter/QuoteNode.js +61 -23
- package/models/chapter/RootNode.d.ts +4 -4
- package/models/chapter/RuleNode.d.ts +2 -2
- package/models/chapter/RuleNode.js +31 -11
- package/models/chapter/TableNode.d.ts +8 -6
- package/models/chapter/TableNode.js +89 -34
- package/models/chapter/TableNode.test.js +22 -24
- package/models/chapter/TextNode.d.ts +6 -6
- package/models/chapter/TextNode.js +72 -32
- package/models/chapter/TextNode.test.js +4 -4
- package/models/loadEdition.d.ts +1 -1
- package/models/loadEdition.js +10 -6
- package/package.json +104 -25
- package/util/getSubdomain.js +8 -6
- package/util/isMobile.js +1 -1
- package/util/mineReference.d.ts +3 -2
- package/util/mineReference.js +67 -29
- package/util/scrollToEyeLevel.js +6 -1
- package/components/chapter/renderPosition.d.ts +0 -3
- package/components/chapter/renderPosition.js +0 -4
- package/components/editor/ToolbarIcon.svelte +0 -22
- package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
- package/components/page/Alert.svelte +0 -11
- package/components/page/Alert.svelte.d.ts +0 -23
- package/components/page/Revisions.svelte +0 -124
- package/components/page/Revisions.svelte.d.ts +0 -14
- package/models/BookLoader.d.ts +0 -2
- package/models/BookLoader.js +0 -67
- package/models/Firestore.d.ts +0 -22
- package/models/Firestore.js +0 -194
- package/models/chapter/ReferenceNode.d.ts +0 -29
- package/models/chapter/ReferenceNode.js +0 -48
|
@@ -1,47 +1,52 @@
|
|
|
1
|
-
<script>import Instructions from
|
|
2
|
-
import Parser from
|
|
3
|
-
import TableOfContentsRow from
|
|
4
|
-
import ChapterIDs from
|
|
5
|
-
import Page from
|
|
6
|
-
import Header from
|
|
7
|
-
import Outline from
|
|
8
|
-
import Link from
|
|
9
|
-
import SubdomainEditor from
|
|
10
|
-
import Description from
|
|
11
|
-
import Acknowledgements from
|
|
12
|
-
import License from
|
|
13
|
-
import Revisions from
|
|
14
|
-
import Authors from
|
|
15
|
-
import TextEditor from
|
|
16
|
-
import Toggle from
|
|
17
|
-
import { getBase, getEdition, isEditable } from
|
|
1
|
+
<script>import Instructions from './Instructions.svelte';
|
|
2
|
+
import Parser from '../../models/chapter/Parser';
|
|
3
|
+
import TableOfContentsRow from './TableOfContentsRow.svelte';
|
|
4
|
+
import ChapterIDs from '../../models/book/ChapterID';
|
|
5
|
+
import Page from './Page.svelte';
|
|
6
|
+
import Header from './Header.svelte';
|
|
7
|
+
import Outline from './Outline.svelte';
|
|
8
|
+
import Link from '../Link.svelte';
|
|
9
|
+
import SubdomainEditor from './SubdomainEditor.svelte';
|
|
10
|
+
import Description from './Description.svelte';
|
|
11
|
+
import Acknowledgements from './Acknowledgements.svelte';
|
|
12
|
+
import License from './License.svelte';
|
|
13
|
+
import Revisions from './Editions.svelte';
|
|
14
|
+
import Authors from './Authors.svelte';
|
|
15
|
+
import TextEditor from '../editor/TextEditor.svelte';
|
|
16
|
+
import Toggle from '../editor/Toggle.svelte';
|
|
17
|
+
import { getBase, getEdition, isEditable, setChapter } from './Contexts';
|
|
18
|
+
import Muted from './Muted.svelte';
|
|
19
|
+
import Button from '../app/Button.svelte';
|
|
20
|
+
import PageHeader from './PageHeader.svelte';
|
|
21
|
+
import Rows from './Rows.svelte';
|
|
22
|
+
import PageParagraph from './PageParagraph.svelte';
|
|
18
23
|
let edition = getEdition();
|
|
19
24
|
let base = getBase();
|
|
20
25
|
let editable = isEditable();
|
|
21
26
|
function getProgressDescription(progress) {
|
|
22
27
|
if (progress === null)
|
|
23
|
-
return
|
|
28
|
+
return '';
|
|
24
29
|
else if (progress === 0)
|
|
25
|
-
return
|
|
30
|
+
return '';
|
|
26
31
|
else if (progress < 30)
|
|
27
|
-
return
|
|
32
|
+
return '; just started';
|
|
28
33
|
else if (progress < 70)
|
|
29
|
-
return
|
|
34
|
+
return '; halfway';
|
|
30
35
|
else if (progress < 95)
|
|
31
|
-
return
|
|
36
|
+
return '; almost done';
|
|
32
37
|
else
|
|
33
|
-
return
|
|
38
|
+
return '; done';
|
|
34
39
|
}
|
|
35
40
|
// Get the chapter progress
|
|
36
|
-
let progressStorage = localStorage
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
let progressStorage = typeof localStorage !== 'undefined'
|
|
42
|
+
? localStorage.getItem('chapterProgress')
|
|
43
|
+
: null;
|
|
44
|
+
let progress = progressStorage === null ? {} : JSON.parse(progressStorage);
|
|
40
45
|
// Is there a colon? Let's make a subtitle
|
|
41
|
-
$: title = $edition
|
|
46
|
+
$: title = $edition?.getTitle() ?? '';
|
|
42
47
|
let subtitle = undefined;
|
|
43
48
|
$: {
|
|
44
|
-
let colon = title.indexOf(
|
|
49
|
+
let colon = title.indexOf(':');
|
|
45
50
|
if (colon >= 0) {
|
|
46
51
|
subtitle = title.substring(colon + 1).trim();
|
|
47
52
|
title = title.substring(0, colon).trim();
|
|
@@ -49,186 +54,216 @@ $: {
|
|
|
49
54
|
}
|
|
50
55
|
let waitingForChapter = false;
|
|
51
56
|
function addChapter() {
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
if ($edition)
|
|
58
|
+
edition.set($edition.withNewChapter());
|
|
54
59
|
}
|
|
55
60
|
</script>
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
<title
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
62
|
+
{#if $edition}
|
|
63
|
+
<Page title={$edition.getTitle()}>
|
|
64
|
+
<Header
|
|
65
|
+
label="Book title"
|
|
66
|
+
getImage={() => $edition?.getImage('cover') ?? null}
|
|
67
|
+
setImage={(embed) =>
|
|
68
|
+
$edition
|
|
69
|
+
? edition.set($edition.withImage('cover', embed))
|
|
70
|
+
: undefined}
|
|
71
|
+
header={title}
|
|
72
|
+
{subtitle}
|
|
73
|
+
tags={$edition.getTags()}
|
|
74
|
+
save={(text) =>
|
|
75
|
+
$edition ? edition.set($edition.withTitle(text)) : undefined}
|
|
76
|
+
>
|
|
77
|
+
<svelte:fragment slot="before">
|
|
78
|
+
{#if editable}
|
|
79
|
+
<SubdomainEditor />
|
|
80
|
+
{/if}
|
|
81
|
+
</svelte:fragment>
|
|
82
|
+
<Outline
|
|
83
|
+
slot="outline"
|
|
84
|
+
previous={null}
|
|
85
|
+
next={$edition.getNextChapterID('')}
|
|
86
|
+
/>
|
|
87
|
+
<Authors
|
|
88
|
+
slot="after"
|
|
89
|
+
authors={$edition.getAuthors()}
|
|
90
|
+
add={() =>
|
|
91
|
+
$edition ? edition.set($edition.withAuthor('')) : undefined}
|
|
92
|
+
edit={(index, text) =>
|
|
93
|
+
$edition
|
|
94
|
+
? edition.set($edition.withAuthorName(index, text))
|
|
95
|
+
: undefined}
|
|
96
|
+
remove={(index) =>
|
|
97
|
+
$edition
|
|
98
|
+
? edition.set($edition.withoutAuthor(index))
|
|
99
|
+
: undefined}
|
|
100
|
+
/>
|
|
101
|
+
</Header>
|
|
102
|
+
|
|
103
|
+
<Instructions>
|
|
104
|
+
Above you can edit your book's authors, title, and cover image.
|
|
105
|
+
</Instructions>
|
|
106
|
+
|
|
107
|
+
<Description />
|
|
108
|
+
|
|
109
|
+
<Instructions>
|
|
110
|
+
This will appear on the <Link to={$base + 'read'}
|
|
111
|
+
>book browsing</Link
|
|
112
|
+
> page and in your table of contents. Write an informative description
|
|
113
|
+
of what your book is about.
|
|
114
|
+
</Instructions>
|
|
115
|
+
|
|
116
|
+
<Instructions>
|
|
117
|
+
Add, remove, and reorder chapters here. You can add optional book
|
|
118
|
+
sections to each chapter, toggle chapters as numbered/unnumbered or
|
|
119
|
+
published/forthcoming. Click the title to edit the chapter.
|
|
120
|
+
</Instructions>
|
|
121
|
+
|
|
122
|
+
<PageHeader id="chapters"
|
|
123
|
+
>Chapters {#if editable}<Button
|
|
124
|
+
tooltip="add empty chapter"
|
|
125
|
+
disabled={waitingForChapter}
|
|
126
|
+
command={addChapter}>+ chapter</Button
|
|
127
|
+
>{/if}</PageHeader
|
|
128
|
+
>
|
|
129
|
+
|
|
130
|
+
<Rows>
|
|
131
|
+
{#each $edition.getChapters() as chapter}
|
|
132
|
+
{@const chapterID = chapter.getID()}
|
|
133
|
+
{@const readingTime = chapter.getReadingTime($edition)}
|
|
134
|
+
{@const readingEstimate =
|
|
135
|
+
readingTime === undefined
|
|
136
|
+
? 'Forthcoming'
|
|
137
|
+
: readingTime < 5
|
|
138
|
+
? '<5 min read'
|
|
139
|
+
: readingTime < 60
|
|
140
|
+
? '~' + Math.floor(readingTime / 5) * 5 + ' min read'
|
|
141
|
+
: '~' + Math.floor(readingTime / 60) + ' hour read'}
|
|
142
|
+
{@const section = chapter.getSection()}
|
|
143
|
+
{@const etc =
|
|
144
|
+
readingEstimate +
|
|
145
|
+
(!chapter.isForthcoming()
|
|
146
|
+
? getProgressDescription(
|
|
147
|
+
chapterID in progress ? progress[chapterID] : null
|
|
148
|
+
)
|
|
149
|
+
: '')}
|
|
150
|
+
|
|
151
|
+
<TableOfContentsRow
|
|
152
|
+
{chapter}
|
|
153
|
+
{chapterID}
|
|
154
|
+
number={$edition.getChapterNumber(chapterID)}
|
|
155
|
+
title={chapter.getTitle()}
|
|
156
|
+
forthcoming={chapter.isForthcoming()}
|
|
157
|
+
>
|
|
158
|
+
<span slot="annotation">
|
|
159
|
+
{#if editable}
|
|
160
|
+
<TextEditor
|
|
161
|
+
label={'Chapter section editor'}
|
|
162
|
+
text={section ? section : ''}
|
|
163
|
+
placeholder="Section"
|
|
164
|
+
valid={() => undefined}
|
|
165
|
+
save={(text) =>
|
|
166
|
+
setChapter(
|
|
167
|
+
edition,
|
|
168
|
+
chapter,
|
|
169
|
+
chapter.withSection(text)
|
|
170
|
+
)}
|
|
171
|
+
/>
|
|
172
|
+
{:else if section}{section}{/if}
|
|
173
|
+
</span>
|
|
174
|
+
<span slot="etc">
|
|
175
|
+
<Muted>
|
|
143
176
|
{#if editable}
|
|
144
|
-
<Toggle
|
|
177
|
+
<Toggle
|
|
178
|
+
on={chapter.isForthcoming()}
|
|
179
|
+
save={(on) =>
|
|
180
|
+
setChapter(
|
|
181
|
+
edition,
|
|
182
|
+
chapter,
|
|
183
|
+
chapter.asForthcoming(on)
|
|
184
|
+
)}
|
|
185
|
+
>
|
|
145
186
|
{etc}
|
|
146
187
|
</Toggle>
|
|
147
188
|
{:else}
|
|
148
|
-
{
|
|
189
|
+
{etc}
|
|
149
190
|
{/if}
|
|
150
|
-
</
|
|
151
|
-
</
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
chapterID={ChapterIDs.ReferencesID}
|
|
156
|
-
title="References"
|
|
157
|
-
>
|
|
158
|
-
<span slot="annotation">Everything cited</span>
|
|
159
|
-
</TableOfContentsRow>
|
|
160
|
-
{/if}
|
|
161
|
-
{#if $edition.getGlossary() && Object.keys($edition.getGlossary()).length > 0 || editable }
|
|
162
|
-
<TableOfContentsRow
|
|
163
|
-
chapterID={ChapterIDs.GlossaryID}
|
|
164
|
-
title="Glossary"
|
|
165
|
-
>
|
|
166
|
-
<span slot="annotation">Definitions</span>
|
|
167
|
-
</TableOfContentsRow>
|
|
168
|
-
{/if}
|
|
191
|
+
</Muted>
|
|
192
|
+
</span>
|
|
193
|
+
</TableOfContentsRow>
|
|
194
|
+
{/each}
|
|
195
|
+
{#if $edition.hasReferences() || editable}
|
|
169
196
|
<TableOfContentsRow
|
|
170
|
-
chapterID={ChapterIDs.
|
|
171
|
-
title="
|
|
172
|
-
>
|
|
173
|
-
<span slot="annotation">
|
|
197
|
+
chapterID={ChapterIDs.ReferencesID}
|
|
198
|
+
title="References"
|
|
199
|
+
>
|
|
200
|
+
<span slot="annotation">Everything cited</span>
|
|
174
201
|
</TableOfContentsRow>
|
|
202
|
+
{/if}
|
|
203
|
+
{#if ($edition.getGlossary() && Object.keys($edition.getGlossary()).length > 0) || editable}
|
|
175
204
|
<TableOfContentsRow
|
|
176
|
-
chapterID={ChapterIDs.
|
|
177
|
-
title="
|
|
178
|
-
>
|
|
179
|
-
<span slot="annotation">
|
|
205
|
+
chapterID={ChapterIDs.GlossaryID}
|
|
206
|
+
title="Glossary"
|
|
207
|
+
>
|
|
208
|
+
<span slot="annotation">Definitions</span>
|
|
180
209
|
</TableOfContentsRow>
|
|
210
|
+
{/if}
|
|
211
|
+
<TableOfContentsRow chapterID={ChapterIDs.IndexID} title="Index">
|
|
212
|
+
<span slot="annotation">Common words and where they are</span>
|
|
213
|
+
</TableOfContentsRow>
|
|
214
|
+
<TableOfContentsRow chapterID={ChapterIDs.SearchID} title="Search">
|
|
215
|
+
<span slot="annotation">Find where words occur</span>
|
|
216
|
+
</TableOfContentsRow>
|
|
181
217
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
218
|
+
<TableOfContentsRow chapterID={ChapterIDs.MediaID} title="Media">
|
|
219
|
+
<span slot="annotation">Images and video in the book</span>
|
|
220
|
+
</TableOfContentsRow>
|
|
221
|
+
{#if editable}
|
|
222
|
+
<TableOfContentsRow chapterID="theme" title="Theme">
|
|
223
|
+
<span slot="annotation">Style the book</span>
|
|
187
224
|
</TableOfContentsRow>
|
|
188
|
-
|
|
189
|
-
<
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
<span slot="annotation">Style the book</span>
|
|
194
|
-
</TableOfContentsRow>
|
|
195
|
-
<TableOfContentsRow
|
|
196
|
-
chapterID="unknown"
|
|
197
|
-
title="Unknown"
|
|
198
|
-
>
|
|
199
|
-
<span slot="annotation">Customize bad links</span>
|
|
200
|
-
</TableOfContentsRow>
|
|
201
|
-
{/if}
|
|
202
|
-
</tbody>
|
|
203
|
-
</table>
|
|
204
|
-
</div>
|
|
225
|
+
<TableOfContentsRow chapterID="unknown" title="Unknown">
|
|
226
|
+
<span slot="annotation">Customize bad links</span>
|
|
227
|
+
</TableOfContentsRow>
|
|
228
|
+
{/if}
|
|
229
|
+
</Rows>
|
|
205
230
|
|
|
206
|
-
|
|
207
|
-
|
|
231
|
+
<Acknowledgements />
|
|
232
|
+
<License />
|
|
208
233
|
|
|
209
|
-
|
|
234
|
+
<PageHeader id="print">Print</PageHeader>
|
|
210
235
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
236
|
+
<Instructions>
|
|
237
|
+
This offers a way for readers to print the entire book as a single
|
|
238
|
+
page.
|
|
239
|
+
</Instructions>
|
|
214
240
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
241
|
+
<PageParagraph>
|
|
242
|
+
Want to print this book or generate a PDF? See <Link
|
|
243
|
+
to={$base + 'print'}>all chapters on a single page</Link
|
|
244
|
+
> and then print or export. Long books can take some time to render.
|
|
245
|
+
</PageParagraph>
|
|
220
246
|
|
|
221
|
-
|
|
247
|
+
<PageHeader id="citation">Citation</PageHeader>
|
|
222
248
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
249
|
+
<Instructions>
|
|
250
|
+
This citation is dynamically created from the current authors,
|
|
251
|
+
title, and date.
|
|
252
|
+
</Instructions>
|
|
226
253
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
254
|
+
<!-- Book citation -->
|
|
255
|
+
<PageParagraph>
|
|
256
|
+
{$edition
|
|
257
|
+
.getAuthors()
|
|
258
|
+
.map((author) => Parser.parseFormat($edition, author).toText())
|
|
259
|
+
.join(', ')} ({new Date().getFullYear()}).
|
|
260
|
+
<em>{$edition.getTitle()}</em>. {location.protocol +
|
|
261
|
+
'//' +
|
|
262
|
+
location.host +
|
|
263
|
+
location.pathname},
|
|
264
|
+
<em>retrieved {new Date().toLocaleDateString('en-US')}</em>.
|
|
265
|
+
</PageParagraph>
|
|
231
266
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
267
|
+
<Revisions />
|
|
268
|
+
</Page>
|
|
269
|
+
{/if}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
|
-
props:
|
|
3
|
+
props: Record<string, never>;
|
|
4
4
|
events: {
|
|
5
5
|
[evt: string]: CustomEvent<any>;
|
|
6
6
|
};
|
|
7
7
|
slots: {};
|
|
8
8
|
};
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
9
|
+
export type TableOfContentsProps = typeof __propDef.props;
|
|
10
|
+
export type TableOfContentsEvents = typeof __propDef.events;
|
|
11
|
+
export type TableOfContentsSlots = typeof __propDef.slots;
|
|
12
12
|
export default class TableOfContents extends SvelteComponentTyped<TableOfContentsProps, TableOfContentsEvents, TableOfContentsSlots> {
|
|
13
13
|
}
|
|
14
14
|
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
<script>import EmbedNode from
|
|
2
|
-
import Parser from
|
|
3
|
-
import { getEdition } from
|
|
1
|
+
<script>import EmbedNode from '../../models/chapter/EmbedNode';
|
|
2
|
+
import Parser from '../../models/chapter/Parser';
|
|
3
|
+
import { getEdition } from './Contexts';
|
|
4
4
|
export let embed;
|
|
5
5
|
let edition = getEdition();
|
|
6
6
|
$: embedNode = embed === null ? null : Parser.parseEmbed($edition, embed);
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
|
-
{#if embedNode instanceof EmbedNode
|
|
10
|
-
<img
|
|
9
|
+
{#if embedNode instanceof EmbedNode}
|
|
10
|
+
<img
|
|
11
11
|
style="width: 5em"
|
|
12
|
-
src={embedNode.getSmallURL()
|
|
13
|
-
alt={embedNode.getDescription()
|
|
12
|
+
src={embedNode.getSmallURL()}
|
|
13
|
+
alt={embedNode.getDescription()}
|
|
14
14
|
/>
|
|
15
|
-
{/if}
|
|
15
|
+
{/if}
|
|
@@ -8,9 +8,9 @@ declare const __propDef: {
|
|
|
8
8
|
};
|
|
9
9
|
slots: {};
|
|
10
10
|
};
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
11
|
+
export type TableOfContentsImageProps = typeof __propDef.props;
|
|
12
|
+
export type TableOfContentsImageEvents = typeof __propDef.events;
|
|
13
|
+
export type TableOfContentsImageSlots = typeof __propDef.slots;
|
|
14
14
|
export default class TableOfContentsImage extends SvelteComponentTyped<TableOfContentsImageProps, TableOfContentsImageEvents, TableOfContentsImageSlots> {
|
|
15
15
|
}
|
|
16
16
|
export {};
|