erudit 3.0.0-dev.3 → 3.0.0-dev.5

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 (243) 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 +35 -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 +15 -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 +70 -63
  46. package/app/components/bitran/RenderWrapper.vue +10 -10
  47. package/app/components/contributor/ContributorAvatar.vue +43 -43
  48. package/app/components/contributor/ContributorListItem.vue +35 -35
  49. package/app/components/main/topic/MainTopic.vue +79 -79
  50. package/app/components/main/topic/TopicPartSwitch.vue +118 -118
  51. package/app/components/main/utils/Breadcrumb.vue +75 -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 +105 -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 +49 -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 +129 -127
  76. package/app/composables/bitranContent.ts +39 -39
  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 +65 -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 +9 -9
  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 +73 -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 +71 -71
  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/globalPath.ts +21 -21
  132. package/globals/bitran.ts +2 -47
  133. package/globals/content.ts +22 -22
  134. package/globals/contributor.ts +5 -5
  135. package/globals/erudit.ts +5 -5
  136. package/globals/register.ts +18 -18
  137. package/languages/en.ts +95 -95
  138. package/languages/ru.ts +99 -99
  139. package/module/bitran.ts +35 -34
  140. package/module/config.ts +34 -34
  141. package/module/imports.ts +50 -46
  142. package/module/index.ts +47 -47
  143. package/module/logger.ts +10 -10
  144. package/module/paths.ts +22 -22
  145. package/module/restart.ts +61 -61
  146. package/nuxt.config.ts +138 -112
  147. package/package.json +7 -8
  148. package/server/api/aside/major/nav/bookIds.ts +5 -5
  149. package/server/api/aside/major/nav/bookNav/[...bookId].ts +20 -20
  150. package/server/api/aside/major/nav/global.ts +7 -7
  151. package/server/api/aside/minor/news.ts +7 -7
  152. package/server/api/aside/minor/path.ts +78 -78
  153. package/server/api/bitran/content/[location].ts +8 -8
  154. package/server/api/bitran/toc/[location].ts +7 -7
  155. package/server/api/content/data.ts +72 -72
  156. package/server/api/contributor/count.ts +6 -6
  157. package/server/api/fake/content.ts +11 -11
  158. package/server/api/fake/shared/languages.ts +12 -12
  159. package/server/api/language/functions.ts +12 -12
  160. package/server/api/language/phrase/[phraseId].ts +19 -19
  161. package/server/api/language/phraseIds.ts +8 -8
  162. package/server/api/preview/page/[...parts].ts +51 -51
  163. package/server/api/preview/unique/[location].ts +57 -57
  164. package/server/plugin/bitran/content.ts +187 -187
  165. package/server/plugin/bitran/location.ts +25 -25
  166. package/server/plugin/bitran/products/include.ts +230 -230
  167. package/server/plugin/bitran/products/link.ts +116 -116
  168. package/server/plugin/bitran/setup.ts +11 -9
  169. package/server/plugin/bitran/toc.ts +83 -83
  170. package/server/plugin/bitran/transpiler.ts +48 -46
  171. package/server/plugin/build/close.ts +10 -10
  172. package/server/plugin/build/jobs/content/builderArgs.ts +8 -8
  173. package/server/plugin/build/jobs/content/generic.ts +176 -176
  174. package/server/plugin/build/jobs/content/parse.ts +100 -100
  175. package/server/plugin/build/jobs/content/path.ts +6 -6
  176. package/server/plugin/build/jobs/content/type/book.ts +9 -9
  177. package/server/plugin/build/jobs/content/type/group.ts +37 -37
  178. package/server/plugin/build/jobs/content/type/topic.ts +36 -36
  179. package/server/plugin/build/jobs/contributors.ts +66 -66
  180. package/server/plugin/build/jobs/language.ts +36 -36
  181. package/server/plugin/build/jobs/nav.ts +210 -210
  182. package/server/plugin/build/process.ts +25 -25
  183. package/server/plugin/build/rebuild.ts +55 -55
  184. package/server/plugin/build/setup.ts +21 -21
  185. package/server/plugin/content/absoluteId.ts +94 -94
  186. package/server/plugin/content/context.ts +112 -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/Group.ts +14 -14
  192. package/server/plugin/db/entities/Hash.ts +15 -15
  193. package/server/plugin/db/entities/Topic.ts +20 -20
  194. package/server/plugin/db/entities/Unique.ts +21 -21
  195. package/server/plugin/db/setup.ts +34 -34
  196. package/server/plugin/global.ts +17 -18
  197. package/server/plugin/importer.ts +12 -12
  198. package/server/plugin/index.ts +9 -9
  199. package/server/plugin/logger.ts +23 -23
  200. package/server/plugin/nav/node.ts +26 -26
  201. package/server/plugin/nav/utils.ts +129 -129
  202. package/server/plugin/repository/book.ts +21 -21
  203. package/server/plugin/repository/content.ts +238 -238
  204. package/server/plugin/repository/contributor.ts +8 -8
  205. package/server/plugin/repository/frontNav.ts +148 -148
  206. package/server/plugin/repository/topic.ts +32 -32
  207. package/server/tsconfig.json +9 -9
  208. package/shared/aside/minor.ts +50 -50
  209. package/shared/asset.ts +15 -15
  210. package/shared/bitran/context.ts +8 -8
  211. package/shared/bitran/default.ts +46 -46
  212. package/shared/bitran/link/Link.vue +166 -167
  213. package/shared/bitran/link/factory.ts +24 -24
  214. package/shared/bitran/link/languages/en.ts +7 -7
  215. package/shared/bitran/link/languages/ru.ts +7 -7
  216. package/shared/bitran/link/renderer.ts +21 -21
  217. package/shared/bitran/link/shared.ts +17 -17
  218. package/shared/bitran/link/target.ts +134 -134
  219. package/shared/bitran/link/transpiler.ts +10 -10
  220. package/shared/bitran/location.ts +166 -166
  221. package/shared/bitran/toc.ts +8 -8
  222. package/shared/content/context.ts +9 -9
  223. package/shared/content/data/base.ts +32 -32
  224. package/shared/content/data/index.ts +5 -5
  225. package/shared/content/data/type/book.ts +5 -5
  226. package/shared/content/data/type/group.ts +6 -6
  227. package/shared/content/data/type/topic.ts +11 -11
  228. package/shared/content/previousNext.ts +9 -9
  229. package/shared/contributor.ts +5 -5
  230. package/shared/frontNav.ts +41 -41
  231. package/shared/icons.ts +38 -38
  232. package/shared/image.ts +5 -5
  233. package/shared/link.ts +25 -25
  234. package/shared/popover.ts +8 -0
  235. package/shared/types/language.ts +75 -75
  236. package/shared/utils/objectsEqual.ts +4 -4
  237. package/shared/utils/stringColor.ts +9 -9
  238. package/test/bitran/link/target.test.ts +141 -141
  239. package/test/bitran/location.test.ts +143 -143
  240. package/tsconfig.json +8 -8
  241. package/utils/stress.ts +9 -9
  242. package/app/components/main/utils/ContentFlag.vue +0 -15
  243. package/app/styles/default.scss +0 -83
@@ -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,91 +1,91 @@
1
- @use '$/def/size';
2
-
3
- //
4
- // Vars
5
- //
6
-
7
- :root {
8
- --transitionSpeed: 200ms;
9
- --transitionFunction: cubic-bezier(0, 0, 0.5, 1);
10
- interpolate-size: allow-keywords;
11
- }
12
-
13
- // Sizes
14
-
15
- :root {
16
- --wAside: #{size.$wAside};
17
- --wMainMin: #{size.$wMainMin};
18
- --wMainMax: #{size.$wMainMax};
19
-
20
- --gap: #{size.$gap};
21
- --gapSmall: #{size.$gapSmall};
22
- --gapBig: #{size.$gapBig};
23
- }
24
-
25
- // Colors
26
-
27
- :root {
28
- --bg: light-dark(#ebebeb, #141414);
29
- --bgAside: light-dark(#f7f7f7, #1b1b1b);
30
- --bgMain: light-dark(#ffffff, #212121);
31
- --bgAccent: light-dark(#e6e6e6, #262626);
32
-
33
- --border: light-dark(#d7d7d7, #373737);
34
-
35
- --text: light-dark(#373737, #b9b9b9);
36
- --textDeep: light-dark(#232323, #e1e1e1);
37
- --textMuted: light-dark(#696969, #7f7f7f);
38
- --textDimmed: light-dark(#969696, #616161);
39
- --textDisabled: light-dark(#b9b9b9, #4f4f4f);
40
-
41
- --brand: light-dark(#1879d9, #4e94d9);
42
- --error: light-dark(#d91818, #d94e4e);
43
- --warn: light-dark(#d98718, #d9b44e);
44
- --success: light-dark(#12a512, #51a551);
45
-
46
- --scrollbar: light-dark(#bfbfbf, #494949);
47
-
48
- --invert: light-dark(black, white);
49
- }
50
-
51
- //
52
- // General rules
53
- //
54
-
55
- // Noto Sans + Noto Serif
56
- @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');
57
-
58
- body {
59
- background: var(--bg);
60
- font-family: 'Noto Sans', system-ui, sans-serif;
61
- color: var(--text);
62
- }
63
-
64
- button {
65
- all: unset;
66
- }
67
-
68
- h1,
69
- h2,
70
- h3,
71
- h4,
72
- h5,
73
- h6,
74
- strong {
75
- color: var(--textDeep);
76
- }
77
-
78
- :focus-visible {
79
- outline: 2px solid var(--brand);
80
- border-radius: 3px;
81
- }
82
-
83
- ::selection {
84
- background: color-mix(in srgb, var(--brand), transparent 65%);
85
- }
86
-
87
- .icon-flip-h {
88
- [my-icon] svg {
89
- transform: scaleX(-1);
90
- }
91
- }
1
+ @use '$/def/size';
2
+
3
+ //
4
+ // Vars
5
+ //
6
+
7
+ :root {
8
+ --transitionSpeed: 200ms;
9
+ --transitionFunction: cubic-bezier(0, 0, 0.5, 1);
10
+ interpolate-size: allow-keywords;
11
+ }
12
+
13
+ // Sizes
14
+
15
+ :root {
16
+ --wAside: #{size.$wAside};
17
+ --wMainMin: #{size.$wMainMin};
18
+ --wMainMax: #{size.$wMainMax};
19
+
20
+ --gap: #{size.$gap};
21
+ --gapSmall: #{size.$gapSmall};
22
+ --gapBig: #{size.$gapBig};
23
+ }
24
+
25
+ // Colors
26
+
27
+ :root {
28
+ --bg: light-dark(#ebebeb, #141414);
29
+ --bgAside: light-dark(#f7f7f7, #1b1b1b);
30
+ --bgMain: light-dark(#ffffff, #212121);
31
+ --bgAccent: light-dark(#e6e6e6, #262626);
32
+
33
+ --border: light-dark(#d7d7d7, #373737);
34
+
35
+ --text: light-dark(#373737, #b9b9b9);
36
+ --textDeep: light-dark(#232323, #e1e1e1);
37
+ --textMuted: light-dark(#696969, #7f7f7f);
38
+ --textDimmed: light-dark(#969696, #616161);
39
+ --textDisabled: light-dark(#b9b9b9, #4f4f4f);
40
+
41
+ --brand: light-dark(#12968e, #379c97);
42
+ --error: light-dark(#d91818, #d94e4e);
43
+ --warn: light-dark(#d98718, #d9b44e);
44
+ --success: light-dark(#12a512, #51a551);
45
+
46
+ --scrollbar: light-dark(#bfbfbf, #494949);
47
+
48
+ --invert: light-dark(black, white);
49
+ }
50
+
51
+ //
52
+ // General rules
53
+ //
54
+
55
+ // Noto Sans + Noto Serif
56
+ @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');
57
+
58
+ body {
59
+ background: var(--bg);
60
+ font-family: 'Noto Sans', system-ui, sans-serif;
61
+ color: var(--text);
62
+ }
63
+
64
+ button {
65
+ all: unset;
66
+ }
67
+
68
+ h1,
69
+ h2,
70
+ h3,
71
+ h4,
72
+ h5,
73
+ h6,
74
+ strong {
75
+ color: var(--textDeep);
76
+ }
77
+
78
+ :focus-visible {
79
+ outline: 2px solid var(--brand);
80
+ border-radius: 3px;
81
+ }
82
+
83
+ ::selection {
84
+ background: color-mix(in srgb, var(--brand), transparent 65%);
85
+ }
86
+
87
+ .icon-flip-h {
88
+ [my-icon] svg {
89
+ transform: scaleX(-1);
90
+ }
91
+ }
@@ -1,27 +1,27 @@
1
- @use 'sass:map';
2
-
3
- @use '$/def/size';
4
-
5
- $bps: (
6
- 'mobile': 500px,
7
- 'aside1': size.$wMainMin + size.$wAside,
8
- 'aside2': size.$wMainMin + size.$wAside * 2,
9
- );
10
-
11
- @mixin above($bp) {
12
- @media (min-width: map.get($bps, $bp)) {
13
- @content;
14
- }
15
- }
16
-
17
- @mixin below($bp) {
18
- @media (max-width: (map.get($bps, $bp) - 1)) {
19
- @content;
20
- }
21
- }
22
-
23
- @mixin between($bp1, $bp2) {
24
- @media (min-width: map.get($bps, $bp1)) and (max-width: (map.get($bps, $bp2) - 1)) {
25
- @content;
26
- }
27
- }
1
+ @use 'sass:map';
2
+
3
+ @use '$/def/size';
4
+
5
+ $bps: (
6
+ 'mobile': 500px,
7
+ 'aside1': size.$wMainMin + size.$wAside,
8
+ 'aside2': size.$wMainMin + size.$wAside * 2,
9
+ );
10
+
11
+ @mixin above($bp) {
12
+ @media (min-width: map.get($bps, $bp)) {
13
+ @content;
14
+ }
15
+ }
16
+
17
+ @mixin below($bp) {
18
+ @media (max-width: (map.get($bps, $bp) - 1)) {
19
+ @content;
20
+ }
21
+ }
22
+
23
+ @mixin between($bp1, $bp2) {
24
+ @media (min-width: map.get($bps, $bp1)) and (max-width: (map.get($bps, $bp2) - 1)) {
25
+ @content;
26
+ }
27
+ }
@@ -1,7 +1,7 @@
1
- $wMainMin: 800px;
2
- $wMainMax: 1024px;
3
- $wAside: 300px;
4
-
5
- $gap: 15px;
6
- $gapSmall: calc($gap / 2);
7
- $gapBig: calc($gap * 2);
1
+ $wMainMin: 800px;
2
+ $wMainMax: 1024px;
3
+ $wAside: 300px;
4
+
5
+ $gap: 15px;
6
+ $gapSmall: calc($gap / 2);
7
+ $gapBig: calc($gap * 2);
@@ -1,5 +1,5 @@
1
- $bg: 10;
2
- $main: 20;
3
- $asideSwitch: 30;
4
- $preview: 40;
5
- $aside: 50;
1
+ $bg: 10;
2
+ $main: 20;
3
+ $asideSwitch: 30;
4
+ $preview: 40;
5
+ $aside: 50;
@@ -1,63 +1,63 @@
1
- // https://www.joshwcomeau.com/css/custom-css-reset/
2
-
3
- /* 1. Use a more-intuitive box-sizing model */
4
- *,
5
- *::before,
6
- *::after {
7
- box-sizing: border-box;
8
- }
9
-
10
- /* 2. Remove default margin */
11
- * {
12
- margin: 0;
13
- }
14
-
15
- body {
16
- /* 3. Add accessible line-height */
17
- line-height: 1.5;
18
- /* 4. Improve text rendering */
19
- -webkit-font-smoothing: antialiased;
20
- }
21
-
22
- /* 5. Improve media defaults */
23
- img,
24
- picture,
25
- video,
26
- canvas,
27
- svg {
28
- display: block;
29
- max-width: 100%;
30
- }
31
-
32
- /* 6. Inherit fonts for form controls */
33
- input,
34
- button,
35
- textarea,
36
- select {
37
- font: inherit;
38
- }
39
-
40
- /* 7. Avoid text overflows */
41
- p,
42
- h1,
43
- h2,
44
- h3,
45
- h4,
46
- h5,
47
- h6 {
48
- overflow-wrap: break-word;
49
- }
50
-
51
- /* 8. Improve line wrapping */
52
- p {
53
- text-wrap: pretty;
54
- }
55
-
56
- h1,
57
- h2,
58
- h3,
59
- h4,
60
- h5,
61
- h6 {
62
- text-wrap: balance;
63
- }
1
+ // https://www.joshwcomeau.com/css/custom-css-reset/
2
+
3
+ /* 1. Use a more-intuitive box-sizing model */
4
+ *,
5
+ *::before,
6
+ *::after {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ /* 2. Remove default margin */
11
+ * {
12
+ margin: 0;
13
+ }
14
+
15
+ body {
16
+ /* 3. Add accessible line-height */
17
+ line-height: 1.5;
18
+ /* 4. Improve text rendering */
19
+ -webkit-font-smoothing: antialiased;
20
+ }
21
+
22
+ /* 5. Improve media defaults */
23
+ img,
24
+ picture,
25
+ video,
26
+ canvas,
27
+ svg {
28
+ display: block;
29
+ max-width: 100%;
30
+ }
31
+
32
+ /* 6. Inherit fonts for form controls */
33
+ input,
34
+ button,
35
+ textarea,
36
+ select {
37
+ font: inherit;
38
+ }
39
+
40
+ /* 7. Avoid text overflows */
41
+ p,
42
+ h1,
43
+ h2,
44
+ h3,
45
+ h4,
46
+ h5,
47
+ h6 {
48
+ overflow-wrap: break-word;
49
+ }
50
+
51
+ /* 8. Improve line wrapping */
52
+ p {
53
+ text-wrap: pretty;
54
+ }
55
+
56
+ h1,
57
+ h2,
58
+ h3,
59
+ h4,
60
+ h5,
61
+ h6 {
62
+ text-wrap: balance;
63
+ }
@@ -1,5 +1,5 @@
1
- @mixin replacer {
2
- > div > div {
3
- @content;
4
- }
5
- }
1
+ @mixin replacer {
2
+ > div > div {
3
+ @content;
4
+ }
5
+ }
@@ -1,15 +1,15 @@
1
- .frontNavSeparator {
2
- --_space: calc(var(--gap) / 2);
3
- }
4
-
5
- .frontNavItem + .frontNavSeparator {
6
- border-top: 1px solid var(--border);
7
- margin-top: var(--_space);
8
- padding-top: var(--_space);
9
- }
10
-
11
- .frontNavSeparator:has(+ .frontNavItem:not(.frontNavSeparator)) {
12
- border-bottom: 1px solid var(--border);
13
- padding-bottom: var(--_space);
14
- margin-bottom: var(--_space);
15
- }
1
+ .frontNavSeparator {
2
+ --_space: calc(var(--gap) / 2);
3
+ }
4
+
5
+ .frontNavItem + .frontNavSeparator {
6
+ border-top: 1px solid var(--border);
7
+ margin-top: var(--_space);
8
+ padding-top: var(--_space);
9
+ }
10
+
11
+ .frontNavSeparator:has(+ .frontNavItem:not(.frontNavSeparator)) {
12
+ border-bottom: 1px solid var(--border);
13
+ padding-bottom: var(--_space);
14
+ margin-bottom: var(--_space);
15
+ }
@@ -1,5 +1,5 @@
1
- @mixin hasTheme {
2
- [data-erudit-preview-theme] & {
3
- @content;
4
- }
5
- }
1
+ @mixin hasTheme {
2
+ [data-erudit-preview-theme] & {
3
+ @content;
4
+ }
5
+ }
package/globalPath.ts CHANGED
@@ -1,21 +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
- 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
- }
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,47 +1,2 @@
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';
4
-
5
- export interface BitranElementConfig<
6
- T extends GenericElementSchema = GenericElementSchema,
7
- > {
8
- transpiler: () => Promise<ElementTranspiler<T>>;
9
- renderer: () => Promise<ElementVueRenderer<T>>;
10
- }
11
-
12
- export type BitranElements = Record<string, BitranElementConfig>;
13
-
14
- export interface EruditBitranConfig<
15
- TElements extends BitranElements = BitranElements,
16
- > {
17
- elements: TElements;
18
- toc: (keyof TElements)[];
19
-
20
- /**
21
- * TODO!
22
- * Groups of elements that are tracked on site, included in TOC, in search, display in front and book pages and so on.
23
- *
24
- * Example:
25
- * tracked: {
26
- * term: {
27
- * elements: ['definition', 'axiom'],
28
- title: 'Термин',
29
- toc: true,
30
- search: false,
31
- color: '#E0E0E0',
32
- * }
33
- * }
34
- */
35
- }
36
-
37
- export function defineBitranConfig<T extends BitranElements>(
38
- config: Partial<EruditBitranConfig<T>>,
39
- ) {
40
- return config;
41
- }
42
-
43
- export function defineBitranElement<T extends GenericElementSchema>(
44
- config: BitranElementConfig<T>,
45
- ) {
46
- return config;
47
- }
1
+ import { defineBitranConfig, defineBitranElement } from 'erudit-cog/schema';
2
+ export { defineBitranConfig, defineBitranElement };
@@ -1,22 +1,22 @@
1
- import type {
2
- BookConfig,
3
- ContentReferences,
4
- GroupConfig,
5
- TopicConfig,
6
- } from 'erudit-cog/schema';
7
-
8
- export function defineBook(book: Partial<BookConfig>) {
9
- return book;
10
- }
11
-
12
- export function defineGroup(group: Partial<GroupConfig>) {
13
- return group;
14
- }
15
-
16
- export function defineTopic(topic: Partial<TopicConfig>) {
17
- return topic;
18
- }
19
-
20
- export function defineContentReferences(references: ContentReferences) {
21
- return references;
22
- }
1
+ import type {
2
+ BookConfig,
3
+ ContentReferences,
4
+ GroupConfig,
5
+ TopicConfig,
6
+ } from 'erudit-cog/schema';
7
+
8
+ export function defineBook(book: Partial<BookConfig>) {
9
+ return book;
10
+ }
11
+
12
+ export function defineGroup(group: Partial<GroupConfig>) {
13
+ return group;
14
+ }
15
+
16
+ export function defineTopic(topic: Partial<TopicConfig>) {
17
+ return topic;
18
+ }
19
+
20
+ export function defineContentReferences(references: ContentReferences) {
21
+ return references;
22
+ }
@@ -1,5 +1,5 @@
1
- import type { ContributorConfig } from 'erudit-cog/schema';
2
-
3
- export function defineContributor(contributor: Partial<ContributorConfig>) {
4
- return contributor;
5
- }
1
+ import type { ContributorConfig } from 'erudit-cog/schema';
2
+
3
+ export function defineContributor(contributor: Partial<ContributorConfig>) {
4
+ return contributor;
5
+ }