erudit 2.0.0-dev.7 → 2.0.0-dev.9

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 (212) hide show
  1. package/.nuxtrc +1 -1
  2. package/app/app.vue +172 -172
  3. package/app/components/Loading.vue +23 -23
  4. package/app/components/SiteAside.vue +382 -382
  5. package/app/components/SiteMain.vue +35 -35
  6. package/app/components/ads/BannerTemplate.vue +51 -51
  7. package/app/components/ads/BottomBanner.vue +45 -45
  8. package/app/components/ads/LeftBanner.vue +50 -50
  9. package/app/components/aside/AsideListItem.vue +74 -74
  10. package/app/components/aside/AsideMajor.vue +56 -56
  11. package/app/components/aside/AsideMinor.vue +71 -71
  12. package/app/components/aside/major/PaneContentScroll.vue +23 -23
  13. package/app/components/aside/major/PaneSwitch.vue +54 -54
  14. package/app/components/aside/major/PaneSwitchButton.vue +63 -63
  15. package/app/components/aside/major/SiteInfo.vue +85 -85
  16. package/app/components/aside/major/panes/Language.vue +79 -79
  17. package/app/components/aside/major/panes/Pages.vue +34 -34
  18. package/app/components/aside/major/panes/Search.vue +2 -2
  19. package/app/components/aside/major/panes/nav/Nav.vue +91 -91
  20. package/app/components/aside/major/panes/nav/NavBook.vue +86 -86
  21. package/app/components/aside/major/panes/nav/NavBookLoading.vue +24 -24
  22. package/app/components/aside/major/panes/nav/NavGlobal.vue +16 -16
  23. package/app/components/aside/major/panes/nav/fnav/FNav.vue +105 -105
  24. package/app/components/aside/major/panes/nav/fnav/FNavBook.vue +32 -32
  25. package/app/components/aside/major/panes/nav/fnav/FNavFlags.vue +40 -40
  26. package/app/components/aside/major/panes/nav/fnav/FNavFolder.vue +60 -60
  27. package/app/components/aside/major/panes/nav/fnav/FNavItem.vue +34 -34
  28. package/app/components/aside/major/panes/nav/fnav/FNavSeparator.vue +80 -80
  29. package/app/components/aside/major/panes/nav/fnav/FNavTopic.vue +24 -24
  30. package/app/components/aside/major/panes/other/ItemContent.vue +29 -29
  31. package/app/components/aside/major/panes/other/ItemGenerator.vue +15 -15
  32. package/app/components/aside/major/panes/other/ItemTheme.vue +54 -54
  33. package/app/components/aside/major/panes/other/Other.vue +16 -16
  34. package/app/components/aside/minor/AsideMinorContributor.vue +4 -4
  35. package/app/components/aside/minor/AsideMinorNews.vue +11 -11
  36. package/app/components/aside/minor/AsideMinorPane.vue +15 -15
  37. package/app/components/aside/minor/AsideMinorTopLink.vue +67 -67
  38. package/app/components/aside/minor/Contribute.vue +145 -145
  39. package/app/components/aside/minor/content/AsideMinorContent.vue +92 -92
  40. package/app/components/aside/minor/topic/AsideMinorTopic.vue +32 -32
  41. package/app/components/aside/minor/topic/TopicContributors.vue +177 -177
  42. package/app/components/aside/minor/topic/TopicNav.vue +49 -49
  43. package/app/components/aside/minor/topic/TopicToc.vue +203 -202
  44. package/app/components/aside/minor/topic/TopicTocItem.vue +31 -31
  45. package/app/components/aside/utils/AsideOverlayPane.vue +40 -40
  46. package/app/components/bitran/BitranContent.vue +63 -64
  47. package/app/components/bitran/RenderWrapper.vue +10 -12
  48. package/app/components/contributor/ContributorAvatar.vue +43 -43
  49. package/app/components/contributor/ContributorListItem.vue +35 -35
  50. package/app/components/main/topic/MainTopic.vue +79 -79
  51. package/app/components/main/topic/TopicPartSwitch.vue +118 -118
  52. package/app/components/main/utils/Breadcrumb.vue +75 -75
  53. package/app/components/main/utils/ContentDecoration.vue +29 -29
  54. package/app/components/main/utils/ContentDescription.vue +19 -19
  55. package/app/components/main/utils/ContentFlag.vue +15 -15
  56. package/app/components/main/utils/ContentPopover.vue +176 -176
  57. package/app/components/main/utils/ContentPopovers.vue +105 -105
  58. package/app/components/main/utils/ContentReferences.vue +75 -75
  59. package/app/components/main/utils/ContentSection.vue +41 -41
  60. package/app/components/main/utils/ContentTitle.vue +36 -36
  61. package/app/components/main/utils/reference/ReferenceGroup.vue +40 -40
  62. package/app/components/main/utils/reference/ReferenceItem.vue +63 -63
  63. package/app/components/main/utils/reference/ReferenceSource.vue +109 -109
  64. package/app/components/preview/Preview.vue +177 -177
  65. package/app/components/preview/PreviewDisplay.vue +139 -139
  66. package/app/components/preview/PreviewFooterAction.vue +73 -73
  67. package/app/components/preview/PreviewLoading.vue +14 -14
  68. package/app/components/preview/PreviewScreen.vue +99 -99
  69. package/app/components/preview/display/Alert.vue +50 -50
  70. package/app/components/preview/display/Custom.vue +18 -18
  71. package/app/components/preview/display/GenericLink.vue +48 -48
  72. package/app/components/preview/display/PageLink.vue +20 -20
  73. package/app/components/preview/display/Unique.vue +49 -49
  74. package/app/components/transition/Fade.vue +21 -21
  75. package/app/components/tree/TreeContainer.vue +11 -11
  76. package/app/components/tree/TreeItem.vue +89 -89
  77. package/app/composables/bitran.ts +98 -103
  78. package/app/composables/bitranContent.ts +2 -1
  79. package/app/composables/contentPage.ts +1 -1
  80. package/app/composables/phrases.ts +80 -80
  81. package/app/pages/_test/preview.vue +110 -110
  82. package/app/pages/article/[...articleId].vue +2 -2
  83. package/app/pages/book/[...bookId].vue +47 -47
  84. package/app/pages/group/[...groupId].vue +65 -64
  85. package/app/pages/index.vue +32 -32
  86. package/app/pages/members.vue +6 -6
  87. package/app/pages/practice/[...practice].vue +2 -2
  88. package/app/pages/summary/[...summaryId].vue +2 -2
  89. package/app/public/favicon/article.svg +9 -9
  90. package/app/public/favicon/default.svg +9 -9
  91. package/app/public/favicon/practice.svg +9 -9
  92. package/app/public/favicon/summary.svg +9 -9
  93. package/app/public/logotype.svg +16 -16
  94. package/app/public/user.svg +9 -9
  95. package/app/scripts/_immediate.js +3 -3
  96. package/app/scripts/flag.ts +28 -28
  97. package/app/scripts/og.ts +27 -27
  98. package/app/scripts/preview/data/unique.ts +3 -3
  99. package/app/scripts/preview/display.ts +5 -7
  100. package/app/scripts/preview/request.ts +2 -2
  101. package/app/styles/_immediate.css +2 -2
  102. package/app/styles/_util.scss +49 -49
  103. package/app/styles/_utils.scss +44 -44
  104. package/app/styles/default.scss +84 -84
  105. package/app/styles/partials/_darkMagic.scss +6 -6
  106. package/app/styles/partials/_fnav.scss +17 -17
  107. package/app/styles/partials/_preview.scss +6 -6
  108. package/globalPath.ts +21 -24
  109. package/globals/bitran.ts +21 -13
  110. package/globals/erudit.ts +5 -5
  111. package/globals/register.ts +18 -18
  112. package/languages/en.ts +95 -95
  113. package/languages/ru.ts +99 -99
  114. package/module/config.ts +34 -34
  115. package/module/imports.ts +46 -46
  116. package/module/index.ts +47 -35
  117. package/module/logger.ts +10 -10
  118. package/module/restart.ts +61 -61
  119. package/nuxt.config.ts +107 -96
  120. package/package.json +9 -6
  121. package/server/api/aside/major/nav/bookIds.ts +5 -5
  122. package/server/api/aside/major/nav/bookNav/[...bookId].ts +20 -20
  123. package/server/api/aside/major/nav/global.ts +7 -7
  124. package/server/api/aside/minor/news.ts +7 -7
  125. package/server/api/aside/minor/path.ts +78 -78
  126. package/server/api/bitran/content/[location].ts +7 -7
  127. package/server/api/bitran/toc/[location].ts +7 -7
  128. package/server/api/content/data.ts +72 -72
  129. package/server/api/fake/content.ts +10 -10
  130. package/server/api/fake/shared/languages.ts +12 -12
  131. package/server/api/language/functions.ts +12 -12
  132. package/server/api/language/phrase/[phraseId].ts +19 -19
  133. package/server/api/language/phraseIds.ts +8 -8
  134. package/server/api/preview/page/[...parts].ts +51 -51
  135. package/server/api/preview/unique/[location].ts +55 -55
  136. package/server/plugin/bitran/content.ts +55 -44
  137. package/server/plugin/bitran/products/include.ts +28 -27
  138. package/server/plugin/bitran/products/link.ts +11 -9
  139. package/server/plugin/bitran/setup.ts +0 -1
  140. package/server/plugin/bitran/toc.ts +25 -24
  141. package/server/plugin/bitran/transpiler.ts +46 -0
  142. package/server/plugin/build/close.ts +10 -10
  143. package/server/plugin/build/jobs/content/parse.ts +37 -27
  144. package/server/plugin/build/jobs/language.ts +36 -36
  145. package/server/plugin/build/process.ts +25 -25
  146. package/server/plugin/build/rebuild.ts +55 -55
  147. package/server/plugin/build/setup.ts +21 -21
  148. package/server/plugin/global.ts +18 -18
  149. package/server/plugin/importer.ts +12 -12
  150. package/server/plugin/index.ts +9 -9
  151. package/server/plugin/logger.ts +23 -23
  152. package/server/tsconfig.json +7 -7
  153. package/shared/bitran/context.ts +3 -2
  154. package/shared/bitran/default.ts +46 -0
  155. package/shared/bitran/{products/link/render → link}/Link.vue +7 -14
  156. package/shared/bitran/link/factory.ts +24 -0
  157. package/shared/bitran/link/languages/en.ts +7 -0
  158. package/shared/bitran/link/languages/ru.ts +7 -0
  159. package/shared/bitran/link/renderer.ts +21 -0
  160. package/shared/bitran/link/shared.ts +17 -0
  161. package/shared/bitran/{products/link → link}/target.ts +1 -1
  162. package/shared/bitran/link/transpiler.ts +10 -0
  163. package/shared/content/context.ts +9 -9
  164. package/shared/content/data/base.ts +32 -32
  165. package/shared/content/data/index.ts +5 -5
  166. package/shared/content/data/type/book.ts +5 -5
  167. package/shared/content/data/type/group.ts +6 -6
  168. package/shared/content/data/type/topic.ts +11 -11
  169. package/shared/content/previousNext.ts +9 -9
  170. package/shared/link.ts +25 -25
  171. package/shared/types/language.ts +75 -75
  172. package/test/bitran/{products/link → link}/target.test.ts +5 -2
  173. package/tsconfig.json +8 -8
  174. package/utils/stress.ts +9 -9
  175. package/server/plugin/bitran/core.ts +0 -51
  176. package/shared/bitran/alias.ts +0 -17
  177. package/shared/bitran/products/alias/core/factory.ts +0 -46
  178. package/shared/bitran/products/alias/core/index.ts +0 -13
  179. package/shared/bitran/products/alias/render/Alias.vue +0 -10
  180. package/shared/bitran/products/alias/render/icon.svg +0 -3
  181. package/shared/bitran/products/alias/render/index.ts +0 -17
  182. package/shared/bitran/products/alias/render/languages/en.ts +0 -5
  183. package/shared/bitran/products/alias/render/languages/ru.ts +0 -5
  184. package/shared/bitran/products/alias/shared.ts +0 -11
  185. package/shared/bitran/products/heading/core/factory.ts +0 -53
  186. package/shared/bitran/products/heading/core/index.ts +0 -19
  187. package/shared/bitran/products/heading/render/Heading.vue +0 -47
  188. package/shared/bitran/products/heading/render/icon.svg +0 -3
  189. package/shared/bitran/products/heading/render/index.ts +0 -17
  190. package/shared/bitran/products/heading/render/languages/en.ts +0 -5
  191. package/shared/bitran/products/heading/render/languages/ru.ts +0 -5
  192. package/shared/bitran/products/heading/shared.ts +0 -13
  193. package/shared/bitran/products/include/core/factory.ts +0 -61
  194. package/shared/bitran/products/include/core/index.ts +0 -13
  195. package/shared/bitran/products/include/render/Include.vue +0 -13
  196. package/shared/bitran/products/include/render/icon.svg +0 -3
  197. package/shared/bitran/products/include/render/index.ts +0 -18
  198. package/shared/bitran/products/include/render/languages/en.ts +0 -5
  199. package/shared/bitran/products/include/render/languages/ru.ts +0 -5
  200. package/shared/bitran/products/include/shared.ts +0 -15
  201. package/shared/bitran/products/link/core/factory.ts +0 -20
  202. package/shared/bitran/products/link/core/index.ts +0 -17
  203. package/shared/bitran/products/link/render/index.ts +0 -17
  204. package/shared/bitran/products/link/render/languages/en.ts +0 -5
  205. package/shared/bitran/products/link/render/languages/ru.ts +0 -5
  206. package/shared/bitran/products/link/shared.ts +0 -15
  207. package/test/bitran/alias.test.ts +0 -44
  208. package/test/bitran/products/alias.test.ts +0 -83
  209. package/test/bitran/products/heading.test.ts +0 -119
  210. package/test/bitran/products/include.test.ts +0 -77
  211. package/test/bitran/products/link/factory.test.ts +0 -30
  212. /package/shared/bitran/{products/link/render → link}/icon.svg +0 -0
@@ -1,5 +1,5 @@
1
- import type { LinkData } from '@erudit/shared/bitran/products/link/shared';
2
- import type { LinkTarget } from '@erudit/shared/bitran/products/link/target';
1
+ import type { LinkData } from '@erudit/shared/bitran/link/shared';
2
+ import type { LinkTarget } from '@erudit/shared/bitran/link/target';
3
3
 
4
4
  import type { PreviewData } from './data';
5
5
 
@@ -1,3 +1,3 @@
1
- /* Instant color theme setup */
2
- :root { color-scheme: light; }
1
+ /* Instant color theme setup */
2
+ :root { color-scheme: light; }
3
3
  :root[data-theme='dark'] { color-scheme: dark; }
@@ -1,50 +1,50 @@
1
- @mixin transition($properties...)
2
- {
3
- transition: all var(--transitionSpeed) var(--transitionFunction);
4
- transition-property: $properties;
5
- }
6
-
7
- @mixin dark
8
- {
9
- :root[data-theme='dark'] &
10
- {
11
- @content;
12
- }
13
- }
14
-
15
- @mixin hoverLink
16
- {
17
- cursor: pointer;
18
- color: inherit;
19
- text-decoration: underline;
20
- text-decoration-color: transparent;
21
- @include transition(text-decoration-color);
22
-
23
- &:hover
24
- {
25
- text-decoration: underline;
26
- }
27
- }
28
-
29
- @mixin scroll
30
- {
31
- -webkit-overflow-scrolling: auto;
32
-
33
- &::-webkit-scrollbar
34
- {
35
- -webkit-appearance: none;
36
- height: 5px;
37
- width: 5px;
38
- }
39
-
40
- &::-webkit-scrollbar-thumb
41
- {
42
- background: var(--scrollbar);
43
- &:hover { background: color-mix(in srgb, var(--scrollbar), var(--invert) 15%); }
44
- }
45
-
46
- &::-webkit-scrollbar-corner
47
- {
48
- background: var(--border);
49
- }
1
+ @mixin transition($properties...)
2
+ {
3
+ transition: all var(--transitionSpeed) var(--transitionFunction);
4
+ transition-property: $properties;
5
+ }
6
+
7
+ @mixin dark
8
+ {
9
+ :root[data-theme='dark'] &
10
+ {
11
+ @content;
12
+ }
13
+ }
14
+
15
+ @mixin hoverLink
16
+ {
17
+ cursor: pointer;
18
+ color: inherit;
19
+ text-decoration: underline;
20
+ text-decoration-color: transparent;
21
+ @include transition(text-decoration-color);
22
+
23
+ &:hover
24
+ {
25
+ text-decoration: underline;
26
+ }
27
+ }
28
+
29
+ @mixin scroll
30
+ {
31
+ -webkit-overflow-scrolling: auto;
32
+
33
+ &::-webkit-scrollbar
34
+ {
35
+ -webkit-appearance: none;
36
+ height: 5px;
37
+ width: 5px;
38
+ }
39
+
40
+ &::-webkit-scrollbar-thumb
41
+ {
42
+ background: var(--scrollbar);
43
+ &:hover { background: color-mix(in srgb, var(--scrollbar), var(--invert) 15%); }
44
+ }
45
+
46
+ &::-webkit-scrollbar-corner
47
+ {
48
+ background: var(--border);
49
+ }
50
50
  }
@@ -1,44 +1,44 @@
1
- @mixin transition($properties...) {
2
- transition: all var(--transitionSpeed) var(--transitionFunction);
3
- transition-property: $properties;
4
- }
5
-
6
- @mixin dark {
7
- :root[data-theme='dark'] & {
8
- @content;
9
- }
10
- }
11
-
12
- @mixin hoverLink {
13
- cursor: pointer;
14
- color: inherit;
15
- text-decoration: underline;
16
- text-decoration-color: transparent;
17
- @include transition(text-decoration-color);
18
-
19
- &:hover {
20
- text-decoration: underline;
21
- }
22
- }
23
-
24
- @mixin scroll {
25
- -webkit-overflow-scrolling: auto;
26
-
27
- &::-webkit-scrollbar {
28
- -webkit-appearance: none;
29
- height: 5px;
30
- width: 5px;
31
- }
32
-
33
- &::-webkit-scrollbar-thumb {
34
- background: var(--scrollbar);
35
-
36
- &:hover {
37
- background: color-mix(in srgb, var(--scrollbar), var(--invert) 15%);
38
- }
39
- }
40
-
41
- &::-webkit-scrollbar-corner {
42
- background: var(--border);
43
- }
44
- }
1
+ @mixin transition($properties...) {
2
+ transition: all var(--transitionSpeed) var(--transitionFunction);
3
+ transition-property: $properties;
4
+ }
5
+
6
+ @mixin dark {
7
+ :root[data-theme='dark'] & {
8
+ @content;
9
+ }
10
+ }
11
+
12
+ @mixin hoverLink {
13
+ cursor: pointer;
14
+ color: inherit;
15
+ text-decoration: underline;
16
+ text-decoration-color: transparent;
17
+ @include transition(text-decoration-color);
18
+
19
+ &:hover {
20
+ text-decoration: underline;
21
+ }
22
+ }
23
+
24
+ @mixin scroll {
25
+ -webkit-overflow-scrolling: auto;
26
+
27
+ &::-webkit-scrollbar {
28
+ -webkit-appearance: none;
29
+ height: 5px;
30
+ width: 5px;
31
+ }
32
+
33
+ &::-webkit-scrollbar-thumb {
34
+ background: var(--scrollbar);
35
+
36
+ &:hover {
37
+ background: color-mix(in srgb, var(--scrollbar), var(--invert) 15%);
38
+ }
39
+ }
40
+
41
+ &::-webkit-scrollbar-corner {
42
+ background: var(--border);
43
+ }
44
+ }
@@ -1,85 +1,85 @@
1
- @use '$/def/size';
2
-
3
- //
4
- // Vars
5
- //
6
-
7
- :root
8
- {
9
- --transitionSpeed: 200ms;
10
- --transitionFunction: cubic-bezier(0, 0, .5, 1);
11
- interpolate-size: allow-keywords;
12
- }
13
-
14
- // Sizes
15
-
16
- :root
17
- {
18
- --wAside: #{size.$wAside};
19
- --wMainMin: #{size.$wMainMin};
20
- --wMainMax: #{size.$wMainMax};
21
-
22
- --gap: #{size.$gap};
23
- --gapSmall : #{size.$gapSmall};
24
- --gapBig : #{size.$gapBig};
25
- }
26
-
27
- // Colors
28
-
29
- :root
30
- {
31
- --bg: light-dark(#ebebeb, #141414);
32
- --bgAside: light-dark(#f7f7f7, #1b1b1b);
33
- --bgMain: light-dark(#ffffff, #212121);
34
- --bgAccent: light-dark(#e6e6e6, #262626);
35
-
36
- --border: light-dark(#D7D7D7, #373737);
37
-
38
- --text: light-dark(#373737, #b9b9b9);
39
- --textDeep: light-dark(#232323, #e1e1e1);
40
- --textMuted: light-dark(#696969, #7f7f7f);
41
- --textDimmed: light-dark(#969696, #616161);
42
- --textDisabled: light-dark(#b9b9b9, #4f4f4f);
43
-
44
- --brand: light-dark(#1879d9, #4e94d9);
45
- --error: light-dark(#d91818, #d94e4e);
46
- --warn: light-dark(#d98718, #d9b44e);
47
- --success: light-dark(#12a512, #51a551);
48
-
49
- --scrollbar: light-dark(#bfbfbf, #494949);
50
-
51
- --invert: light-dark(black, white);
52
- }
53
-
54
- //
55
- // General rules
56
- //
57
-
58
- // Noto Sans + Noto Serif
59
- @import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');
60
-
61
- body
62
- {
63
- background: var(--bg);
64
- font-family: 'Noto Sans', system-ui, sans-serif;
65
- color: var(--text);
66
- }
67
-
68
- h1, h2, h3, h4, h5, h6, strong
69
- {
70
- color: var(--textDeep);
71
- }
72
-
73
- ::selection
74
- {
75
- //color: var(--text);
76
- background: color-mix(in srgb, var(--brand), transparent 65%);
77
- }
78
-
79
- .icon-flip-h
80
- {
81
- [my-icon] svg
82
- {
83
- transform: scaleX(-1);
84
- }
1
+ @use '$/def/size';
2
+
3
+ //
4
+ // Vars
5
+ //
6
+
7
+ :root
8
+ {
9
+ --transitionSpeed: 200ms;
10
+ --transitionFunction: cubic-bezier(0, 0, .5, 1);
11
+ interpolate-size: allow-keywords;
12
+ }
13
+
14
+ // Sizes
15
+
16
+ :root
17
+ {
18
+ --wAside: #{size.$wAside};
19
+ --wMainMin: #{size.$wMainMin};
20
+ --wMainMax: #{size.$wMainMax};
21
+
22
+ --gap: #{size.$gap};
23
+ --gapSmall : #{size.$gapSmall};
24
+ --gapBig : #{size.$gapBig};
25
+ }
26
+
27
+ // Colors
28
+
29
+ :root
30
+ {
31
+ --bg: light-dark(#ebebeb, #141414);
32
+ --bgAside: light-dark(#f7f7f7, #1b1b1b);
33
+ --bgMain: light-dark(#ffffff, #212121);
34
+ --bgAccent: light-dark(#e6e6e6, #262626);
35
+
36
+ --border: light-dark(#D7D7D7, #373737);
37
+
38
+ --text: light-dark(#373737, #b9b9b9);
39
+ --textDeep: light-dark(#232323, #e1e1e1);
40
+ --textMuted: light-dark(#696969, #7f7f7f);
41
+ --textDimmed: light-dark(#969696, #616161);
42
+ --textDisabled: light-dark(#b9b9b9, #4f4f4f);
43
+
44
+ --brand: light-dark(#1879d9, #4e94d9);
45
+ --error: light-dark(#d91818, #d94e4e);
46
+ --warn: light-dark(#d98718, #d9b44e);
47
+ --success: light-dark(#12a512, #51a551);
48
+
49
+ --scrollbar: light-dark(#bfbfbf, #494949);
50
+
51
+ --invert: light-dark(black, white);
52
+ }
53
+
54
+ //
55
+ // General rules
56
+ //
57
+
58
+ // Noto Sans + Noto Serif
59
+ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');
60
+
61
+ body
62
+ {
63
+ background: var(--bg);
64
+ font-family: 'Noto Sans', system-ui, sans-serif;
65
+ color: var(--text);
66
+ }
67
+
68
+ h1, h2, h3, h4, h5, h6, strong
69
+ {
70
+ color: var(--textDeep);
71
+ }
72
+
73
+ ::selection
74
+ {
75
+ //color: var(--text);
76
+ background: color-mix(in srgb, var(--brand), transparent 65%);
77
+ }
78
+
79
+ .icon-flip-h
80
+ {
81
+ [my-icon] svg
82
+ {
83
+ transform: scaleX(-1);
84
+ }
85
85
  }
@@ -1,7 +1,7 @@
1
- @mixin replacer
2
- {
3
- > div > div
4
- {
5
- @content;
6
- }
1
+ @mixin replacer
2
+ {
3
+ > div > div
4
+ {
5
+ @content;
6
+ }
7
7
  }
@@ -1,18 +1,18 @@
1
- .frontNavSeparator
2
- {
3
- --_space: calc(var(--gap) / 2);
4
- }
5
-
6
- .frontNavItem + .frontNavSeparator
7
- {
8
- border-top: 1px solid var(--border);
9
- margin-top: var(--_space);
10
- padding-top: var(--_space);
11
- }
12
-
13
- .frontNavSeparator:has(+ .frontNavItem:not(.frontNavSeparator))
14
- {
15
- border-bottom: 1px solid var(--border);
16
- padding-bottom: var(--_space);
17
- margin-bottom: var(--_space);
1
+ .frontNavSeparator
2
+ {
3
+ --_space: calc(var(--gap) / 2);
4
+ }
5
+
6
+ .frontNavItem + .frontNavSeparator
7
+ {
8
+ border-top: 1px solid var(--border);
9
+ margin-top: var(--_space);
10
+ padding-top: var(--_space);
11
+ }
12
+
13
+ .frontNavSeparator:has(+ .frontNavItem:not(.frontNavSeparator))
14
+ {
15
+ border-bottom: 1px solid var(--border);
16
+ padding-bottom: var(--_space);
17
+ margin-bottom: var(--_space);
18
18
  }
@@ -1,7 +1,7 @@
1
- @mixin hasTheme
2
- {
3
- [data-erudit-preview-theme] &
4
- {
5
- @content;
6
- }
1
+ @mixin hasTheme
2
+ {
3
+ [data-erudit-preview-theme] &
4
+ {
5
+ @content;
6
+ }
7
7
  }
package/globalPath.ts CHANGED
@@ -1,24 +1,21 @@
1
- import { fileURLToPath } from 'node:url';
2
- import { resolvePaths } from 'erudit-cog/kit';
3
-
4
- export const ERUDIT_DIR = resolvePaths(fileURLToPath(import.meta.url), '..');
5
- export const PROJECT_DIR = process.env.ERUDIT_PROJECT_DIR as string;
6
-
7
- console.log('ERUDIT_DIR: ', ERUDIT_DIR);
8
-
9
- export function eruditPath(path?: string) {
10
- console.log('Erudit Path: ', path ? `${ERUDIT_DIR}/${path}` : ERUDIT_DIR);
11
- return path ? `${ERUDIT_DIR}/${path}` : ERUDIT_DIR;
12
- }
13
-
14
- export function projectPath(path?: string) {
15
- return path ? `${PROJECT_DIR}/${path}` : PROJECT_DIR;
16
- }
17
-
18
- export function eruditBuildPath(path?: string) {
19
- return projectPath('.erudit' + (path ? '/' + path : ''));
20
- }
21
-
22
- export function eruditEndNuxtPath(path?: string) {
23
- return eruditBuildPath('nuxt' + (path ? '/' + path : ''));
24
- }
1
+ import { fileURLToPath } from 'node:url';
2
+ import { resolvePaths } from 'erudit-cog/kit';
3
+
4
+ export const ERUDIT_DIR = resolvePaths(fileURLToPath(import.meta.url), '..');
5
+ export const PROJECT_DIR = process.env.ERUDIT_PROJECT_DIR as string;
6
+
7
+ export function eruditPath(path?: string) {
8
+ return path ? `${ERUDIT_DIR}/${path}` : ERUDIT_DIR;
9
+ }
10
+
11
+ export function projectPath(path?: string) {
12
+ return path ? `${PROJECT_DIR}/${path}` : PROJECT_DIR;
13
+ }
14
+
15
+ export function eruditBuildPath(path?: string) {
16
+ return projectPath('.erudit' + (path ? '/' + path : ''));
17
+ }
18
+
19
+ export function eruditEndNuxtPath(path?: string) {
20
+ return eruditBuildPath('nuxt' + (path ? '/' + path : ''));
21
+ }
package/globals/bitran.ts CHANGED
@@ -1,27 +1,30 @@
1
- import type { GenericProductCore } from 'bitran/core';
2
- import type { ProductRender } from 'bitran/render';
1
+ import type { GenericElementSchema } from '@bitran-js/core';
2
+ import type { ElementTranspiler } from '@bitran-js/transpiler';
3
+ import type { ElementVueRenderer } from '@bitran-js/renderer-vue';
3
4
 
4
- export interface ConfigProduct {
5
- core: () => Promise<GenericProductCore>;
6
- render: () => Promise<ProductRender>;
5
+ export interface BitranElementConfig<
6
+ T extends GenericElementSchema = GenericElementSchema,
7
+ > {
8
+ transpiler: () => Promise<ElementTranspiler<T>>;
9
+ renderer: () => Promise<ElementVueRenderer<T>>;
7
10
  }
8
11
 
9
- export type ConfigProducts = Record<string, ConfigProduct>;
12
+ export type BitranElements = Record<string, BitranElementConfig>;
10
13
 
11
14
  export interface EruditBitranConfig<
12
- TProducts extends ConfigProducts = ConfigProducts,
15
+ TElements extends BitranElements = BitranElements,
13
16
  > {
14
- products: TProducts;
15
- toc: (keyof TProducts)[];
17
+ elements: TElements;
18
+ toc: (keyof TElements)[];
16
19
 
17
20
  /**
18
21
  * TODO!
19
- * Groups of products that are tracked on site, included in TOC, in search, display in front and book pages and so on.
22
+ * Groups of elements that are tracked on site, included in TOC, in search, display in front and book pages and so on.
20
23
  *
21
24
  * Example:
22
25
  * tracked: {
23
26
  * term: {
24
- * products: ['definition', 'axiom'],
27
+ * elements: ['definition', 'axiom'],
25
28
  title: 'Термин',
26
29
  toc: true,
27
30
  search: false,
@@ -29,11 +32,16 @@ export interface EruditBitranConfig<
29
32
  * }
30
33
  * }
31
34
  */
32
- tracked: any;
33
35
  }
34
36
 
35
- export function defineBitranConfig<T extends ConfigProducts>(
37
+ export function defineBitranConfig<T extends BitranElements>(
36
38
  config: Partial<EruditBitranConfig<T>>,
37
39
  ) {
38
40
  return config;
39
41
  }
42
+
43
+ export function defineBitranElement<T extends GenericElementSchema>(
44
+ config: BitranElementConfig<T>,
45
+ ) {
46
+ return config;
47
+ }
package/globals/erudit.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { EruditConfig } from 'erudit-cog/schema';
2
-
3
- export function defineEruditConfig(eruditConfig: Partial<EruditConfig>) {
4
- return eruditConfig;
5
- }
1
+ import type { EruditConfig } from 'erudit-cog/schema';
2
+
3
+ export function defineEruditConfig(eruditConfig: Partial<EruditConfig>) {
4
+ return eruditConfig;
5
+ }
@@ -1,18 +1,18 @@
1
- import * as erudit from './erudit';
2
- import * as contributor from './contributor';
3
- import * as bitran from './bitran';
4
- import * as content from './content';
5
- import * as asset from '@shared/asset';
6
-
7
- export function registerGlobals() {
8
- for (const [key, value] of Object.entries({
9
- ...erudit,
10
- ...contributor,
11
- ...bitran,
12
- ...content,
13
- ...asset,
14
- })) {
15
- // @ts-ignore
16
- globalThis[key] = value;
17
- }
18
- }
1
+ import * as erudit from './erudit';
2
+ import * as contributor from './contributor';
3
+ import * as bitran from './bitran';
4
+ import * as content from './content';
5
+ import * as asset from '@shared/asset';
6
+
7
+ export function registerGlobals() {
8
+ for (const [key, value] of Object.entries({
9
+ ...erudit,
10
+ ...contributor,
11
+ ...bitran,
12
+ ...content,
13
+ ...asset,
14
+ })) {
15
+ // @ts-ignore
16
+ globalThis[key] = value;
17
+ }
18
+ }