erudit 2.0.0-dev.9 → 3.0.0-dev.10

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 (167) hide show
  1. package/app/app.vue +34 -11
  2. package/app/components/SiteAside.vue +17 -6
  3. package/app/components/SiteMain.vue +2 -3
  4. package/app/components/aside/AsideListItem.vue +3 -3
  5. package/app/components/aside/AsideMinor.vue +1 -1
  6. package/app/components/aside/major/SiteInfo.vue +2 -2
  7. package/app/components/aside/major/panes/Search.vue +10 -2
  8. package/app/components/aside/major/panes/nav/Nav.vue +25 -29
  9. package/app/components/aside/major/panes/nav/NavBook.vue +2 -1
  10. package/app/components/aside/major/panes/nav/NavGlobal.vue +1 -1
  11. package/app/components/aside/major/panes/nav/fnav/FNav.vue +1 -1
  12. package/app/components/aside/major/panes/nav/fnav/FNavBook.vue +1 -1
  13. package/app/components/aside/major/panes/nav/fnav/FNavFlags.vue +2 -2
  14. package/app/components/aside/major/panes/nav/fnav/FNavFolder.vue +1 -1
  15. package/app/components/aside/major/panes/nav/fnav/FNavSeparator.vue +1 -1
  16. package/app/components/aside/major/panes/nav/fnav/FNavTopic.vue +1 -1
  17. package/app/components/aside/major/panes/other/ItemGenerator.vue +3 -5
  18. package/app/components/aside/minor/AsideMinorContributor.vue +1 -1
  19. package/app/components/aside/minor/AsideMinorNews.vue +1 -1
  20. package/app/components/aside/minor/AsideMinorPane.vue +2 -3
  21. package/app/components/aside/minor/content/AsideMinorContent.vue +1 -1
  22. package/app/components/aside/minor/topic/AsideMinorTopic.vue +1 -1
  23. package/app/components/aside/minor/topic/TopicContributors.vue +1 -1
  24. package/app/components/aside/minor/topic/TopicNav.vue +2 -2
  25. package/app/components/aside/minor/topic/TopicToc.vue +73 -57
  26. package/app/components/aside/minor/topic/TopicTocItem.vue +6 -7
  27. package/app/components/bitran/BitranContent.vue +31 -3
  28. package/app/components/contributor/ContributorAvatar.vue +10 -8
  29. package/app/components/main/topic/MainTopic.vue +2 -3
  30. package/app/components/main/topic/TopicPartSwitch.vue +1 -1
  31. package/app/components/main/utils/Breadcrumb.vue +1 -6
  32. package/app/components/main/utils/ContentDescription.vue +3 -4
  33. package/app/components/main/utils/ContentPopover.vue +19 -7
  34. package/app/components/main/utils/ContentPopovers.vue +13 -7
  35. package/app/components/main/utils/ContentReferences.vue +16 -22
  36. package/app/components/main/utils/ContentSection.vue +21 -18
  37. package/app/components/main/utils/ContentTitle.vue +36 -10
  38. package/app/components/main/utils/reference/ReferenceGroup.vue +5 -8
  39. package/app/components/main/utils/reference/ReferenceItem.vue +25 -21
  40. package/app/components/main/utils/reference/ReferenceSource.vue +42 -36
  41. package/app/components/preview/Preview.vue +11 -2
  42. package/app/components/preview/PreviewDisplay.vue +2 -2
  43. package/app/components/preview/PreviewLoading.vue +2 -3
  44. package/app/components/preview/PreviewScreen.vue +58 -16
  45. package/app/components/preview/display/Alert.vue +4 -4
  46. package/app/components/preview/display/Custom.vue +2 -2
  47. package/app/components/preview/display/GenericLink.vue +3 -3
  48. package/app/components/preview/display/PageLink.vue +2 -2
  49. package/app/components/preview/display/Unique.vue +9 -3
  50. package/app/components/transition/Fade.vue +4 -7
  51. package/app/components/tree/TreeContainer.vue +2 -3
  52. package/app/composables/bitran.ts +45 -64
  53. package/app/composables/bitranContent.ts +35 -3
  54. package/app/composables/bitranLocation.ts +1 -1
  55. package/app/composables/contentPage.ts +5 -4
  56. package/app/composables/contentRoute.ts +1 -1
  57. package/app/composables/externalApi.ts +1 -1
  58. package/app/composables/phrases.ts +1 -0
  59. package/app/pages/_test/preview.vue +4 -4
  60. package/app/pages/article/[...articleId].vue +1 -1
  61. package/app/pages/group/[...groupId].vue +3 -4
  62. package/app/pages/members.vue +2 -3
  63. package/app/pages/practice/[...practice].vue +1 -1
  64. package/app/pages/summary/[...summaryId].vue +1 -1
  65. package/app/public/favicon/article.svg +5 -5
  66. package/app/public/favicon/default.svg +3 -3
  67. package/app/public/favicon/practice.svg +3 -3
  68. package/app/public/favicon/summary.svg +4 -4
  69. package/app/public/logotype.svg +2 -2
  70. package/app/scripts/_immediate.js +7 -2
  71. package/app/scripts/flag.ts +1 -1
  72. package/app/scripts/preview/build.ts +17 -28
  73. package/app/scripts/preview/data/pageLink.ts +3 -1
  74. package/app/scripts/preview/data/unique.ts +7 -5
  75. package/app/scripts/preview/data.ts +12 -14
  76. package/app/scripts/preview/footer.ts +6 -6
  77. package/app/styles/_immediate.css +6 -2
  78. package/app/styles/_util.scss +13 -20
  79. package/app/styles/app.scss +1 -1
  80. package/app/styles/def/_bp.scss +13 -10
  81. package/app/styles/def/_size.scss +1 -1
  82. package/app/styles/def/_z.scss +1 -1
  83. package/app/styles/partials/_darkMagic.scss +3 -5
  84. package/app/styles/partials/_fnav.scss +4 -7
  85. package/app/styles/partials/_preview.scss +3 -5
  86. package/bin/erudit.mjs +2 -0
  87. package/const.ts +4 -0
  88. package/globalPath.ts +1 -1
  89. package/globals/bitran.ts +1 -47
  90. package/globals/content.ts +1 -1
  91. package/globals/contributor.ts +1 -1
  92. package/globals/erudit.ts +1 -1
  93. package/languages/en.ts +0 -1
  94. package/languages/ru.ts +0 -1
  95. package/module/bitran.ts +47 -15
  96. package/module/config.ts +4 -3
  97. package/module/imports.ts +19 -4
  98. package/module/index.ts +7 -7
  99. package/module/logger.ts +1 -1
  100. package/nuxt.config.ts +33 -17
  101. package/package.json +19 -13
  102. package/server/api/aside/major/nav/global.ts +1 -1
  103. package/server/api/aside/minor/path.ts +1 -2
  104. package/server/api/bitran/content/{[location].ts → [...location].ts} +2 -1
  105. package/server/api/bitran/toc/{[location].ts → [...location].ts} +1 -1
  106. package/server/api/fake/content.ts +6 -6
  107. package/server/api/language/phrase/[phraseId].ts +2 -2
  108. package/server/api/preview/page/[...parts].ts +4 -3
  109. package/server/api/preview/unique/[location].ts +9 -4
  110. package/server/plugin/bitran/content.ts +72 -45
  111. package/server/plugin/bitran/{products → elements}/include.ts +23 -37
  112. package/server/plugin/bitran/location.ts +1 -1
  113. package/server/plugin/bitran/toc.ts +23 -31
  114. package/server/plugin/bitran/transpiler.ts +4 -41
  115. package/server/plugin/build/jobs/content/files.ts +79 -0
  116. package/server/plugin/build/jobs/content/generic.ts +24 -8
  117. package/server/plugin/build/jobs/content/parse.ts +19 -10
  118. package/server/plugin/build/jobs/content/type/group.ts +1 -1
  119. package/server/plugin/build/jobs/content/type/topic.ts +1 -1
  120. package/server/plugin/build/jobs/contributors.ts +2 -2
  121. package/server/plugin/build/jobs/nav.ts +7 -2
  122. package/server/plugin/build/setup.ts +0 -2
  123. package/server/plugin/content/context.ts +6 -2
  124. package/server/plugin/db/entities/Content.ts +2 -2
  125. package/server/plugin/db/entities/File.ts +10 -0
  126. package/server/plugin/db/entities/Group.ts +1 -1
  127. package/server/plugin/db/entities/Topic.ts +1 -1
  128. package/server/plugin/db/setup.ts +2 -0
  129. package/server/plugin/global.ts +1 -3
  130. package/server/plugin/logger.ts +1 -1
  131. package/server/plugin/nav/node.ts +1 -1
  132. package/server/plugin/nav/utils.ts +4 -0
  133. package/server/plugin/repository/content.ts +8 -9
  134. package/server/plugin/repository/file.ts +10 -0
  135. package/server/plugin/repository/topic.ts +1 -1
  136. package/server/tsconfig.json +3 -1
  137. package/shared/aside/minor.ts +2 -1
  138. package/shared/asset.ts +11 -4
  139. package/shared/bitran/contentId.ts +88 -0
  140. package/shared/bitran/stringContent.ts +6 -0
  141. package/shared/content/data/base.ts +1 -1
  142. package/shared/content/data/type/topic.ts +1 -1
  143. package/shared/frontNav.ts +1 -1
  144. package/shared/icons.ts +2 -2
  145. package/shared/link.ts +5 -2
  146. package/shared/popover.ts +8 -0
  147. package/shared/types/language.ts +0 -1
  148. package/test/contentId.test.ts +91 -0
  149. package/app/components/main/utils/ContentFlag.vue +0 -16
  150. package/app/styles/default.scss +0 -85
  151. package/server/plugin/bitran/products/link.ts +0 -116
  152. package/server/plugin/bitran/setup.ts +0 -9
  153. package/server/plugin/content/absoluteId.ts +0 -94
  154. package/shared/bitran/context.ts +0 -8
  155. package/shared/bitran/default.ts +0 -46
  156. package/shared/bitran/link/Link.vue +0 -167
  157. package/shared/bitran/link/factory.ts +0 -24
  158. package/shared/bitran/link/icon.svg +0 -3
  159. package/shared/bitran/link/languages/en.ts +0 -7
  160. package/shared/bitran/link/languages/ru.ts +0 -7
  161. package/shared/bitran/link/renderer.ts +0 -21
  162. package/shared/bitran/link/shared.ts +0 -17
  163. package/shared/bitran/link/target.ts +0 -134
  164. package/shared/bitran/link/transpiler.ts +0 -10
  165. package/shared/bitran/location.ts +0 -166
  166. package/test/bitran/link/target.test.ts +0 -141
  167. package/test/bitran/location.test.ts +0 -143
package/app/app.vue CHANGED
@@ -1,10 +1,10 @@
1
1
  <script lang="ts" setup>
2
- import { brandLogotype, brandColorLogotype } from 'erudit-cog/utils/brand';
2
+ import { brandLogotype, brandColors } from '@erudit-js/cog/utils/brand';
3
3
 
4
4
  import eruditConfig from '#erudit/config';
5
5
  import { version } from '@erudit/package.json';
6
- import { AsideType } from '../app/scripts/aside';
7
- import { createOgImageTags, defaultOgImage } from '../app/scripts/og';
6
+ import { AsideType } from '@app/scripts/aside';
7
+ import { createOgImageTags, defaultOgImage } from '@app/scripts/og';
8
8
 
9
9
  const route = useRoute();
10
10
  const favicon = useFavicon();
@@ -12,6 +12,10 @@ const siteUrl = useSiteUrl();
12
12
  const pageUrl = usePageUrl();
13
13
  const baseUrlPath = useBaseUrlPath();
14
14
 
15
+ const theme = ref({
16
+ brand: 'red',
17
+ });
18
+
15
19
  const faviconHref = computed(() => {
16
20
  const href = baseUrlPath(favicon.value);
17
21
 
@@ -30,9 +34,12 @@ const phrase = await usePhrases('site_info_title');
30
34
  useHead({
31
35
  htmlAttrs: {
32
36
  lang: eruditConfig.language || 'en',
33
- style: eruditConfig.debug?.slowTransition
34
- ? `--transitionSpeed: .5s`
35
- : null,
37
+ style: {
38
+ '--brand': eruditConfig.site?.style?.brandColor || undefined,
39
+ '--transitionSpeed': eruditConfig.debug?.slowTransition
40
+ ? '.5s'
41
+ : undefined,
42
+ } as any,
36
43
  },
37
44
  link: [
38
45
  { rel: 'icon', href: faviconHref },
@@ -42,7 +49,7 @@ useHead({
42
49
  {
43
50
  key: 'immediate-js',
44
51
  tagPriority: 'critical',
45
- innerHTML: (await import('./scripts/_immediate.js?raw')).default,
52
+ innerHTML: (await import('@app/scripts/_immediate.js?raw')).default,
46
53
  },
47
54
  ],
48
55
  style: [
@@ -52,7 +59,14 @@ useHead({
52
59
  innerHTML: (await import('$/_immediate.css?raw')).default,
53
60
  },
54
61
  ],
55
- meta: [...createOgImageTags(siteUrl, defaultOgImage)],
62
+ meta: [
63
+ {
64
+ name: 'viewport',
65
+ content:
66
+ 'width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no',
67
+ },
68
+ ...createOgImageTags(siteUrl, defaultOgImage),
69
+ ],
56
70
  });
57
71
 
58
72
  useSeoMeta({
@@ -115,10 +129,19 @@ if (import.meta.client) {
115
129
  '🌈',
116
130
  ];
117
131
  const emoji = emojies[Math.floor(Math.random() * emojies.length)];
132
+
118
133
  console.log(
119
- brandColorLogotype +
120
- `\nv${version} ${emoji} %cBeating heart of modern educational sites!\x1B[m\n\nLearn more: https://github.com/Gwynerva/erudit\n `,
121
- 'font-style: italic; color: color-mix(in srgb, currentColor, transparent 50%)',
134
+ '%c' +
135
+ brandLogotype +
136
+ '\n%cv' +
137
+ version +
138
+ ' ' +
139
+ emoji +
140
+ ' %cBeating heart of modern educational sites!\n\n%cLearn more: https://github.com/Gwynerva/erudit\n ',
141
+ `color: transparent; background: linear-gradient(to right, ${brandColors[0]}, ${brandColors[1]}); background-clip: text; -webkit-background-clip: text;`,
142
+ 'color: inherit;',
143
+ 'font-style: italic; color: #888;',
144
+ 'color: inherit;',
122
145
  );
123
146
  }
124
147
  </script>
@@ -1,11 +1,11 @@
1
1
  <script lang="ts" setup>
2
- import { previewVisible } from '../../app/scripts/preview/state';
2
+ import { previewVisible } from '@app/scripts/preview/state';
3
3
  import {
4
4
  AsideType,
5
5
  clickTargets,
6
6
  forcedAside,
7
7
  switchVisible,
8
- } from '../../app/scripts/aside';
8
+ } from '@app/scripts/aside';
9
9
 
10
10
  const props = defineProps<{
11
11
  type: AsideType;
@@ -13,17 +13,28 @@ const props = defineProps<{
13
13
 
14
14
  const $style = useCssModule();
15
15
 
16
- const switchElement = ref<HTMLElement>();
17
- const asideElement = ref<HTMLElement>();
16
+ const switchElement = useTemplateRef('switchElement');
17
+ const asideElement = useTemplateRef('asideElement');
18
+
19
+ const mounted = ref(false);
18
20
 
19
21
  const canShowSwitch = computed(
20
- () => switchVisible.value && !forcedAside.value && !previewVisible.value,
22
+ () =>
23
+ mounted.value &&
24
+ switchVisible.value &&
25
+ !forcedAside.value &&
26
+ !previewVisible.value,
27
+ );
28
+
29
+ const asideForceVisible = computed(
30
+ () => props.type === forcedAside.value && !previewVisible.value,
21
31
  );
22
- const asideForceVisible = computed(() => props.type === forcedAside.value);
23
32
 
24
33
  const typeClass = props.type === AsideType.Major ? $style.major : $style.minor;
25
34
 
26
35
  onMounted(() => {
36
+ mounted.value = true;
37
+
27
38
  clickTargets[props.type].push(
28
39
  ...[switchElement.value!, asideElement.value!],
29
40
  );
@@ -11,7 +11,6 @@
11
11
 
12
12
  <style lang="scss" module>
13
13
  @use '$/def/bp';
14
- @use '@bitran-js/renderer-vue/scss/def' as bitranDef;
15
14
 
16
15
  .main {
17
16
  --_pMainBase: var(--gapBig);
@@ -24,8 +23,8 @@
24
23
  font-size: 18px;
25
24
 
26
25
  @include bp.below('mobile') {
27
- // --_pMainBase: #{bitranDef.$asideWidth};
28
- font-size: 15px;
26
+ --_pMainBase: var(--_bitran_asideWidth);
27
+ font-size: 14px;
29
28
  }
30
29
 
31
30
  .mainInner {
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import type { MyIconName } from '#my-icons';
3
3
 
4
- defineProps<{
4
+ const props = defineProps<{
5
5
  link?: string;
6
6
  icon?: MyIconName;
7
7
  main?: string;
@@ -9,12 +9,12 @@ defineProps<{
9
9
  secondary?: string;
10
10
  }>();
11
11
 
12
- const nuxtLink = defineNuxtLink({});
12
+ const vnode = h(props.link ? defineNuxtLink({}) : 'div');
13
13
  </script>
14
14
 
15
15
  <template>
16
16
  <component
17
- :is="link ? nuxtLink : 'div'"
17
+ :is="vnode"
18
18
  :to="link"
19
19
  :class="[$style.asideListItem, active ? $style.active : '']"
20
20
  >
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import type { AsideMinorData } from '@shared/asideMinor';
3
- import { asideMinorKey } from '../../../app/scripts/aside/minor/state';
3
+ import { asideMinorKey } from '@app/scripts/aside/minor/state';
4
4
 
5
5
  import {
6
6
  LazyAsideMinorNews,
@@ -20,9 +20,9 @@ const siteInfo = computed<SiteInfo>(() => {
20
20
  };
21
21
 
22
22
  return {
23
- logotype: eruditConfig.site?.logotype,
23
+ logotype: eruditConfig.site?.logotype || eruditAsset('logotype.svg'),
24
24
  title: eruditConfig.site?.title || phrase.site_info_title,
25
- slogan: eruditConfig.site?.slogan,
25
+ slogan: eruditConfig.site?.slogan || phrase.site_info_slogan,
26
26
  };
27
27
  });
28
28
  </script>
@@ -1,3 +1,11 @@
1
1
  <template>
2
- <div :style="{ padding: 'var(--gap)', color: 'var(--textMuted)', textAlign: 'center' }">Here be dragons...</div>
3
- </template>
2
+ <div
3
+ :style="{
4
+ padding: 'var(--gap)',
5
+ color: 'var(--textMuted)',
6
+ textAlign: 'center',
7
+ }"
8
+ >
9
+ Here be dragons...
10
+ </div>
11
+ </template>
@@ -5,7 +5,7 @@ import {
5
5
  insideNavBook,
6
6
  navBookId,
7
7
  navBookVisible,
8
- } from '../../../../../../app/scripts/aside/major/nav';
8
+ } from '@app/scripts/aside/major/nav';
9
9
 
10
10
  import NavGlobal from './NavGlobal.vue';
11
11
  import NavBook from './NavBook.vue';
@@ -13,40 +13,36 @@ import NavBook from './NavBook.vue';
13
13
  const contentRoute = useContentRoute();
14
14
  const asideMajorNav = getAsideMajorNavPayload();
15
15
 
16
- asideMajorNav.booksIds ||= (await $fetch(
17
- '/api/aside/major/nav/bookIds',
18
- )) as string[];
16
+ asideMajorNav.booksIds ||= (await $fetch('/api/aside/major/nav/bookIds', {
17
+ responseType: 'json',
18
+ })) as string[];
19
19
 
20
- asideMajorNav.globalNav ||= (await $fetch(
21
- '/api/aside/major/nav/global',
22
- )) as FrontNav;
20
+ asideMajorNav.globalNav ||= (await $fetch('/api/aside/major/nav/global', {
21
+ responseType: 'json',
22
+ })) as FrontNav;
23
23
 
24
- //
25
- // Check if inside book from start
26
- //
27
-
28
- // Reset server-leaked state from other pages
29
- navBookId.value = undefined;
30
- insideNavBook.value = false;
31
-
32
- if (contentRoute.value) {
33
- for (const bookId of asideMajorNav.booksIds) {
34
- if (contentRoute.value.contentId.startsWith(bookId)) {
35
- navBookId.value = bookId;
36
- insideNavBook.value = true;
37
- break;
24
+ const checkIfInsideBook = () => {
25
+ if (contentRoute.value) {
26
+ for (const bookId of asideMajorNav.booksIds) {
27
+ if (contentRoute.value.contentId.startsWith(bookId)) {
28
+ navBookId.value = bookId;
29
+ insideNavBook.value = true;
30
+ return;
31
+ }
38
32
  }
39
33
  }
40
- }
34
+
35
+ // If we get here, we're not in any book
36
+ navBookId.value = undefined;
37
+ insideNavBook.value = false;
38
+ };
39
+
40
+ checkIfInsideBook();
41
41
 
42
42
  onMounted(() => {
43
- watch(
44
- contentRoute,
45
- () =>
46
- (insideNavBook.value = insideNavBook.value
47
- ? !!contentRoute.value
48
- : false),
49
- );
43
+ watch(contentRoute, () => {
44
+ checkIfInsideBook();
45
+ });
50
46
  });
51
47
  </script>
52
48
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import type { FrontNavBook } from '@shared/frontNav';
3
- import { insideNavBook, navBookId } from '../../../../../../app/scripts/aside/major/nav';
3
+ import { insideNavBook, navBookId } from '@app/scripts/aside/major/nav';
4
4
 
5
5
  import PaneContentScroll from '../../PaneContentScroll.vue';
6
6
  import FNav from './fnav/FNav.vue';
@@ -23,6 +23,7 @@ async function setupNavBook() {
23
23
  );
24
24
  book.value = await $fetch(
25
25
  `/api/aside/major/nav/bookNav/${navBookId.value}`,
26
+ { responseType: 'json' },
26
27
  );
27
28
 
28
29
  loading.value = false;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { getAsideMajorNavPayload } from '../../../../../../app/scripts/aside/major/nav';
2
+ import { getAsideMajorNavPayload } from '@app/scripts/aside/major/nav';
3
3
 
4
4
  import FNav from './fnav/FNav.vue';
5
5
  import PaneContentScroll from '../../PaneContentScroll.vue';
@@ -4,7 +4,7 @@ import type {
4
4
  FrontNavContainer,
5
5
  FrontNavItem,
6
6
  } from '@shared/frontNav';
7
- import { navStateKey, type NavState } from '../../../../../../../app/scripts/aside/major/nav';
7
+ import { navStateKey, type NavState } from '@app/scripts/aside/major/nav';
8
8
 
9
9
  import FNavItem from './FNavItem.vue';
10
10
 
@@ -4,7 +4,7 @@ import {
4
4
  insideNavBook,
5
5
  navBookId,
6
6
  navStateKey,
7
- } from '../../../../../../../app/scripts/aside/major/nav';
7
+ } from '@app/scripts/aside/major/nav';
8
8
 
9
9
  import FNavFlags from './FNavFlags.vue';
10
10
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
- import type { ContentFlag } from 'erudit-cog/schema';
3
- import { flagsData } from '../../../../../../../app/scripts/flag';
2
+ import type { ContentFlag } from '@erudit-js/cog/schema';
3
+ import { flagsData } from '@app/scripts/flag';
4
4
 
5
5
  defineProps<{ flags: Record<ContentFlag, boolean> }>();
6
6
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import type { FrontNavFolder } from '@shared/frontNav';
3
- import { navStateKey } from '../../../../../../../app/scripts/aside/major/nav';
3
+ import { navStateKey } from '@app/scripts/aside/major/nav';
4
4
 
5
5
  import FNavItem from './FNavItem.vue';
6
6
  import FNavFlags from './FNavFlags.vue';
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { navStateKey } from '../../../../../../../app/scripts/aside/major/nav';
2
+ import { navStateKey } from '@app/scripts/aside/major/nav';
3
3
  import type { FrontNavSeparator } from '@shared/frontNav';
4
4
 
5
5
  import FNavItem from './FNavItem.vue';
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { navStateKey } from '../../../../../../../app/scripts/aside/major/nav';
2
+ import { navStateKey } from '@app/scripts/aside/major/nav';
3
3
  import type { FrontNavTopic } from '@shared/frontNav';
4
4
 
5
5
  import FNavFlags from './FNavFlags.vue';
@@ -1,15 +1,13 @@
1
1
  <script lang="ts" setup>
2
2
  import { version } from '@erudit/package.json';
3
-
4
- const phrase = await usePhrases('generator');
5
3
  </script>
6
4
 
7
5
  <template>
8
6
  <AsideListItem
9
- link="https://github.com/Gwynerva/erudit"
7
+ link="https://github.com/erudit-js/erudit"
10
8
  target="_blank"
11
9
  icon="chip"
12
- :main="phrase.generator + ':'"
13
- :secondary="`Erudit ${version}`"
10
+ main="Erudit:"
11
+ :secondary="version"
14
12
  />
15
13
  </template>
@@ -2,4 +2,4 @@
2
2
  <AsideMinorPane>
3
3
  <div>Contributor</div>
4
4
  </AsideMinorPane>
5
- </template>
5
+ </template>
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- // import { injectNewsData } from '../../../../app/scripts/aside/minor/state';
2
+ // import { injectNewsData } from '@app/scripts/aside/minor/state';
3
3
 
4
4
  // const newsData = injectNewsData();
5
5
  </script>
@@ -5,12 +5,11 @@
5
5
  </template>
6
6
 
7
7
  <style lang="scss" module>
8
- .asideMinorPane
9
- {
8
+ .asideMinorPane {
10
9
  position: absolute;
11
10
  width: 100%;
12
11
  height: 100%;
13
12
  top: 0;
14
13
  left: 0;
15
14
  }
16
- </style>
15
+ </style>
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import type { AsideMinorContent } from '@shared/aside/minor';
3
- import { injectAsideData } from '../../../../../app/scripts/aside/minor/state';
3
+ import { injectAsideData } from '@app/scripts/aside/minor/state';
4
4
 
5
5
  const contentData = injectAsideData<AsideMinorContent>();
6
6
  const phrase = await usePhrases('contributors', 'no_contributors');
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import type { AsideMinorTopic } from '@shared/aside/minor';
3
- import { injectAsideData } from '../../../../../app/scripts/aside/minor/state';
3
+ import { injectAsideData } from '@app/scripts/aside/minor/state';
4
4
 
5
5
  import TopicNav from './TopicNav.vue';
6
6
  import TopicToc from './TopicToc.vue';
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" setup>
2
- import { injectAsideData } from '../../../../../app/scripts/aside/minor/state';
2
+ import { injectAsideData } from '@app/scripts/aside/minor/state';
3
3
  import { type AsideMinorTopic } from '@shared/aside/minor';
4
4
 
5
5
  import AsideOverlayPane from '../../utils/AsideOverlayPane.vue';
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
- import { topicParts, type TopicPart } from 'erudit-cog/schema';
2
+ import { topicParts, type TopicPart } from '@erudit-js/cog/schema';
3
3
 
4
- import { injectAsideData } from '../../../../../app/scripts/aside/minor/state';
4
+ import { injectAsideData } from '@app/scripts/aside/minor/state';
5
5
  import type { AsideMinorTopic } from '@shared/aside/minor';
6
6
  import { TOPIC_PART_ICON } from '@erudit/shared/icons';
7
7