@erudit-js/prose 3.0.0-dev.25
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/dist/app/appElement.d.ts +19 -0
- package/dist/app/appElement.js +12 -0
- package/dist/app/component.d.ts +6 -0
- package/dist/app/component.js +6 -0
- package/dist/app/composables/anchor.d.ts +16 -0
- package/dist/app/composables/anchor.js +89 -0
- package/dist/app/composables/appElement.d.ts +4 -0
- package/dist/app/composables/appElement.js +16 -0
- package/dist/app/composables/context.d.ts +22 -0
- package/dist/app/composables/context.js +5 -0
- package/dist/app/composables/elementIcon.d.ts +3 -0
- package/dist/app/composables/elementIcon.js +5 -0
- package/dist/app/composables/formatText.d.ts +1 -0
- package/dist/app/composables/formatText.js +5 -0
- package/dist/app/composables/language.d.ts +8 -0
- package/dist/app/composables/language.js +13 -0
- package/dist/app/composables/storage.d.ts +5 -0
- package/dist/app/composables/storage.js +23 -0
- package/dist/app/default/Inliners.vue +11 -0
- package/dist/app/default/Mix.vue +11 -0
- package/dist/app/default/Text.vue +21 -0
- package/dist/app/icon.d.ts +5 -0
- package/dist/app/icon.js +7 -0
- package/dist/app/index.d.ts +18 -0
- package/dist/app/index.js +18 -0
- package/dist/app/language/element.d.ts +10 -0
- package/dist/app/language/element.js +12 -0
- package/dist/app/language/list/en.d.ts +3 -0
- package/dist/app/language/list/en.js +5 -0
- package/dist/app/language/list/ru.d.ts +3 -0
- package/dist/app/language/list/ru.js +5 -0
- package/dist/app/language/prose.d.ts +9 -0
- package/dist/app/language/prose.js +4 -0
- package/dist/app/shared/Prose.vue +36 -0
- package/dist/app/shared/Render.vue +51 -0
- package/dist/app/shared/assets/block.svg +3 -0
- package/dist/app/shared/assets/check.svg +3 -0
- package/dist/app/shared/assets/inliner.svg +3 -0
- package/dist/app/shared/assets/plus.svg +3 -0
- package/dist/app/shared/assets/share.svg +3 -0
- package/dist/app/shared/block/AsideMenu.vue +44 -0
- package/dist/app/shared/block/AsideMenuButton.vue +53 -0
- package/dist/app/shared/block/AsideMenuCopyLink.vue +40 -0
- package/dist/app/shared/block/AsideMenuSeparator.vue +3 -0
- package/dist/app/shared/block/Block.vue +270 -0
- package/dist/app/shared/inliner/Inliner.vue +11 -0
- package/dist/app/shared/invert.d.ts +2 -0
- package/dist/app/shared/invert.js +2 -0
- package/dist/app/shared/photoswipe/composable.d.ts +9 -0
- package/dist/app/shared/photoswipe/composable.js +68 -0
- package/dist/app/shared/photoswipe/style.css +26 -0
- package/dist/context.d.ts +4 -0
- package/dist/context.js +1 -0
- package/dist/coreElement.d.ts +10 -0
- package/dist/coreElement.js +6 -0
- package/dist/elements/accent/Accent.vue +92 -0
- package/dist/elements/accent/AccentColumnSection.vue +61 -0
- package/dist/elements/accent/AccentRowSections.vue +65 -0
- package/dist/elements/accent/app.d.ts +21 -0
- package/dist/elements/accent/app.js +16 -0
- package/dist/elements/accent/core.d.ts +340 -0
- package/dist/elements/accent/core.js +175 -0
- package/dist/elements/callout/Callout.vue +88 -0
- package/dist/elements/callout/_global.d.ts +15 -0
- package/dist/elements/callout/app.d.ts +9 -0
- package/dist/elements/callout/app.js +11 -0
- package/dist/elements/callout/core.d.ts +80 -0
- package/dist/elements/callout/core.js +37 -0
- package/dist/elements/callout/icon.svg +3 -0
- package/dist/elements/callout/languages/en.d.ts +4 -0
- package/dist/elements/callout/languages/en.js +2 -0
- package/dist/elements/callout/languages/ru.d.ts +4 -0
- package/dist/elements/callout/languages/ru.js +2 -0
- package/dist/elements/callout/storage.d.ts +2 -0
- package/dist/elements/callout/storage.js +5 -0
- package/dist/elements/caption/Caption.vue +47 -0
- package/dist/elements/caption/_global.d.ts +26 -0
- package/dist/elements/caption/app.d.ts +9 -0
- package/dist/elements/caption/app.js +6 -0
- package/dist/elements/caption/core.d.ts +114 -0
- package/dist/elements/caption/core.js +61 -0
- package/dist/elements/details/Details.vue +51 -0
- package/dist/elements/details/_global.d.ts +27 -0
- package/dist/elements/details/app.d.ts +9 -0
- package/dist/elements/details/app.js +11 -0
- package/dist/elements/details/core.d.ts +68 -0
- package/dist/elements/details/core.js +30 -0
- package/dist/elements/details/icon.svg +3 -0
- package/dist/elements/details/languages/en.d.ts +4 -0
- package/dist/elements/details/languages/en.js +2 -0
- package/dist/elements/details/languages/ru.d.ts +4 -0
- package/dist/elements/details/languages/ru.js +2 -0
- package/dist/elements/diagram/Diagram.vue +364 -0
- package/dist/elements/diagram/_global.d.ts +19 -0
- package/dist/elements/diagram/app.d.ts +30 -0
- package/dist/elements/diagram/app.js +11 -0
- package/dist/elements/diagram/core.d.ts +194 -0
- package/dist/elements/diagram/core.js +36 -0
- package/dist/elements/diagram/icon.svg +3 -0
- package/dist/elements/diagram/languages/en.d.ts +4 -0
- package/dist/elements/diagram/languages/en.js +2 -0
- package/dist/elements/diagram/languages/ru.d.ts +4 -0
- package/dist/elements/diagram/languages/ru.js +2 -0
- package/dist/elements/emphasis/Emphasis.vue +25 -0
- package/dist/elements/emphasis/_global.d.ts +18 -0
- package/dist/elements/emphasis/app.d.ts +9 -0
- package/dist/elements/emphasis/app.js +6 -0
- package/dist/elements/emphasis/core.d.ts +90 -0
- package/dist/elements/emphasis/core.js +32 -0
- package/dist/elements/flex/Flex.vue +32 -0
- package/dist/elements/flex/_global.d.ts +23 -0
- package/dist/elements/flex/app.d.ts +9 -0
- package/dist/elements/flex/app.js +11 -0
- package/dist/elements/flex/core.d.ts +67 -0
- package/dist/elements/flex/core.js +28 -0
- package/dist/elements/flex/icon.svg +3 -0
- package/dist/elements/flex/languages/en.d.ts +4 -0
- package/dist/elements/flex/languages/en.js +2 -0
- package/dist/elements/flex/languages/ru.d.ts +4 -0
- package/dist/elements/flex/languages/ru.js +2 -0
- package/dist/elements/gallery/Gallery.vue +56 -0
- package/dist/elements/gallery/_global.d.ts +18 -0
- package/dist/elements/gallery/app.d.ts +23 -0
- package/dist/elements/gallery/app.js +11 -0
- package/dist/elements/gallery/core.d.ts +138 -0
- package/dist/elements/gallery/core.js +21 -0
- package/dist/elements/gallery/icon.svg +3 -0
- package/dist/elements/gallery/languages/en.d.ts +4 -0
- package/dist/elements/gallery/languages/en.js +2 -0
- package/dist/elements/gallery/languages/ru.d.ts +4 -0
- package/dist/elements/gallery/languages/ru.js +2 -0
- package/dist/elements/heading/Heading.vue +44 -0
- package/dist/elements/heading/_global.d.ts +45 -0
- package/dist/elements/heading/app.d.ts +9 -0
- package/dist/elements/heading/app.js +11 -0
- package/dist/elements/heading/core.d.ts +108 -0
- package/dist/elements/heading/core.js +52 -0
- package/dist/elements/heading/icon.svg +3 -0
- package/dist/elements/heading/languages/en.d.ts +4 -0
- package/dist/elements/heading/languages/en.js +2 -0
- package/dist/elements/heading/languages/ru.d.ts +4 -0
- package/dist/elements/heading/languages/ru.js +2 -0
- package/dist/elements/horizontalLine/HorizontalLine.vue +6 -0
- package/dist/elements/horizontalLine/_global.d.ts +17 -0
- package/dist/elements/horizontalLine/app.d.ts +9 -0
- package/dist/elements/horizontalLine/app.js +6 -0
- package/dist/elements/horizontalLine/core.d.ts +54 -0
- package/dist/elements/horizontalLine/core.js +19 -0
- package/dist/elements/image/Image.vue +15 -0
- package/dist/elements/image/ImageElement.vue +80 -0
- package/dist/elements/image/_global.d.ts +18 -0
- package/dist/elements/image/app.d.ts +16 -0
- package/dist/elements/image/app.js +11 -0
- package/dist/elements/image/core.d.ts +136 -0
- package/dist/elements/image/core.js +44 -0
- package/dist/elements/image/icon.svg +3 -0
- package/dist/elements/image/languages/en.d.ts +4 -0
- package/dist/elements/image/languages/en.js +2 -0
- package/dist/elements/image/languages/ru.d.ts +4 -0
- package/dist/elements/image/languages/ru.js +2 -0
- package/dist/elements/image/storage.d.ts +6 -0
- package/dist/elements/image/storage.js +23 -0
- package/dist/elements/lineBreak/LineBreak.vue +3 -0
- package/dist/elements/lineBreak/_global.d.ts +18 -0
- package/dist/elements/lineBreak/app.d.ts +9 -0
- package/dist/elements/lineBreak/app.js +6 -0
- package/dist/elements/lineBreak/core.d.ts +54 -0
- package/dist/elements/lineBreak/core.js +19 -0
- package/dist/elements/link/BlockLink.vue +111 -0
- package/dist/elements/link/Link.vue +93 -0
- package/dist/elements/link/core.d.ts +13 -0
- package/dist/elements/link/core.js +12 -0
- package/dist/elements/link/dependency/_global.d.ts +47 -0
- package/dist/elements/link/dependency/app.d.ts +16 -0
- package/dist/elements/link/dependency/app.js +14 -0
- package/dist/elements/link/dependency/core.d.ts +125 -0
- package/dist/elements/link/dependency/core.js +51 -0
- package/dist/elements/link/dependency/languages/en.d.ts +4 -0
- package/dist/elements/link/dependency/languages/en.js +2 -0
- package/dist/elements/link/dependency/languages/ru.d.ts +4 -0
- package/dist/elements/link/dependency/languages/ru.js +2 -0
- package/dist/elements/link/icon.svg +3 -0
- package/dist/elements/link/reference/_global.d.ts +49 -0
- package/dist/elements/link/reference/app.d.ts +16 -0
- package/dist/elements/link/reference/app.js +14 -0
- package/dist/elements/link/reference/core.d.ts +120 -0
- package/dist/elements/link/reference/core.js +35 -0
- package/dist/elements/link/reference/languages/en.d.ts +4 -0
- package/dist/elements/link/reference/languages/en.js +2 -0
- package/dist/elements/link/reference/languages/ru.d.ts +4 -0
- package/dist/elements/link/reference/languages/ru.js +2 -0
- package/dist/elements/link/storage.d.ts +34 -0
- package/dist/elements/link/storage.js +20 -0
- package/dist/elements/list/List.vue +63 -0
- package/dist/elements/list/_global.d.ts +50 -0
- package/dist/elements/list/app.d.ts +16 -0
- package/dist/elements/list/app.js +11 -0
- package/dist/elements/list/core.d.ts +169 -0
- package/dist/elements/list/core.js +49 -0
- package/dist/elements/list/icon.svg +3 -0
- package/dist/elements/list/languages/en.d.ts +4 -0
- package/dist/elements/list/languages/en.js +2 -0
- package/dist/elements/list/languages/ru.d.ts +4 -0
- package/dist/elements/list/languages/ru.js +2 -0
- package/dist/elements/math/_global.d.ts +72 -0
- package/dist/elements/math/_global.ts +3 -0
- package/dist/elements/math/app.d.ts +16 -0
- package/dist/elements/math/app.js +20 -0
- package/dist/elements/math/block.d.ts +75 -0
- package/dist/elements/math/block.js +115 -0
- package/dist/elements/math/components/BlockMath.vue +30 -0
- package/dist/elements/math/components/InlinerMath.vue +65 -0
- package/dist/elements/math/components/Katex.vue +89 -0
- package/dist/elements/math/components/MathGroup.vue +39 -0
- package/dist/elements/math/core.d.ts +66 -0
- package/dist/elements/math/core.js +11 -0
- package/dist/elements/math/icon.svg +3 -0
- package/dist/elements/math/inliner.d.ts +64 -0
- package/dist/elements/math/inliner.js +85 -0
- package/dist/elements/math/katex.d.ts +8 -0
- package/dist/elements/math/katex.js +18 -0
- package/dist/elements/math/languages/en.d.ts +4 -0
- package/dist/elements/math/languages/en.js +2 -0
- package/dist/elements/math/languages/ru.d.ts +4 -0
- package/dist/elements/math/languages/ru.js +2 -0
- package/dist/elements/math/macros.d.ts +13 -0
- package/dist/elements/math/macros.js +12 -0
- package/dist/elements/paragraph/Paragraph.vue +27 -0
- package/dist/elements/paragraph/_global.d.ts +27 -0
- package/dist/elements/paragraph/app.d.ts +9 -0
- package/dist/elements/paragraph/app.js +11 -0
- package/dist/elements/paragraph/core.d.ts +67 -0
- package/dist/elements/paragraph/core.js +29 -0
- package/dist/elements/paragraph/icon.svg +4 -0
- package/dist/elements/paragraph/languages/en.d.ts +4 -0
- package/dist/elements/paragraph/languages/en.js +2 -0
- package/dist/elements/paragraph/languages/ru.d.ts +4 -0
- package/dist/elements/paragraph/languages/ru.js +2 -0
- package/dist/elements/problem/_global.d.ts +112 -0
- package/dist/elements/problem/app.d.ts +30 -0
- package/dist/elements/problem/app.js +27 -0
- package/dist/elements/problem/assets/actions/answer.svg +3 -0
- package/dist/elements/problem/assets/actions/check.svg +3 -0
- package/dist/elements/problem/assets/actions/generate.svg +3 -0
- package/dist/elements/problem/assets/actions/hint.svg +3 -0
- package/dist/elements/problem/assets/actions/note.svg +3 -0
- package/dist/elements/problem/assets/actions/solution.svg +3 -0
- package/dist/elements/problem/assets/attributes/applied.svg +3 -0
- package/dist/elements/problem/assets/attributes/inter.svg +3 -0
- package/dist/elements/problem/assets/attributes/method.svg +3 -0
- package/dist/elements/problem/assets/attributes/pretty.svg +1 -0
- package/dist/elements/problem/assets/icon.svg +3 -0
- package/dist/elements/problem/components/Problem.vue +22 -0
- package/dist/elements/problem/components/ProblemButton.vue +21 -0
- package/dist/elements/problem/components/ProblemContainer.vue +9 -0
- package/dist/elements/problem/components/ProblemContent.vue +371 -0
- package/dist/elements/problem/components/ProblemExpander.vue +7 -0
- package/dist/elements/problem/components/ProblemExpanderSection.vue +58 -0
- package/dist/elements/problem/components/ProblemHeader.vue +106 -0
- package/dist/elements/problem/components/Problems.vue +87 -0
- package/dist/elements/problem/components/SubProblem.vue +14 -0
- package/dist/elements/problem/components/expanders/Check.vue +151 -0
- package/dist/elements/problem/components/expanders/Checks.vue +83 -0
- package/dist/elements/problem/components/expanders/DefaultPlusSections.vue +38 -0
- package/dist/elements/problem/components/expanders/Hint.vue +26 -0
- package/dist/elements/problem/composables/phrase.d.ts +2 -0
- package/dist/elements/problem/composables/phrase.js +7 -0
- package/dist/elements/problem/composables/problemScript.d.ts +3 -0
- package/dist/elements/problem/composables/problemScript.js +11 -0
- package/dist/elements/problem/core.d.ts +248 -0
- package/dist/elements/problem/core.js +17 -0
- package/dist/elements/problem/languages/en.d.ts +3 -0
- package/dist/elements/problem/languages/en.js +24 -0
- package/dist/elements/problem/languages/ru.d.ts +3 -0
- package/dist/elements/problem/languages/ru.js +24 -0
- package/dist/elements/problem/phrases.d.ts +16 -0
- package/dist/elements/problem/phrases.js +1 -0
- package/dist/elements/problem/problem.d.ts +106 -0
- package/dist/elements/problem/problem.js +37 -0
- package/dist/elements/problem/problemContent.d.ts +439 -0
- package/dist/elements/problem/problemContent.js +236 -0
- package/dist/elements/problem/problemScript.d.ts +26 -0
- package/dist/elements/problem/problemScript.js +79 -0
- package/dist/elements/problem/problems.d.ts +212 -0
- package/dist/elements/problem/problems.js +74 -0
- package/dist/elements/problem/rng.d.ts +18 -0
- package/dist/elements/problem/rng.js +76 -0
- package/dist/elements/problem/shared.d.ts +28 -0
- package/dist/elements/problem/shared.js +42 -0
- package/dist/elements/problem/step.d.ts +5 -0
- package/dist/elements/problem/step.js +13 -0
- package/dist/elements/problem/storage.d.ts +5 -0
- package/dist/elements/problem/storage.js +8 -0
- package/dist/elements/table/Table.vue +104 -0
- package/dist/elements/table/_global.d.ts +36 -0
- package/dist/elements/table/app.d.ts +30 -0
- package/dist/elements/table/app.js +11 -0
- package/dist/elements/table/core.d.ts +324 -0
- package/dist/elements/table/core.js +65 -0
- package/dist/elements/table/icon.svg +3 -0
- package/dist/elements/table/languages/en.d.ts +4 -0
- package/dist/elements/table/languages/en.js +2 -0
- package/dist/elements/table/languages/ru.d.ts +4 -0
- package/dist/elements/table/languages/ru.js +2 -0
- package/dist/elements/video/Video.vue +109 -0
- package/dist/elements/video/_global.d.ts +18 -0
- package/dist/elements/video/app.d.ts +16 -0
- package/dist/elements/video/app.js +11 -0
- package/dist/elements/video/core.d.ts +128 -0
- package/dist/elements/video/core.js +43 -0
- package/dist/elements/video/icon.svg +3 -0
- package/dist/elements/video/languages/en.d.ts +4 -0
- package/dist/elements/video/languages/en.js +2 -0
- package/dist/elements/video/languages/ru.d.ts +4 -0
- package/dist/elements/video/languages/ru.js +2 -0
- package/dist/elements/video/storage.d.ts +2 -0
- package/dist/elements/video/storage.js +5 -0
- package/dist/include.d.ts +6 -0
- package/dist/include.js +42 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +15 -0
- package/dist/rawElement.d.ts +6 -0
- package/dist/rawElement.js +3 -0
- package/dist/resolve.d.ts +20 -0
- package/dist/resolve.js +99 -0
- package/dist/resolveStep.d.ts +9 -0
- package/dist/resolveStep.js +3 -0
- package/dist/shared/filePath.d.ts +5 -0
- package/dist/shared/filePath.js +11 -0
- package/dist/shared/invert.d.ts +1 -0
- package/dist/shared/invert.js +1 -0
- package/dist/shared/paragraphWrap.d.ts +3 -0
- package/dist/shared/paragraphWrap.js +15 -0
- package/dist/shared/photoswipe.d.ts +10 -0
- package/dist/shared/photoswipe.js +10 -0
- package/dist/slugify/index.d.ts +1 -0
- package/dist/slugify/index.js +12 -0
- package/dist/slugify/languages/en.d.ts +2 -0
- package/dist/slugify/languages/en.js +3 -0
- package/dist/slugify/languages/ru.d.ts +2 -0
- package/dist/slugify/languages/ru.js +38 -0
- package/dist/snippet.d.ts +66 -0
- package/dist/snippet.js +57 -0
- package/dist/tag.d.ts +22 -0
- package/dist/tag.js +20 -0
- package/dist/title.d.ts +8 -0
- package/dist/title.js +6 -0
- package/dist/toc.d.ts +34 -0
- package/dist/toc.js +52 -0
- package/dist/utils/case.d.ts +4 -0
- package/dist/utils/case.js +8 -0
- package/dist/utils/docs.d.ts +1 -0
- package/dist/utils/docs.js +22 -0
- package/package.json +48 -0
- package/types.d.ts +4 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { shallowRef } from 'vue';
|
|
3
|
+
import { ProseError, type ProseElement } from '@jsprose/core';
|
|
4
|
+
|
|
5
|
+
import type { dependencySchema } from './dependency/core.js';
|
|
6
|
+
import type { referenceSchema } from './reference/core.js';
|
|
7
|
+
import type { LinkStorage } from './storage.js';
|
|
8
|
+
import { useProseContext } from '../../app/composables/context.js';
|
|
9
|
+
import { useElementStorage } from '../../app/composables/storage.js';
|
|
10
|
+
import { useFormatText } from '../../app/composables/formatText.js';
|
|
11
|
+
import { useElementPhrase } from '../../app/composables/language.js';
|
|
12
|
+
import { useElementIcon } from '../../app/composables/elementIcon.js';
|
|
13
|
+
import Block from '../../app/shared/block/Block.vue';
|
|
14
|
+
|
|
15
|
+
const { element } = defineProps<{
|
|
16
|
+
element:
|
|
17
|
+
| ProseElement<typeof referenceSchema>
|
|
18
|
+
| ProseElement<typeof dependencySchema>;
|
|
19
|
+
}>();
|
|
20
|
+
|
|
21
|
+
const { EruditLink, EruditIcon, eruditIcons } = useProseContext();
|
|
22
|
+
const linkStorage = (await useElementStorage(element as any)) as LinkStorage;
|
|
23
|
+
const formatText = useFormatText();
|
|
24
|
+
|
|
25
|
+
interface UIData {
|
|
26
|
+
icon: string;
|
|
27
|
+
text: string;
|
|
28
|
+
secondary?: {
|
|
29
|
+
icon: string;
|
|
30
|
+
text: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const uiData = shallowRef<UIData>();
|
|
35
|
+
|
|
36
|
+
switch (linkStorage.type) {
|
|
37
|
+
case 'unique':
|
|
38
|
+
const elementPhrase = await useElementPhrase(linkStorage.schemaName);
|
|
39
|
+
uiData.value = {
|
|
40
|
+
icon: await useElementIcon(linkStorage.schemaName),
|
|
41
|
+
text: linkStorage.elementTitle || elementPhrase.element_name,
|
|
42
|
+
secondary: {
|
|
43
|
+
icon: eruditIcons[
|
|
44
|
+
linkStorage.content.contentType === 'topic'
|
|
45
|
+
? linkStorage.content.topicPart
|
|
46
|
+
: linkStorage.content.contentType
|
|
47
|
+
],
|
|
48
|
+
text: linkStorage.content.contentTitle,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
break;
|
|
52
|
+
case 'contentItem':
|
|
53
|
+
uiData.value = {
|
|
54
|
+
icon: eruditIcons[
|
|
55
|
+
linkStorage.content.contentType === 'topic'
|
|
56
|
+
? linkStorage.content.topicPart
|
|
57
|
+
: linkStorage.content.contentType
|
|
58
|
+
],
|
|
59
|
+
text: linkStorage.content.contentTitle,
|
|
60
|
+
};
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
throw new ProseError(
|
|
64
|
+
'BlockLink supports only Unique and Document link types!',
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
</script>
|
|
68
|
+
|
|
69
|
+
<template>
|
|
70
|
+
<Block :element>
|
|
71
|
+
<EruditLink
|
|
72
|
+
target="_blank"
|
|
73
|
+
:to="linkStorage.resolvedHref"
|
|
74
|
+
class="group bg-brand/5 border-brand/20 hocus:bg-brand/10
|
|
75
|
+
hocus:border-brand/40 relative block rounded-xl border-2
|
|
76
|
+
border-dashed p-(--proseAsideWidth)
|
|
77
|
+
transition-[border,background]"
|
|
78
|
+
>
|
|
79
|
+
<EruditIcon
|
|
80
|
+
name="arrow/outward"
|
|
81
|
+
class="text-brand/15 group-hocus:text-brand/20 top-small
|
|
82
|
+
right-small absolute shrink-0 text-[60px]
|
|
83
|
+
transition-[color]"
|
|
84
|
+
/>
|
|
85
|
+
<div
|
|
86
|
+
class="text-brand/80 group-hocus:text-brand mb-small gap-small
|
|
87
|
+
font-medium transition-[color]"
|
|
88
|
+
>
|
|
89
|
+
<EruditIcon
|
|
90
|
+
:name="uiData!.icon"
|
|
91
|
+
class="mr-small relative top-0.5 inline align-baseline
|
|
92
|
+
text-[1.1em]"
|
|
93
|
+
/>
|
|
94
|
+
<span>{{ formatText(uiData!.text) }}</span>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="text-text-muted">
|
|
97
|
+
{{ formatText(element.data.label) }}
|
|
98
|
+
</div>
|
|
99
|
+
<div
|
|
100
|
+
v-if="uiData!.secondary"
|
|
101
|
+
class="text-text-dimmed mt-small text-main-xs"
|
|
102
|
+
>
|
|
103
|
+
<EruditIcon
|
|
104
|
+
:name="uiData!.secondary!.icon"
|
|
105
|
+
class="mr-small relative top-0.5 inline align-baseline"
|
|
106
|
+
/>
|
|
107
|
+
<span>{{ formatText(uiData!.secondary!.text) }}</span>
|
|
108
|
+
</div>
|
|
109
|
+
</EruditLink>
|
|
110
|
+
</Block>
|
|
111
|
+
</template>
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import type { ProseElement } from '@jsprose/core';
|
|
3
|
+
|
|
4
|
+
import type { depSchema } from './dependency/core.js';
|
|
5
|
+
import type { refSchema } from './reference/core.js';
|
|
6
|
+
import type { LinkStorage } from './storage.js';
|
|
7
|
+
import { useProseContext } from '../../app/composables/context.js';
|
|
8
|
+
import { useFormatText } from '../../app/composables/formatText.js';
|
|
9
|
+
import { useElementStorage } from '../../app/composables/storage.js';
|
|
10
|
+
import { useElementIcon } from '../../app/composables/elementIcon.js';
|
|
11
|
+
import Inliner from '../../app/shared/inliner/Inliner.vue';
|
|
12
|
+
|
|
13
|
+
const { element } = defineProps<{
|
|
14
|
+
element: ProseElement<typeof refSchema> | ProseElement<typeof depSchema>;
|
|
15
|
+
}>();
|
|
16
|
+
|
|
17
|
+
const {
|
|
18
|
+
EruditIcon,
|
|
19
|
+
EruditLink,
|
|
20
|
+
eruditIcons,
|
|
21
|
+
setPreview,
|
|
22
|
+
closePreview,
|
|
23
|
+
baseUrl,
|
|
24
|
+
} = useProseContext();
|
|
25
|
+
const formatText = useFormatText();
|
|
26
|
+
const linkStorage = (await useElementStorage(element as any)) as LinkStorage;
|
|
27
|
+
|
|
28
|
+
const icon = await (async () => {
|
|
29
|
+
switch (linkStorage.type) {
|
|
30
|
+
case 'direct':
|
|
31
|
+
return 'arrow/outward-box';
|
|
32
|
+
case 'contentItem':
|
|
33
|
+
return eruditIcons[
|
|
34
|
+
linkStorage.content.contentType === 'topic'
|
|
35
|
+
? linkStorage.content.topicPart
|
|
36
|
+
: linkStorage.content.contentType
|
|
37
|
+
];
|
|
38
|
+
case 'unique':
|
|
39
|
+
return await useElementIcon(linkStorage.schemaName);
|
|
40
|
+
}
|
|
41
|
+
})();
|
|
42
|
+
|
|
43
|
+
const doubleClick = {
|
|
44
|
+
timeout: undefined as ReturnType<typeof setTimeout> | undefined,
|
|
45
|
+
startTimeout() {
|
|
46
|
+
this.timeout = setTimeout(() => {
|
|
47
|
+
this.reset();
|
|
48
|
+
}, 400);
|
|
49
|
+
},
|
|
50
|
+
reset() {
|
|
51
|
+
clearTimeout(this.timeout);
|
|
52
|
+
this.timeout = undefined;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
function linkClick() {
|
|
57
|
+
if (doubleClick.timeout) {
|
|
58
|
+
doubleClick.reset();
|
|
59
|
+
closePreview();
|
|
60
|
+
const openUrl =
|
|
61
|
+
linkStorage.type === 'direct'
|
|
62
|
+
? linkStorage.resolvedHref
|
|
63
|
+
: baseUrl + linkStorage.resolvedHref.slice(1);
|
|
64
|
+
window.open(openUrl, '_blank');
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
setPreview(linkStorage.previewRequest);
|
|
69
|
+
doubleClick.startTimeout();
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<template>
|
|
75
|
+
<Inliner :element>
|
|
76
|
+
<EruditLink
|
|
77
|
+
@click.capture.prevent="linkClick"
|
|
78
|
+
:to="linkStorage.resolvedHref"
|
|
79
|
+
:style="{ '--tGap': '1px', '--xGap': '4px', '--bGap': '4px' }"
|
|
80
|
+
class="text-brand hocus:bg-brand/15 relative
|
|
81
|
+
-mx-[calc(var(--xGap)-3px)] -mt-(--tGap) -mb-(--bGap) rounded-sm
|
|
82
|
+
bg-transparent px-(--xGap) pt-(--tGap) pb-(--bGap) underline
|
|
83
|
+
decoration-[color-mix(in_srgb,var(--color-brand)30%,transparent)]
|
|
84
|
+
decoration-2 underline-offset-2 transition-[color,background]"
|
|
85
|
+
>
|
|
86
|
+
<EruditIcon
|
|
87
|
+
:name="icon"
|
|
88
|
+
class="micro:pr-1.5 inline pr-1 text-[1.3em]"
|
|
89
|
+
/>
|
|
90
|
+
<span>{{ formatText(element.data.label) }}</span>
|
|
91
|
+
</EruditLink>
|
|
92
|
+
</Inliner>
|
|
93
|
+
</template>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AnyUnique, type NormalizedChildren } from '@jsprose/core';
|
|
2
|
+
import type { GlobalContentTypeguard } from '@erudit-js/core/content/global';
|
|
3
|
+
import type { EruditRawElement } from '../../rawElement.js';
|
|
4
|
+
import type { depSchema, dependencySchema } from './dependency/core.js';
|
|
5
|
+
import type { referenceSchema, refSchema } from './reference/core.js';
|
|
6
|
+
export interface LinkData {
|
|
7
|
+
label: string;
|
|
8
|
+
storageKey?: string;
|
|
9
|
+
}
|
|
10
|
+
export type LinkToProp = string | GlobalContentTypeguard | AnyUnique;
|
|
11
|
+
export declare function handleLinkTag(element: EruditRawElement<typeof depSchema | typeof dependencySchema | typeof refSchema | typeof referenceSchema>, tagName: string, props: {
|
|
12
|
+
to: LinkToProp;
|
|
13
|
+
}, children: NormalizedChildren): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ensureTagChild, ProseError, textSchema } from "@jsprose/core";
|
|
2
|
+
import { createLinkStorageKey } from "./storage.js";
|
|
3
|
+
export function handleLinkTag(element, tagName, props, children) {
|
|
4
|
+
ensureTagChild(tagName, children, [textSchema]);
|
|
5
|
+
const child = children[0];
|
|
6
|
+
const label = child.data.trim();
|
|
7
|
+
if (!label) {
|
|
8
|
+
throw new ProseError(`<${tagName}> label cannot be empty!`);
|
|
9
|
+
}
|
|
10
|
+
element.data = { label };
|
|
11
|
+
element.storageKey = createLinkStorageKey(props.to, tagName);
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependencies are used to reference content the reader **must know and understand** in order to proceed further.
|
|
3
|
+
*
|
|
4
|
+
* Never use dependencies to simply mention other content; for that, use `<Ref>` and `<Reference>` tags.
|
|
5
|
+
*
|
|
6
|
+
* Dependency types:
|
|
7
|
+
* * Global Content — points to content items and uniques via `$CONTENT` global object.
|
|
8
|
+
* * Unique — points to a unique element directly.
|
|
9
|
+
*
|
|
10
|
+
* @title Inliner Dependency
|
|
11
|
+
* @layout inliner
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Global content dependency
|
|
15
|
+
* <P>
|
|
16
|
+
* We need to use <Dep to={$CONTENT.combinatorics.sumRule}>Rule of Sum</Dep> to calculate the answer.
|
|
17
|
+
* </P>
|
|
18
|
+
*
|
|
19
|
+
* // Link to uniques directly
|
|
20
|
+
* <P $={uniques.intro}>Intro Paragraph</P>
|
|
21
|
+
* <P>
|
|
22
|
+
* We need to use <Dep to={uniques.intro}>introduction</Dep> to understand this transform.
|
|
23
|
+
* </P>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export const Dep = '_tag_';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Same as `<Dep>`, but as a block element which draws more attention.
|
|
30
|
+
*
|
|
31
|
+
* @title Block Dependency
|
|
32
|
+
* @layout block
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* // Global content dependency
|
|
36
|
+
* <Dependency to={$CONTENT.combinatorics.sumRule}>
|
|
37
|
+
* To proceed, you must understand the Rule of Sum in combinatorics.
|
|
38
|
+
* </Dependency>
|
|
39
|
+
*
|
|
40
|
+
* // Link to uniques directly
|
|
41
|
+
* <P $={uniques.intro}>Intro Paragraph</P>
|
|
42
|
+
* <Dependency to={uniques.intro}>
|
|
43
|
+
* To proceed, you must read the introduction.
|
|
44
|
+
* </Dependency>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export const Dependency = '_tag_';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare const _default: (import("../../../app/appElement.js").AppElement<{
|
|
2
|
+
name: "dependencyInliner";
|
|
3
|
+
type: "inliner";
|
|
4
|
+
linkable: true;
|
|
5
|
+
Data: import("../core.js").LinkData;
|
|
6
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
7
|
+
Children: undefined;
|
|
8
|
+
}> | import("../../../app/appElement.js").AppElement<{
|
|
9
|
+
name: "dependencyBlock";
|
|
10
|
+
type: "block";
|
|
11
|
+
linkable: true;
|
|
12
|
+
Data: import("../core.js").LinkData;
|
|
13
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
14
|
+
Children: undefined;
|
|
15
|
+
}>)[];
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineEruditProseAppElement } from "../../../app/appElement.js";
|
|
2
|
+
import { dependencySchema, depSchema } from "./core.js";
|
|
3
|
+
export default [defineEruditProseAppElement({
|
|
4
|
+
schema: depSchema,
|
|
5
|
+
component: () => import("../Link.vue")
|
|
6
|
+
}), defineEruditProseAppElement({
|
|
7
|
+
schema: dependencySchema,
|
|
8
|
+
component: () => import("../BlockLink.vue"),
|
|
9
|
+
icon: () => import("../icon.svg?raw"),
|
|
10
|
+
languages: {
|
|
11
|
+
en: () => import("./languages/en.js"),
|
|
12
|
+
ru: () => import("./languages/ru.js")
|
|
13
|
+
}
|
|
14
|
+
})];
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { type TagChildren } from '@jsprose/core';
|
|
2
|
+
import { type LinkData, type LinkToProp } from '../core.js';
|
|
3
|
+
import { type NoSnippet, type NoToc } from '../../../tag.js';
|
|
4
|
+
import type { EruditRawElement } from '../../../rawElement.js';
|
|
5
|
+
export declare const depSchema: {
|
|
6
|
+
name: "dependencyInliner";
|
|
7
|
+
type: "inliner";
|
|
8
|
+
linkable: true;
|
|
9
|
+
Data: LinkData;
|
|
10
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
11
|
+
Children: undefined;
|
|
12
|
+
};
|
|
13
|
+
export declare const dependencySchema: {
|
|
14
|
+
name: "dependencyBlock";
|
|
15
|
+
type: "block";
|
|
16
|
+
linkable: true;
|
|
17
|
+
Data: LinkData;
|
|
18
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
19
|
+
Children: undefined;
|
|
20
|
+
};
|
|
21
|
+
export declare const Dep: import("@jsprose/core").Tag<"Dep", {
|
|
22
|
+
name: "dependencyInliner";
|
|
23
|
+
type: "inliner";
|
|
24
|
+
linkable: true;
|
|
25
|
+
Data: LinkData;
|
|
26
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
27
|
+
Children: undefined;
|
|
28
|
+
}, {
|
|
29
|
+
to: Exclude<LinkToProp, string>;
|
|
30
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
31
|
+
export declare const Dependency: import("@jsprose/core").Tag<"Dependency", {
|
|
32
|
+
name: "dependencyBlock";
|
|
33
|
+
type: "block";
|
|
34
|
+
linkable: true;
|
|
35
|
+
Data: LinkData;
|
|
36
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
37
|
+
Children: undefined;
|
|
38
|
+
}, {
|
|
39
|
+
to: Exclude<LinkToProp, string>;
|
|
40
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
41
|
+
export declare const depRegistryItem: import("@jsprose/core").RegistryItem<{
|
|
42
|
+
name: "dependencyInliner";
|
|
43
|
+
type: "inliner";
|
|
44
|
+
linkable: true;
|
|
45
|
+
Data: LinkData;
|
|
46
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
47
|
+
Children: undefined;
|
|
48
|
+
}, {
|
|
49
|
+
Dep: import("@jsprose/core").Tag<"Dep", {
|
|
50
|
+
name: "dependencyInliner";
|
|
51
|
+
type: "inliner";
|
|
52
|
+
linkable: true;
|
|
53
|
+
Data: LinkData;
|
|
54
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
55
|
+
Children: undefined;
|
|
56
|
+
}, {
|
|
57
|
+
to: Exclude<LinkToProp, string>;
|
|
58
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
59
|
+
}, undefined>;
|
|
60
|
+
export declare const dependencyRegistryItem: import("@jsprose/core").RegistryItem<{
|
|
61
|
+
name: "dependencyBlock";
|
|
62
|
+
type: "block";
|
|
63
|
+
linkable: true;
|
|
64
|
+
Data: LinkData;
|
|
65
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
66
|
+
Children: undefined;
|
|
67
|
+
}, {
|
|
68
|
+
Dependency: import("@jsprose/core").Tag<"Dependency", {
|
|
69
|
+
name: "dependencyBlock";
|
|
70
|
+
type: "block";
|
|
71
|
+
linkable: true;
|
|
72
|
+
Data: LinkData;
|
|
73
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
74
|
+
Children: undefined;
|
|
75
|
+
}, {
|
|
76
|
+
to: Exclude<LinkToProp, string>;
|
|
77
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
78
|
+
}, undefined>;
|
|
79
|
+
declare const _default: [{
|
|
80
|
+
registryItem: import("@jsprose/core").RegistryItem<{
|
|
81
|
+
name: "dependencyInliner";
|
|
82
|
+
type: "inliner";
|
|
83
|
+
linkable: true;
|
|
84
|
+
Data: LinkData;
|
|
85
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
86
|
+
Children: undefined;
|
|
87
|
+
}, {
|
|
88
|
+
Dep: import("@jsprose/core").Tag<"Dep", {
|
|
89
|
+
name: "dependencyInliner";
|
|
90
|
+
type: "inliner";
|
|
91
|
+
linkable: true;
|
|
92
|
+
Data: LinkData;
|
|
93
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
94
|
+
Children: undefined;
|
|
95
|
+
}, {
|
|
96
|
+
to: Exclude<LinkToProp, string>;
|
|
97
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
98
|
+
}, undefined>;
|
|
99
|
+
}, {
|
|
100
|
+
registryItem: import("@jsprose/core").RegistryItem<{
|
|
101
|
+
name: "dependencyBlock";
|
|
102
|
+
type: "block";
|
|
103
|
+
linkable: true;
|
|
104
|
+
Data: LinkData;
|
|
105
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
106
|
+
Children: undefined;
|
|
107
|
+
}, {
|
|
108
|
+
Dependency: import("@jsprose/core").Tag<"Dependency", {
|
|
109
|
+
name: "dependencyBlock";
|
|
110
|
+
type: "block";
|
|
111
|
+
linkable: true;
|
|
112
|
+
Data: LinkData;
|
|
113
|
+
Storage: import("../storage.js").ContentItemLinkStorage | import("../storage.js").UniqueLinkStorage;
|
|
114
|
+
Children: undefined;
|
|
115
|
+
}, {
|
|
116
|
+
to: Exclude<LinkToProp, string>;
|
|
117
|
+
} & TagChildren & NoSnippet & NoToc>;
|
|
118
|
+
}, undefined>;
|
|
119
|
+
}];
|
|
120
|
+
export default _default;
|
|
121
|
+
export declare const dependencyStep: ({ rawElement, proseElement }: {
|
|
122
|
+
context: import("../../../context.js").EruditProseContext;
|
|
123
|
+
rawElement: EruditRawElement<import("@jsprose/core").AnySchema>;
|
|
124
|
+
proseElement: import("@jsprose/core").ProseElement<import("@jsprose/core").AnySchema>;
|
|
125
|
+
}) => string | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { defineRegistryItem, defineSchema, isRawElement } from "@jsprose/core";
|
|
2
|
+
import { handleLinkTag } from "../core.js";
|
|
3
|
+
import { defineEruditTag } from "../../../tag.js";
|
|
4
|
+
import { defineResolveStep } from "../../../resolveStep.js";
|
|
5
|
+
import { defineEruditProseCoreElements } from "../../../coreElement.js";
|
|
6
|
+
export const depSchema = defineSchema({
|
|
7
|
+
name: "dependencyInliner",
|
|
8
|
+
type: "inliner",
|
|
9
|
+
linkable: true
|
|
10
|
+
})();
|
|
11
|
+
export const dependencySchema = defineSchema({
|
|
12
|
+
name: "dependencyBlock",
|
|
13
|
+
type: "block",
|
|
14
|
+
linkable: true
|
|
15
|
+
})();
|
|
16
|
+
export const Dep = defineEruditTag({
|
|
17
|
+
tagName: "Dep",
|
|
18
|
+
schema: depSchema
|
|
19
|
+
})(({ element, tagName, props, children }) => {
|
|
20
|
+
handleLinkTag(element, tagName, props, children);
|
|
21
|
+
});
|
|
22
|
+
export const Dependency = defineEruditTag({
|
|
23
|
+
tagName: "Dependency",
|
|
24
|
+
schema: dependencySchema
|
|
25
|
+
})(({ element, tagName, props, children }) => {
|
|
26
|
+
handleLinkTag(element, tagName, props, children);
|
|
27
|
+
});
|
|
28
|
+
export const depRegistryItem = defineRegistryItem({
|
|
29
|
+
schema: depSchema,
|
|
30
|
+
tags: [Dep]
|
|
31
|
+
});
|
|
32
|
+
export const dependencyRegistryItem = defineRegistryItem({
|
|
33
|
+
schema: dependencySchema,
|
|
34
|
+
tags: [Dependency]
|
|
35
|
+
});
|
|
36
|
+
export default defineEruditProseCoreElements({ registryItem: depRegistryItem }, { registryItem: dependencyRegistryItem });
|
|
37
|
+
//
|
|
38
|
+
// Resolve
|
|
39
|
+
//
|
|
40
|
+
export const dependencyStep = defineResolveStep(({ rawElement, proseElement }) => {
|
|
41
|
+
if (!isRawElement(rawElement, depSchema) && !isRawElement(rawElement, dependencySchema)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!proseElement.id) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!rawElement.storageKey) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
return rawElement.storageKey;
|
|
51
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640">
|
|
2
|
+
<path d="M384 64C366.3 64 352 78.3 352 96C352 113.7 366.3 128 384 128L466.7 128L265.3 329.4C252.8 341.9 252.8 362.2 265.3 374.7C277.8 387.2 298.1 387.2 310.6 374.7L512 173.3L512 256C512 273.7 526.3 288 544 288C561.7 288 576 273.7 576 256L576 96C576 78.3 561.7 64 544 64L384 64zM144 160C99.8 160 64 195.8 64 240L64 496C64 540.2 99.8 576 144 576L400 576C444.2 576 480 540.2 480 496L480 416C480 398.3 465.7 384 448 384C430.3 384 416 398.3 416 416L416 496C416 504.8 408.8 512 400 512L144 512C135.2 512 128 504.8 128 496L128 240C128 231.2 135.2 224 144 224L224 224C241.7 224 256 209.7 256 192C256 174.3 241.7 160 224 160L144 160z"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* References are used to simply mention, **not requiring knowledge of** other content inside or outside site.
|
|
3
|
+
*
|
|
4
|
+
* Reference types:
|
|
5
|
+
* * Global Content — points to content items and uniques via `$CONTENT` global object.
|
|
6
|
+
* * Unique — points to a unique element directly.
|
|
7
|
+
* * Direct — points to an external URL (when possible, avoid using of these).
|
|
8
|
+
*
|
|
9
|
+
* @title Inliner Reference
|
|
10
|
+
* @layout inliner
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // Global content reference
|
|
14
|
+
* <P>
|
|
15
|
+
* The method we used here is somewhat similar to <Ref to={$CONTENT.combinatorics.sumRule}>Rule of Sum</Ref> in combinatorics.
|
|
16
|
+
* </P>
|
|
17
|
+
*
|
|
18
|
+
* // Link to uniques directly
|
|
19
|
+
* <P $={uniques.intro}>Intro Paragraph</P>
|
|
20
|
+
* <P>
|
|
21
|
+
* If you remember, we also did this transform back in the <Ref to={uniques.intro}>introduction</Ref>.
|
|
22
|
+
* </P>
|
|
23
|
+
*
|
|
24
|
+
* // Direct reference
|
|
25
|
+
* <Ref to="https://google.com">Just Google It!</Ref>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export const Ref = '_tag_';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Same as `<Ref>`, but as a block element which draws more attention.
|
|
32
|
+
*
|
|
33
|
+
* @title Block Reference
|
|
34
|
+
* @layout block
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* // Global content reference
|
|
38
|
+
* <Reference to={$CONTENT.combinatorics.sumRule}>
|
|
39
|
+
* There is a similar method called Rule of Sum in combinatorics which you might want to review.
|
|
40
|
+
* </Reference>
|
|
41
|
+
*
|
|
42
|
+
* // Link to uniques directly
|
|
43
|
+
* <P $={uniques.intro}>Intro Paragraph</P>
|
|
44
|
+
* <Reference to={uniques.intro}>
|
|
45
|
+
* If you remember, we also did this transform back in the introduction.
|
|
46
|
+
* </Reference>
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export const Reference = '_tag_';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare const _default: (import("../../../app/appElement.js").AppElement<{
|
|
2
|
+
name: "referenceInliner";
|
|
3
|
+
type: "inliner";
|
|
4
|
+
linkable: true;
|
|
5
|
+
Data: import("../core.js").LinkData;
|
|
6
|
+
Storage: import("../storage.js").LinkStorage;
|
|
7
|
+
Children: undefined;
|
|
8
|
+
}> | import("../../../app/appElement.js").AppElement<{
|
|
9
|
+
name: "referenceBlock";
|
|
10
|
+
type: "block";
|
|
11
|
+
linkable: true;
|
|
12
|
+
Data: import("../core.js").LinkData;
|
|
13
|
+
Storage: import("../storage.js").LinkStorage;
|
|
14
|
+
Children: undefined;
|
|
15
|
+
}>)[];
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineEruditProseAppElement } from "../../../app/appElement.js";
|
|
2
|
+
import { referenceSchema, refSchema } from "./core.js";
|
|
3
|
+
export default [defineEruditProseAppElement({
|
|
4
|
+
schema: refSchema,
|
|
5
|
+
component: () => import("../Link.vue")
|
|
6
|
+
}), defineEruditProseAppElement({
|
|
7
|
+
schema: referenceSchema,
|
|
8
|
+
component: () => import("../BlockLink.vue"),
|
|
9
|
+
icon: () => import("../icon.svg?raw"),
|
|
10
|
+
languages: {
|
|
11
|
+
en: () => import("./languages/en.js"),
|
|
12
|
+
ru: () => import("./languages/ru.js")
|
|
13
|
+
}
|
|
14
|
+
})];
|