erudit 3.0.0-dev.1 → 3.0.0-dev.11

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.
Files changed (254) hide show
  1. package/app/app.vue +195 -172
  2. package/app/components/Loading.vue +23 -23
  3. package/app/components/SiteAside.vue +393 -382
  4. package/app/components/SiteMain.vue +32 -35
  5. package/app/components/ads/BannerTemplate.vue +51 -51
  6. package/app/components/ads/BottomBanner.vue +45 -45
  7. package/app/components/ads/LeftBanner.vue +50 -50
  8. package/app/components/aside/AsideListItem.vue +74 -74
  9. package/app/components/aside/AsideMajor.vue +56 -56
  10. package/app/components/aside/AsideMinor.vue +71 -71
  11. package/app/components/aside/major/PaneContentScroll.vue +23 -23
  12. package/app/components/aside/major/PaneSwitch.vue +54 -54
  13. package/app/components/aside/major/PaneSwitchButton.vue +63 -63
  14. package/app/components/aside/major/SiteInfo.vue +85 -85
  15. package/app/components/aside/major/panes/Language.vue +79 -79
  16. package/app/components/aside/major/panes/Pages.vue +34 -34
  17. package/app/components/aside/major/panes/Search.vue +11 -11
  18. package/app/components/aside/major/panes/nav/Nav.vue +87 -91
  19. package/app/components/aside/major/panes/nav/NavBook.vue +87 -86
  20. package/app/components/aside/major/panes/nav/NavBookLoading.vue +24 -24
  21. package/app/components/aside/major/panes/nav/NavGlobal.vue +16 -16
  22. package/app/components/aside/major/panes/nav/fnav/FNav.vue +105 -105
  23. package/app/components/aside/major/panes/nav/fnav/FNavBook.vue +32 -32
  24. package/app/components/aside/major/panes/nav/fnav/FNavFlags.vue +40 -40
  25. package/app/components/aside/major/panes/nav/fnav/FNavFolder.vue +60 -60
  26. package/app/components/aside/major/panes/nav/fnav/FNavItem.vue +34 -34
  27. package/app/components/aside/major/panes/nav/fnav/FNavSeparator.vue +80 -80
  28. package/app/components/aside/major/panes/nav/fnav/FNavTopic.vue +24 -24
  29. package/app/components/aside/major/panes/other/ItemContent.vue +29 -29
  30. package/app/components/aside/major/panes/other/ItemGenerator.vue +13 -15
  31. package/app/components/aside/major/panes/other/ItemTheme.vue +54 -54
  32. package/app/components/aside/major/panes/other/Other.vue +16 -16
  33. package/app/components/aside/minor/AsideMinorContributor.vue +5 -5
  34. package/app/components/aside/minor/AsideMinorNews.vue +11 -11
  35. package/app/components/aside/minor/AsideMinorPane.vue +15 -15
  36. package/app/components/aside/minor/AsideMinorTopLink.vue +67 -67
  37. package/app/components/aside/minor/Contribute.vue +145 -145
  38. package/app/components/aside/minor/content/AsideMinorContent.vue +92 -92
  39. package/app/components/aside/minor/topic/AsideMinorTopic.vue +32 -32
  40. package/app/components/aside/minor/topic/TopicContributors.vue +177 -177
  41. package/app/components/aside/minor/topic/TopicNav.vue +49 -49
  42. package/app/components/aside/minor/topic/TopicToc.vue +219 -203
  43. package/app/components/aside/minor/topic/TopicTocItem.vue +30 -31
  44. package/app/components/aside/utils/AsideOverlayPane.vue +40 -40
  45. package/app/components/bitran/BitranContent.vue +91 -63
  46. package/app/components/bitran/RenderWrapper.vue +10 -10
  47. package/app/components/contributor/ContributorAvatar.vue +45 -43
  48. package/app/components/contributor/ContributorListItem.vue +35 -35
  49. package/app/components/main/topic/MainTopic.vue +78 -79
  50. package/app/components/main/topic/TopicPartSwitch.vue +118 -118
  51. package/app/components/main/utils/Breadcrumb.vue +70 -75
  52. package/app/components/main/utils/ContentDecoration.vue +29 -29
  53. package/app/components/main/utils/ContentDescription.vue +19 -19
  54. package/app/components/main/utils/ContentPopover.vue +188 -176
  55. package/app/components/main/utils/ContentPopovers.vue +111 -105
  56. package/app/components/main/utils/ContentReferences.vue +70 -70
  57. package/app/components/main/utils/ContentSection.vue +45 -45
  58. package/app/components/main/utils/ContentTitle.vue +63 -39
  59. package/app/components/main/utils/reference/ReferenceGroup.vue +38 -38
  60. package/app/components/main/utils/reference/ReferenceItem.vue +68 -68
  61. package/app/components/main/utils/reference/ReferenceSource.vue +116 -116
  62. package/app/components/preview/Preview.vue +186 -177
  63. package/app/components/preview/PreviewDisplay.vue +139 -139
  64. package/app/components/preview/PreviewFooterAction.vue +73 -73
  65. package/app/components/preview/PreviewLoading.vue +14 -14
  66. package/app/components/preview/PreviewScreen.vue +141 -99
  67. package/app/components/preview/display/Alert.vue +50 -50
  68. package/app/components/preview/display/Custom.vue +18 -18
  69. package/app/components/preview/display/GenericLink.vue +48 -48
  70. package/app/components/preview/display/PageLink.vue +20 -20
  71. package/app/components/preview/display/Unique.vue +55 -49
  72. package/app/components/transition/Fade.vue +19 -19
  73. package/app/components/tree/TreeContainer.vue +11 -11
  74. package/app/components/tree/TreeItem.vue +89 -89
  75. package/app/composables/bitran.ts +108 -127
  76. package/app/composables/bitranContent.ts +93 -37
  77. package/app/composables/bitranLocation.ts +7 -7
  78. package/app/composables/contentData.ts +36 -36
  79. package/app/composables/contentPage.ts +157 -156
  80. package/app/composables/contentRoute.ts +45 -45
  81. package/app/composables/darkMagic.ts +24 -24
  82. package/app/composables/externalApi.ts +63 -63
  83. package/app/composables/favicon.ts +8 -8
  84. package/app/composables/formatText.ts +86 -86
  85. package/app/composables/majorPane.ts +60 -60
  86. package/app/composables/phrases.ts +81 -80
  87. package/app/composables/theme.ts +29 -29
  88. package/app/composables/url.ts +33 -33
  89. package/app/pages/_test/preview.vue +110 -110
  90. package/app/pages/article/[...articleId].vue +3 -3
  91. package/app/pages/book/[...bookId].vue +47 -47
  92. package/app/pages/group/[...groupId].vue +64 -65
  93. package/app/pages/index.vue +32 -32
  94. package/app/pages/members.vue +6 -6
  95. package/app/pages/practice/[...practice].vue +3 -3
  96. package/app/pages/summary/[...summaryId].vue +3 -3
  97. package/app/public/favicon/article.svg +5 -5
  98. package/app/public/favicon/default.svg +3 -3
  99. package/app/public/favicon/practice.svg +3 -3
  100. package/app/public/favicon/summary.svg +4 -4
  101. package/app/public/logotype.svg +2 -2
  102. package/app/scripts/_immediate.js +9 -9
  103. package/app/scripts/aside/index.ts +59 -59
  104. package/app/scripts/aside/major/nav.ts +26 -26
  105. package/app/scripts/aside/minor/state.ts +37 -37
  106. package/app/scripts/aside/minor/topic.ts +3 -3
  107. package/app/scripts/flag.ts +28 -28
  108. package/app/scripts/og.ts +27 -27
  109. package/app/scripts/preview/build.ts +80 -73
  110. package/app/scripts/preview/data/alert.ts +19 -19
  111. package/app/scripts/preview/data/custom.ts +8 -8
  112. package/app/scripts/preview/data/genericLink.ts +24 -24
  113. package/app/scripts/preview/data/pageLink.ts +22 -20
  114. package/app/scripts/preview/data/unique.ts +72 -70
  115. package/app/scripts/preview/data.ts +24 -24
  116. package/app/scripts/preview/display.ts +37 -37
  117. package/app/scripts/preview/footer.ts +9 -9
  118. package/app/scripts/preview/request.ts +51 -51
  119. package/app/scripts/preview/state.ts +63 -63
  120. package/app/styles/_immediate.css +7 -7
  121. package/app/styles/_util.scss +43 -43
  122. package/app/styles/_utils.scss +44 -44
  123. package/app/styles/app.scss +91 -91
  124. package/app/styles/def/_bp.scss +27 -27
  125. package/app/styles/def/_size.scss +7 -7
  126. package/app/styles/def/_z.scss +5 -5
  127. package/app/styles/normalize.scss +63 -63
  128. package/app/styles/partials/_darkMagic.scss +5 -5
  129. package/app/styles/partials/_fnav.scss +15 -15
  130. package/app/styles/partials/_preview.scss +5 -5
  131. package/bin/erudit.mjs +2 -0
  132. package/const.ts +4 -0
  133. package/globalPath.ts +21 -21
  134. package/globals/bitran.ts +1 -47
  135. package/globals/content.ts +22 -22
  136. package/globals/contributor.ts +5 -5
  137. package/globals/erudit.ts +5 -5
  138. package/globals/register.ts +18 -18
  139. package/languages/en.ts +94 -95
  140. package/languages/ru.ts +98 -99
  141. package/module/bitran.ts +66 -34
  142. package/module/config.ts +35 -34
  143. package/module/imports.ts +66 -46
  144. package/module/index.ts +49 -47
  145. package/module/logger.ts +10 -10
  146. package/module/paths.ts +22 -22
  147. package/module/problemGenerators.ts +46 -0
  148. package/module/restart.ts +61 -61
  149. package/nuxt.config.ts +129 -111
  150. package/package.json +19 -13
  151. package/server/api/aside/major/nav/bookIds.ts +5 -5
  152. package/server/api/aside/major/nav/bookNav/[...bookId].ts +20 -20
  153. package/server/api/aside/major/nav/global.ts +7 -7
  154. package/server/api/aside/minor/news.ts +7 -7
  155. package/server/api/aside/minor/path.ts +77 -78
  156. package/server/api/bitran/content/{[location].ts → [...location].ts} +8 -7
  157. package/server/api/bitran/toc/{[location].ts → [...location].ts} +7 -7
  158. package/server/api/content/data.ts +72 -72
  159. package/server/api/contributor/count.ts +6 -6
  160. package/server/api/fake/content.ts +11 -11
  161. package/server/api/fake/shared/languages.ts +12 -12
  162. package/server/api/language/functions.ts +12 -12
  163. package/server/api/language/phrase/[phraseId].ts +19 -19
  164. package/server/api/language/phraseIds.ts +8 -8
  165. package/server/api/preview/page/[...parts].ts +52 -51
  166. package/server/api/preview/unique/[location].ts +60 -55
  167. package/server/plugin/bitran/content.ts +208 -187
  168. package/server/plugin/bitran/{products → elements}/include.ts +225 -230
  169. package/server/plugin/bitran/location.ts +25 -25
  170. package/server/plugin/bitran/toc.ts +89 -83
  171. package/server/plugin/bitran/transpiler.ts +9 -46
  172. package/server/plugin/build/close.ts +12 -10
  173. package/server/plugin/build/jobs/content/builderArgs.ts +8 -8
  174. package/server/plugin/build/jobs/content/generic.ts +192 -176
  175. package/server/plugin/build/jobs/content/parse.ts +109 -100
  176. package/server/plugin/build/jobs/content/path.ts +6 -6
  177. package/server/plugin/build/jobs/content/type/book.ts +9 -9
  178. package/server/plugin/build/jobs/content/type/group.ts +37 -37
  179. package/server/plugin/build/jobs/content/type/topic.ts +36 -36
  180. package/server/plugin/build/jobs/contributors.ts +66 -66
  181. package/server/plugin/build/jobs/language.ts +36 -36
  182. package/server/plugin/build/jobs/nav.ts +214 -209
  183. package/server/plugin/build/process.ts +27 -25
  184. package/server/plugin/build/rebuild.ts +66 -55
  185. package/server/plugin/build/setup.ts +19 -21
  186. package/server/plugin/content/context.ts +116 -112
  187. package/server/plugin/db/entities/Book.ts +7 -7
  188. package/server/plugin/db/entities/Content.ts +49 -49
  189. package/server/plugin/db/entities/Contribution.ts +10 -10
  190. package/server/plugin/db/entities/Contributor.ts +16 -16
  191. package/server/plugin/db/entities/File.ts +10 -0
  192. package/server/plugin/db/entities/Group.ts +14 -14
  193. package/server/plugin/db/entities/Hash.ts +15 -15
  194. package/server/plugin/db/entities/Topic.ts +20 -20
  195. package/server/plugin/db/entities/Unique.ts +21 -21
  196. package/server/plugin/db/reset.ts +12 -0
  197. package/server/plugin/db/setup.ts +49 -34
  198. package/server/plugin/global.ts +16 -18
  199. package/server/plugin/importer.ts +12 -12
  200. package/server/plugin/index.ts +9 -9
  201. package/server/plugin/logger.ts +23 -23
  202. package/server/plugin/nav/node.ts +26 -26
  203. package/server/plugin/nav/utils.ts +133 -129
  204. package/server/plugin/repository/book.ts +21 -21
  205. package/server/plugin/repository/content.ts +237 -238
  206. package/server/plugin/repository/contributor.ts +8 -8
  207. package/server/plugin/repository/file.ts +10 -0
  208. package/server/plugin/repository/frontNav.ts +148 -148
  209. package/server/plugin/repository/topic.ts +32 -32
  210. package/server/tsconfig.json +9 -7
  211. package/shared/aside/minor.ts +51 -50
  212. package/shared/asset.ts +22 -15
  213. package/shared/bitran/contentId.ts +88 -0
  214. package/shared/bitran/stringContent.ts +6 -0
  215. package/shared/bitran/toc.ts +8 -8
  216. package/shared/content/context.ts +9 -9
  217. package/shared/content/data/base.ts +32 -32
  218. package/shared/content/data/index.ts +5 -5
  219. package/shared/content/data/type/book.ts +5 -5
  220. package/shared/content/data/type/group.ts +6 -6
  221. package/shared/content/data/type/topic.ts +11 -11
  222. package/shared/content/previousNext.ts +9 -9
  223. package/shared/contributor.ts +5 -5
  224. package/shared/frontNav.ts +41 -41
  225. package/shared/icons.ts +38 -38
  226. package/shared/image.ts +5 -5
  227. package/shared/link.ts +28 -25
  228. package/shared/popover.ts +8 -0
  229. package/shared/types/language.ts +74 -75
  230. package/shared/utils/objectsEqual.ts +4 -4
  231. package/shared/utils/stringColor.ts +9 -9
  232. package/test/contentId.test.ts +91 -0
  233. package/tsconfig.json +8 -8
  234. package/utils/contentPath.ts +67 -0
  235. package/utils/stress.ts +9 -9
  236. package/app/components/main/utils/ContentFlag.vue +0 -15
  237. package/app/styles/default.scss +0 -83
  238. package/server/plugin/bitran/products/link.ts +0 -116
  239. package/server/plugin/bitran/setup.ts +0 -9
  240. package/server/plugin/content/absoluteId.ts +0 -94
  241. package/shared/bitran/context.ts +0 -8
  242. package/shared/bitran/default.ts +0 -46
  243. package/shared/bitran/link/Link.vue +0 -167
  244. package/shared/bitran/link/factory.ts +0 -24
  245. package/shared/bitran/link/icon.svg +0 -3
  246. package/shared/bitran/link/languages/en.ts +0 -7
  247. package/shared/bitran/link/languages/ru.ts +0 -7
  248. package/shared/bitran/link/renderer.ts +0 -21
  249. package/shared/bitran/link/shared.ts +0 -17
  250. package/shared/bitran/link/target.ts +0 -134
  251. package/shared/bitran/link/transpiler.ts +0 -10
  252. package/shared/bitran/location.ts +0 -166
  253. package/test/bitran/link/target.test.ts +0 -141
  254. package/test/bitran/location.test.ts +0 -143
@@ -1,110 +1,110 @@
1
- <script lang="ts" setup>
2
- import { PreviewDataType } from '@app/scripts/preview/data';
3
- import { createPreviewError } from '@app/scripts/preview/data/alert';
4
- import { PreviewRequestType } from '@app/scripts/preview/request';
5
- import {
6
- PreviewThemeName,
7
- showPreview,
8
- togglePreview,
9
- } from '@app/scripts/preview/state';
10
-
11
- function showCustom() {
12
- showPreview({
13
- type: PreviewRequestType.Data,
14
- data: {
15
- type: PreviewDataType.Custom,
16
- message: 'This is custom message for preview!',
17
- footer: {
18
- //iconName: 'arrow-left',
19
- iconSvg:
20
- '<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.42436 0H9.57565L14.995 16H11.8276L10.8115 13H5.18855L4.17242 16H1.005L6.42436 0ZM6.20468 10H9.79533L8 4.69952L6.20468 10Z"></path> </g></svg>',
21
- secondary: 'Secondary raw text',
22
- primary: 'Primary raw text',
23
- href: 'https://google.com',
24
- },
25
- },
26
- });
27
- }
28
-
29
- function showAlert(theme: PreviewThemeName) {
30
- showPreview({
31
- type: PreviewRequestType.Data,
32
- data: createPreviewError({
33
- theme,
34
- message: 'This is message!',
35
- title: 'Custom Title',
36
- pre: JSON.stringify(
37
- {
38
- foo: 1337,
39
- bar: 'Some text',
40
- },
41
- null,
42
- 4,
43
- ),
44
- }),
45
- });
46
- }
47
- </script>
48
-
49
- <template>
50
- <button @click="() => togglePreview()">Toggle Preview</button>
51
- <div>
52
- Show:
53
- <br />
54
- <button :class="$style.button" @click="showCustom">Custom</button>
55
- <br />
56
- <button
57
- :class="$style.button"
58
- v-for="theme in PreviewThemeName"
59
- @click="() => showAlert(theme)"
60
- >
61
- Alert {{ theme }}
62
- </button>
63
- <br />
64
- <button
65
- :class="$style.button"
66
- @click="
67
- showPreview({
68
- type: PreviewRequestType.MissingElement,
69
- elementId: 'foo-id',
70
- })
71
- "
72
- >
73
- Missing element
74
- </button>
75
- <button
76
- :class="$style.button"
77
- @click="
78
- showPreview({
79
- type: PreviewRequestType.MissingElement,
80
- elementId: 'foo-id',
81
- hashMismatch: { current: 'bar', expected: 'baz' },
82
- })
83
- "
84
- >
85
- Missing element + hash mismatch
86
- </button>
87
- <br />
88
- <button
89
- :class="$style.button"
90
- @click="
91
- showPreview({
92
- type: PreviewRequestType.HashMismatch,
93
- currentHash: 'foo',
94
- expectedHash: 'bar',
95
- })
96
- "
97
- >
98
- Hash mismatch
99
- </button>
100
- </div>
101
- </template>
102
-
103
- <style lang="scss" module>
104
- .button {
105
- border: 2px solid var(--border);
106
- border-radius: 3px;
107
- padding: 3px;
108
- margin: 3px;
109
- }
110
- </style>
1
+ <script lang="ts" setup>
2
+ import { PreviewDataType } from '@app/scripts/preview/data';
3
+ import { createPreviewError } from '@app/scripts/preview/data/alert';
4
+ import { PreviewRequestType } from '@app/scripts/preview/request';
5
+ import {
6
+ PreviewThemeName,
7
+ showPreview,
8
+ togglePreview,
9
+ } from '@app/scripts/preview/state';
10
+
11
+ function showCustom() {
12
+ showPreview({
13
+ type: PreviewRequestType.Data,
14
+ data: {
15
+ type: PreviewDataType.Custom,
16
+ message: 'This is custom message for preview!',
17
+ footer: {
18
+ //iconName: 'arrow-left',
19
+ iconSvg:
20
+ '<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.42436 0H9.57565L14.995 16H11.8276L10.8115 13H5.18855L4.17242 16H1.005L6.42436 0ZM6.20468 10H9.79533L8 4.69952L6.20468 10Z"></path> </g></svg>',
21
+ secondary: 'Secondary raw text',
22
+ primary: 'Primary raw text',
23
+ href: 'https://google.com',
24
+ },
25
+ },
26
+ });
27
+ }
28
+
29
+ function showAlert(theme: PreviewThemeName) {
30
+ showPreview({
31
+ type: PreviewRequestType.Data,
32
+ data: createPreviewError({
33
+ theme,
34
+ message: 'This is message!',
35
+ title: 'Custom Title',
36
+ pre: JSON.stringify(
37
+ {
38
+ foo: 1337,
39
+ bar: 'Some text',
40
+ },
41
+ null,
42
+ 4,
43
+ ),
44
+ }),
45
+ });
46
+ }
47
+ </script>
48
+
49
+ <template>
50
+ <button @click="() => togglePreview()">Toggle Preview</button>
51
+ <div>
52
+ Show:
53
+ <br />
54
+ <button :class="$style.button" @click="showCustom">Custom</button>
55
+ <br />
56
+ <button
57
+ :class="$style.button"
58
+ v-for="theme in PreviewThemeName"
59
+ @click="() => showAlert(theme)"
60
+ >
61
+ Alert {{ theme }}
62
+ </button>
63
+ <br />
64
+ <button
65
+ :class="$style.button"
66
+ @click="
67
+ showPreview({
68
+ type: PreviewRequestType.MissingElement,
69
+ elementId: 'foo-id',
70
+ })
71
+ "
72
+ >
73
+ Missing element
74
+ </button>
75
+ <button
76
+ :class="$style.button"
77
+ @click="
78
+ showPreview({
79
+ type: PreviewRequestType.MissingElement,
80
+ elementId: 'foo-id',
81
+ hashMismatch: { current: 'bar', expected: 'baz' },
82
+ })
83
+ "
84
+ >
85
+ Missing element + hash mismatch
86
+ </button>
87
+ <br />
88
+ <button
89
+ :class="$style.button"
90
+ @click="
91
+ showPreview({
92
+ type: PreviewRequestType.HashMismatch,
93
+ currentHash: 'foo',
94
+ expectedHash: 'bar',
95
+ })
96
+ "
97
+ >
98
+ Hash mismatch
99
+ </button>
100
+ </div>
101
+ </template>
102
+
103
+ <style lang="scss" module>
104
+ .button {
105
+ border: 2px solid var(--border);
106
+ border-radius: 3px;
107
+ padding: 3px;
108
+ margin: 3px;
109
+ }
110
+ </style>
@@ -1,3 +1,3 @@
1
- <template>
2
- <MainTopic />
3
- </template>
1
+ <template>
2
+ <MainTopic />
3
+ </template>
@@ -1,47 +1,47 @@
1
- <script lang="ts" setup>
2
- import type { ContentBookData } from '@erudit/shared/content/data/type/book';
3
- import type { MyIconName } from '#my-icons';
4
-
5
- import ContentDecoration from '@app/components/main/utils/ContentDecoration.vue';
6
- import Breadcrumb from '@app/components/main/utils/Breadcrumb.vue';
7
- import ContentTitle from '@app/components/main/utils/ContentTitle.vue';
8
- import ContentDescription from '@app/components/main/utils/ContentDescription.vue';
9
- import ContentPopovers from '@app/components/main/utils/ContentPopovers.vue';
10
-
11
- const bookData = await useContentData<ContentBookData>();
12
- await useContentPage(bookData);
13
-
14
- const phrase = await usePhrases('book');
15
- </script>
16
-
17
- <template>
18
- <ContentDecoration
19
- v-if="bookData.generic.decoration"
20
- :decoration="bookData.generic.decoration"
21
- />
22
-
23
- <Breadcrumb
24
- v-if="bookData.generic.context?.length > 1"
25
- :context="bookData.generic.context"
26
- />
27
-
28
- <ContentTitle
29
- :title="
30
- bookData.generic?.title ||
31
- bookData.generic.contentId.split('/').pop()!
32
- "
33
- :icon="<MyIconName>'outline/book'"
34
- :hint="phrase.book"
35
- />
36
-
37
- <ContentDescription
38
- v-if="bookData.generic?.description"
39
- :description="bookData.generic?.description"
40
- />
41
-
42
- <ContentPopovers :generic="bookData.generic" />
43
-
44
- <!-- Counters, fancy "GO LEARN" button and etc. -->
45
-
46
- <div style="clear: both"></div>
47
- </template>
1
+ <script lang="ts" setup>
2
+ import type { ContentBookData } from '@erudit/shared/content/data/type/book';
3
+ import type { MyIconName } from '#my-icons';
4
+
5
+ import ContentDecoration from '@app/components/main/utils/ContentDecoration.vue';
6
+ import Breadcrumb from '@app/components/main/utils/Breadcrumb.vue';
7
+ import ContentTitle from '@app/components/main/utils/ContentTitle.vue';
8
+ import ContentDescription from '@app/components/main/utils/ContentDescription.vue';
9
+ import ContentPopovers from '@app/components/main/utils/ContentPopovers.vue';
10
+
11
+ const bookData = await useContentData<ContentBookData>();
12
+ await useContentPage(bookData);
13
+
14
+ const phrase = await usePhrases('book');
15
+ </script>
16
+
17
+ <template>
18
+ <ContentDecoration
19
+ v-if="bookData.generic.decoration"
20
+ :decoration="bookData.generic.decoration"
21
+ />
22
+
23
+ <Breadcrumb
24
+ v-if="bookData.generic.context?.length > 1"
25
+ :context="bookData.generic.context"
26
+ />
27
+
28
+ <ContentTitle
29
+ :title="
30
+ bookData.generic?.title ||
31
+ bookData.generic.contentId.split('/').pop()!
32
+ "
33
+ :icon="<MyIconName>'outline/book'"
34
+ :hint="phrase.book"
35
+ />
36
+
37
+ <ContentDescription
38
+ v-if="bookData.generic?.description"
39
+ :description="bookData.generic?.description"
40
+ />
41
+
42
+ <ContentPopovers :generic="bookData.generic" />
43
+
44
+ <!-- Counters, fancy "GO LEARN" button and etc. -->
45
+
46
+ <div style="clear: both"></div>
47
+ </template>
@@ -1,65 +1,64 @@
1
- <script lang="ts" setup>
2
- import { NO_ALIASES } from '@erudit-js/bitran-elements/aliases/shared';
3
-
4
- import { type ContentGroupData } from '@shared/content/data/type/group';
5
- import eruditConfig from '#erudit/config';
6
-
7
- import ContentDecoration from '@app/components/main/utils/ContentDecoration.vue';
8
- import Breadcrumb from '@app/components/main/utils/Breadcrumb.vue';
9
- import ContentTitle from '@app/components/main/utils/ContentTitle.vue';
10
- import ContentDescription from '@app/components/main/utils/ContentDescription.vue';
11
- import ContentPopovers from '@app/components/main/utils/ContentPopovers.vue';
12
- import ContentSection from '@app/components/main/utils/ContentSection.vue';
13
- import { locationIcon } from '@erudit/shared/icons';
14
-
15
- const location = useBitranLocation();
16
-
17
- const groupData = await useContentData<ContentGroupData>();
18
- await useContentPage(groupData);
19
-
20
- const content = await useBitranContent(location);
21
- const phrase = await usePhrases('group');
22
- </script>
23
-
24
- <template>
25
- <ContentDecoration
26
- v-if="groupData.generic.decoration"
27
- :decoration="groupData.generic.decoration"
28
- />
29
-
30
- <Breadcrumb
31
- v-if="groupData.generic.context?.length > 1"
32
- :context="groupData.generic.context"
33
- />
34
-
35
- <ContentTitle
36
- :title="
37
- groupData.generic?.title ||
38
- groupData.generic.contentId.split('/').pop()!
39
- "
40
- :icon="locationIcon(location!)"
41
- :hint="phrase.group"
42
- />
43
-
44
- <ContentDescription
45
- v-if="groupData.generic?.description"
46
- :description="groupData.generic?.description"
47
- />
48
-
49
- <ContentPopovers :generic="groupData.generic" />
50
-
51
- <!-- TODO: List of materials in group -->
52
-
53
- <div style="clear: both"></div>
54
-
55
- <hr style="display: none" />
56
-
57
- <ContentSection>
58
- <BitranContent
59
- :content
60
- :context="{ location, aliases: NO_ALIASES() }"
61
- />
62
- </ContentSection>
63
-
64
- <AdsBottomBanner v-if="eruditConfig.ads?.bottomBlockId" />
65
- </template>
1
+ <script lang="ts" setup>
2
+ import { NO_ALIASES } from '@erudit-js/cog/schema';
3
+ import eruditConfig from '#erudit/config';
4
+
5
+ import { type ContentGroupData } from '@shared/content/data/type/group';
6
+ import { locationIcon } from '@erudit/shared/icons';
7
+ import ContentDecoration from '@app/components/main/utils/ContentDecoration.vue';
8
+ import Breadcrumb from '@app/components/main/utils/Breadcrumb.vue';
9
+ import ContentTitle from '@app/components/main/utils/ContentTitle.vue';
10
+ import ContentDescription from '@app/components/main/utils/ContentDescription.vue';
11
+ import ContentPopovers from '@app/components/main/utils/ContentPopovers.vue';
12
+ import ContentSection from '@app/components/main/utils/ContentSection.vue';
13
+
14
+ const location = useBitranLocation();
15
+
16
+ const groupData = await useContentData<ContentGroupData>();
17
+ await useContentPage(groupData);
18
+
19
+ const content = await useBitranContent(location);
20
+ const phrase = await usePhrases('group');
21
+ </script>
22
+
23
+ <template>
24
+ <ContentDecoration
25
+ v-if="groupData.generic.decoration"
26
+ :decoration="groupData.generic.decoration"
27
+ />
28
+
29
+ <Breadcrumb
30
+ v-if="groupData.generic.context?.length > 1"
31
+ :context="groupData.generic.context"
32
+ />
33
+
34
+ <ContentTitle
35
+ :title="
36
+ groupData.generic?.title ||
37
+ groupData.generic.contentId.split('/').pop()!
38
+ "
39
+ :icon="locationIcon(location!)"
40
+ :hint="phrase.group"
41
+ />
42
+
43
+ <ContentDescription
44
+ v-if="groupData.generic?.description"
45
+ :description="groupData.generic?.description"
46
+ />
47
+
48
+ <ContentPopovers :generic="groupData.generic" />
49
+
50
+ <!-- TODO: List of materials in group -->
51
+
52
+ <div style="clear: both"></div>
53
+
54
+ <hr style="display: none" />
55
+
56
+ <ContentSection>
57
+ <BitranContent
58
+ :content
59
+ :context="{ location, aliases: NO_ALIASES() }"
60
+ />
61
+ </ContentSection>
62
+
63
+ <AdsBottomBanner v-if="eruditConfig.ads?.bottomBlockId" />
64
+ </template>
@@ -1,32 +1,32 @@
1
- <script lang="ts" setup>
2
- import eruditConfig from '#erudit/config';
3
-
4
- const phrase = await usePhrases('seo_index_title', 'seo_index_description');
5
-
6
- const seoTitle =
7
- eruditConfig.seo?.indexTitle ||
8
- eruditConfig.seo?.title ||
9
- phrase.seo_index_title;
10
- const seoDescription =
11
- eruditConfig.seo?.indexDescription || phrase.seo_index_description;
12
-
13
- useSeoMeta({
14
- title: seoTitle,
15
- ogTitle: seoTitle,
16
- description: seoDescription,
17
- ogDescription: seoDescription,
18
- });
19
- </script>
20
-
21
- <template>
22
- <div style="padding: var(--_pMainY) var(--_pMainX)">
23
- <h1>
24
- {{
25
- eruditConfig.seo?.title ||
26
- eruditConfig.site?.title ||
27
- phrase.seo_index_title
28
- }}
29
- </h1>
30
- <p>TODO</p>
31
- </div>
32
- </template>
1
+ <script lang="ts" setup>
2
+ import eruditConfig from '#erudit/config';
3
+
4
+ const phrase = await usePhrases('seo_index_title', 'seo_index_description');
5
+
6
+ const seoTitle =
7
+ eruditConfig.seo?.indexTitle ||
8
+ eruditConfig.seo?.title ||
9
+ phrase.seo_index_title;
10
+ const seoDescription =
11
+ eruditConfig.seo?.indexDescription || phrase.seo_index_description;
12
+
13
+ useSeoMeta({
14
+ title: seoTitle,
15
+ ogTitle: seoTitle,
16
+ description: seoDescription,
17
+ ogDescription: seoDescription,
18
+ });
19
+ </script>
20
+
21
+ <template>
22
+ <div style="padding: var(--_pMainY) var(--_pMainX)">
23
+ <h1>
24
+ {{
25
+ eruditConfig.seo?.title ||
26
+ eruditConfig.site?.title ||
27
+ phrase.seo_index_title
28
+ }}
29
+ </h1>
30
+ <p>TODO</p>
31
+ </div>
32
+ </template>
@@ -1,6 +1,6 @@
1
- <script lang="ts" setup></script>
2
-
3
- <template>
4
- <p>Members</p>
5
- <NuxtLink to="/practice/topic-b">Погнали епты!</NuxtLink>
6
- </template>
1
+ <script lang="ts" setup></script>
2
+
3
+ <template>
4
+ <p>Members</p>
5
+ <NuxtLink to="/practice/topic-b">Погнали епты!</NuxtLink>
6
+ </template>
@@ -1,3 +1,3 @@
1
- <template>
2
- <MainTopic />
3
- </template>
1
+ <template>
2
+ <MainTopic />
3
+ </template>
@@ -1,3 +1,3 @@
1
- <template>
2
- <MainTopic />
3
- </template>
1
+ <template>
2
+ <MainTopic />
3
+ </template>
@@ -1,10 +1,10 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
2
  <defs>
3
- <linearGradient id="gradient" x1="74.98" y1="423.02" x2="437.02" y2="60.98" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#6fa552"/>
5
- <stop offset="1" stop-color="#4475bc"/>
3
+ <linearGradient id="gradient" x1="75" y1="423" x2="437" y2="61" gradientUnits="userSpaceOnUse">
4
+ <stop offset="0" stop-color="#4aa44c"/>
5
+ <stop offset="1" stop-color="#1278b9"/>
6
6
  </linearGradient>
7
7
  </defs>
8
- <circle cx="256" cy="256" r="256" fill="url(#gradient)"/>
9
- <path d="M124.13,354.9c-4.67,0-8.59-1.58-11.74-4.74-3.16-3.16-4.74-7.07-4.74-11.74s1.58-8.59,4.74-11.74c3.16-3.16,7.07-4.74,11.74-4.74h164.84c4.67,0,8.59,1.58,11.74,4.74,3.16,3.16,4.74,7.07,4.74,11.74s-1.58,8.59-4.74,11.74c-3.16,3.16-7.07,4.74-11.74,4.74H124.13ZM124.13,272.48c-4.67,0-8.59-1.58-11.74-4.74-3.16-3.16-4.74-7.07-4.74-11.74s1.58-8.59,4.74-11.74c3.16-3.16,7.07-4.74,11.74-4.74h263.74c4.67,0,8.59,1.58,11.74,4.74,3.16,3.16,4.74,7.07,4.74,11.74s-1.58,8.59-4.74,11.74c-3.16,3.16-7.07,4.74-11.74,4.74H124.13ZM124.13,190.07c-4.67,0-8.59-1.58-11.74-4.74-3.16-3.16-4.74-7.07-4.74-11.74s1.58-8.59,4.74-11.74c3.16-3.16,7.07-4.74,11.74-4.74h263.74c4.67,0,8.59,1.58,11.74,4.74,3.16,3.16,4.74,7.07,4.74,11.74s-1.58,8.59-4.74,11.74c-3.16,3.16-7.07,4.74-11.74,4.74H124.13Z" fill="#fff"/>
8
+ <circle fill="url(#gradient)" cx="256" cy="256" r="256"/>
9
+ <path fill="white" d="M372.4,179.3h-232.8c-6.6,0-12-5.4-12-12v-26.3c0-6.6,5.4-12,12-12h232.8c6.6,0,12,5.4,12,12v26.3c0,6.6-5.4,12-12,12ZM384.4,269.2v-26.3c0-6.6-5.4-12-12-12h-232.8c-6.6,0-12,5.4-12,12v26.3c0,6.6,5.4,12,12,12h232.8c6.6,0,12-5.4,12-12ZM384.4,371v-26.3c0-6.6-5.4-12-12-12h-232.8c-6.6,0-12,5.4-12,12v26.3c0,6.6,5.4,12,12,12h232.8c6.6,0,12-5.4,12-12Z"/>
10
10
  </svg>
@@ -1,10 +1,10 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
2
  <defs>
3
3
  <linearGradient id="gradient" x1="75" y1="423" x2="437" y2="61" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#6fa552"/>
5
- <stop offset="1" stop-color="#4475bc"/>
4
+ <stop offset="0" stop-color="#4aa44c"/>
5
+ <stop offset="1" stop-color="#1278b9"/>
6
6
  </linearGradient>
7
7
  </defs>
8
- <circle fill="url(#gradient)" class="cls-2" cx="256" cy="256" r="256"/>
8
+ <circle fill="url(#gradient)" cx="256" cy="256" r="256"/>
9
9
  <path fill="white" d="M385.2,317.4v-91.1l-122.9,61.9c-5.5,2.8-11.4,4.3-17.5,4.3s-12-1.4-17.4-4.3l-126.5-63.9c-3.3-1.7-5.9-4.1-7.9-7s-2.9-6.1-2.9-9.6,1-6.6,2.9-9.6c2-3,4.6-5.4,7.9-7.2l126.5-63.9c2.8-1.5,5.7-2.6,8.6-3.3,2.9-.7,5.9-1,8.9-1s5.9.4,8.9,1c2.9.7,5.8,1.8,8.6,3.3l149.2,75.2c3.1,1.7,5.6,4,7.6,6.9,1.9,2.9,2.9,6.1,2.9,9.8v98.7c0,5-1.8,9.3-5.4,12.9-3.6,3.6-7.8,5.4-12.9,5.4s-9.3-1.8-13-5.4c-3.6-3.6-5.5-7.9-5.5-13h0ZM235.8,388.5c3,.5,5.9.8,8.9.8s5.9-.3,8.9-.8c2.9-.5,5.9-1.6,8.6-3.1l67.9-34.1c6.2-3.1,11.2-7.7,14.9-13.7,3.8-6.1,5.6-12.6,5.6-19.6v-37.9l-88.4,44.6c-5.4,2.9-11.3,4.3-17.4,4.3s-12-1.5-17.5-4.3l-88.4-44.6v37.9c0,7,1.9,13.6,5.6,19.6,3.8,6,8.7,10.6,14.9,13.7l67.9,34.1h0c2.8,1.5,5.7,2.6,8.6,3.1Z"/>
10
10
  </svg>
@@ -1,10 +1,10 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
2
  <defs>
3
3
  <linearGradient id="gradient" x1="74.98" y1="423.02" x2="437.02" y2="60.98" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#6fa552"/>
5
- <stop offset="1" stop-color="#4475bc"/>
4
+ <stop offset="0" stop-color="#4aa44c"/>
5
+ <stop offset="1" stop-color="#1278b9"/>
6
6
  </linearGradient>
7
7
  </defs>
8
8
  <circle cx="256" cy="256" r="256" fill="url(#gradient)"/>
9
- <path d="M216.29,267.91l129.71-129.71,52.94,52.94-182.66,182.66-103.24-103.24,52.94-52.94,50.3,50.3Z" fill="#fff"/>
9
+ <path fill="white" d="M216.29,267.91l129.71-129.71,52.94,52.94-182.66,182.66-103.24-103.24,52.94-52.94,50.3,50.3Z" />
10
10
  </svg>
@@ -1,10 +1,10 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
2
2
  <defs>
3
3
  <linearGradient id="gradient" x1="74.98" y1="423.02" x2="437.02" y2="60.98" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#6fa552"/>
5
- <stop offset="1" stop-color="#4475bc"/>
4
+ <stop offset="0" stop-color="#4aa44c"/>
5
+ <stop offset="1" stop-color="#1278b9"/>
6
6
  </linearGradient>
7
7
  </defs>
8
- <circle cx="256" cy="256" r="256" fill="url(#gradient)"/>
9
- <path d="M271.03,131.48c-2.77-5.75-8.63-9.42-15.07-9.42s-12.24,3.66-15.07,9.42l-33.64,69.21-75.12,11.09c-6.28.94-11.51,5.34-13.44,11.35s-.37,12.66,4.13,17.11l54.51,53.93-12.87,76.22c-1.05,6.28,1.57,12.66,6.75,16.37,5.18,3.71,12.03,4.18,17.68,1.2l67.12-35.83,67.12,35.83c5.65,2.98,12.5,2.56,17.68-1.2,5.18-3.77,7.79-10.1,6.75-16.37l-12.92-76.22,54.51-53.93c4.5-4.45,6.12-11.09,4.13-17.11-1.99-6.02-7.17-10.41-13.44-11.35l-75.17-11.09-33.64-69.21Z" fill="#fff"/>
8
+ <circle fill="url(#gradient)" cx="256" cy="256" r="256" />
9
+ <path fill="white" d="M271.03,131.48c-2.77-5.75-8.63-9.42-15.07-9.42s-12.24,3.66-15.07,9.42l-33.64,69.21-75.12,11.09c-6.28.94-11.51,5.34-13.44,11.35s-.37,12.66,4.13,17.11l54.51,53.93-12.87,76.22c-1.05,6.28,1.57,12.66,6.75,16.37,5.18,3.71,12.03,4.18,17.68,1.2l67.12-35.83,67.12,35.83c5.65,2.98,12.5,2.56,17.68-1.2,5.18-3.77,7.79-10.1,6.75-16.37l-12.92-76.22,54.51-53.93c4.5-4.45,6.12-11.09,4.13-17.11-1.99-6.02-7.17-10.41-13.44-11.35l-75.17-11.09-33.64-69.21Z" />
10
10
  </svg>
@@ -1,8 +1,8 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 135 135">
2
2
  <defs>
3
3
  <linearGradient id="gradient" x1="19.77" y1="115.23" x2="115.23" y2="19.77" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#4475bc"/>
5
- <stop offset="1" stop-color="#6fa552"/>
4
+ <stop offset="0" stop-color="#4aa44c"/>
5
+ <stop offset="1" stop-color="#1278b9"/>
6
6
  <animateTransform
7
7
  attributeName="gradientTransform"
8
8
  type="rotate"