@live-change/frontend-base 0.2.56 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Page.vue CHANGED
@@ -29,21 +29,24 @@
29
29
  const isMounted = ref(false)
30
30
  onMounted(() => isMounted.value = true)
31
31
 
32
- const { working, loading } = defineProps({
32
+ const { working, loading, pageType } = defineProps({
33
33
  working: {
34
34
  type: Boolean
35
35
  },
36
36
  loading: {
37
37
  type: Boolean
38
+ },
39
+ pageType: {
40
+ type: String,
41
+ default: 'simple'
38
42
  }
39
43
  })
40
44
 
41
45
  //console.log("SETUP PAGE!!!")
42
46
 
43
47
  import { computed } from 'vue'
44
- import { useRoute } from 'vue-router'
48
+ import { useRoute, useRouter } from 'vue-router'
45
49
  const route = useRoute()
46
-
47
- const pageType = computed(() => route?.meta?.pageType ?? 'simple' )
50
+ const router = useRouter()
48
51
 
49
52
  </script>
package/ViewRoot.vue CHANGED
@@ -12,7 +12,7 @@
12
12
  </div>
13
13
  </template>
14
14
  <template v-slot:default="{ isLoading }">
15
- <page :loading="loading" :working="working">
15
+ <page :loading="loading" :working="working" :route="route" :pageType="route?.meta?.pageType">
16
16
  <template #navbar>
17
17
  <slot name="navbar"></slot>
18
18
  </template>
@@ -53,7 +53,7 @@
53
53
  ]
54
54
  })
55
55
 
56
- import { ref } from 'vue'
56
+ import { computed, onMounted, ref } from 'vue'
57
57
  const working = ref(false)
58
58
  const loading = ref(false)
59
59
 
package/lezer.js ADDED
@@ -0,0 +1,63 @@
1
+ const { parser: javascriptParser } = require("@lezer/javascript")
2
+ const { parser: htmlParser } = require("@lezer/html")
3
+ const { parser: markdownParser } = require("@lezer/markdown")
4
+ const { parser: cssParser } = require("@lezer/css")
5
+ const { parser: jsonParser } = require("@lezer/json")
6
+ const { parser: cppParser } = require("@lezer/cpp")
7
+ const { parser: sassParser } = require("@lezer/sass")
8
+ const { parser: javaParser } = require("@lezer/java")
9
+ const { parser: pythonParser } = require("@lezer/python")
10
+ const { parser: phpParser } = require("@lezer/php")
11
+ const { parser: rustParser } = require("@lezer/rust")
12
+
13
+ const { highlightTree } = require("@lezer/highlight")
14
+ const { defaultHighlightStyle } = require("@codemirror/language")
15
+
16
+ const parsers = {
17
+ javascript: javascriptParser,
18
+ html: htmlParser,
19
+ markdown: markdownParser,
20
+ css: cssParser,
21
+ json: jsonParser,
22
+ cpp: cppParser,
23
+ sass: sassParser,
24
+ java: javaParser,
25
+ python: pythonParser,
26
+ php: phpParser,
27
+ rust: rustParser,
28
+ scss: sassParser,
29
+ less: cssParser,
30
+ stylus: cssParser,
31
+ ts: javascriptParser,
32
+ tsx: javascriptParser,
33
+ jsx: javascriptParser,
34
+ vue: htmlParser,
35
+ }
36
+
37
+ function hightlight(code, language) {
38
+ //console.log("HIGHLIGHT", language, code)
39
+ const parser = parsers[language]
40
+ if(parser) {
41
+ const tree = parser.parse(code)
42
+ let pos = 0
43
+ const output = []
44
+ highlightTree(tree, defaultHighlightStyle, (from, to, classes) => {
45
+ if (from > pos) output.push(`<span>${
46
+ code.slice(pos, from).replace(/</g, "&lt;").replace(/>/g, "&gt;")
47
+ }</span>`)
48
+ console.log("HIGHLIGHT", from, to, classes, code.slice(from, to))
49
+ output.push(`<span class="${classes}">${
50
+ code.slice(from, to).replace(/</g, "&lt;").replace(/>/g, "&gt;")
51
+ }</span>`)
52
+ pos = to
53
+ })
54
+ if (code.length > pos) output.push(`<span>${
55
+ code.slice(pos).replace(/</g, "&lt;").replace(/>/g, "&gt;")
56
+ }</span>`)
57
+ return `<pre class="code${language ? ' code-language-'+language : ''}">${output.join('')}</pre>`
58
+ }
59
+ }
60
+
61
+ module.exports = {
62
+ parsers, hightlight
63
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/frontend-base",
3
- "version": "0.2.56",
3
+ "version": "0.3.0",
4
4
  "scripts": {
5
5
  "memDev": "lcli memDev --enableSessions --initScript ./init.js --templatePath ../../base-frontend/index.html",
6
6
  "localDevInit": "rm tmp.db; lcli localDev --enableSessions --initScript ./init.js",
@@ -20,6 +20,17 @@
20
20
  "debug": "node --inspect-brk server"
21
21
  },
22
22
  "dependencies": {
23
+ "@lezer/cpp": "^1.1.1",
24
+ "@lezer/css": "^1.1.3",
25
+ "@lezer/html": "^1.3.6",
26
+ "@lezer/java": "^1.0.4",
27
+ "@lezer/javascript": "^1.4.7",
28
+ "@lezer/json": "^1.0.1",
29
+ "@lezer/markdown": "^1.1.0",
30
+ "@lezer/php": "^1.0.1",
31
+ "@lezer/python": "^1.1.8",
32
+ "@lezer/rust": "^1.0.1",
33
+ "@lezer/sass": "^1.0.3",
23
34
  "@live-change/cli": "0.7.32",
24
35
  "@live-change/dao": "0.5.21",
25
36
  "@live-change/dao-message": "0.5.21",
@@ -30,7 +41,7 @@
30
41
  "@live-change/password-authentication-service": "0.3.30",
31
42
  "@live-change/secret-code-service": "0.3.30",
32
43
  "@live-change/secret-link-service": "0.3.30",
33
- "@live-change/security-frontend": "^0.2.56",
44
+ "@live-change/security-frontend": "^0.3.0",
34
45
  "@live-change/session-service": "0.3.30",
35
46
  "@live-change/user-service": "0.3.30",
36
47
  "@live-change/vue3-components": "0.2.29",
@@ -53,6 +64,7 @@
53
64
  "markdown-it-highlight": "^0.2.0",
54
65
  "markdown-it-katex": "^2.0.3",
55
66
  "markdown-it-mark": "^3.0.1",
67
+ "markdown-it-mermaid": "^0.2.5",
56
68
  "markdown-it-plugin-echarts": "^0.0.1",
57
69
  "markdown-it-prism": "^2.3.0",
58
70
  "markdown-it-source-map": "^0.1.1",
@@ -93,5 +105,5 @@
93
105
  "author": "",
94
106
  "license": "BSD-3-Clause",
95
107
  "description": "",
96
- "gitHead": "73eeefa38a8af813aa244a711de9765eedfba306"
108
+ "gitHead": "ad1cf7e6deb52afdc69eb4748656f121417d31b3"
97
109
  }
package/vite-config.js CHANGED
@@ -15,11 +15,13 @@ const MarkdownItTaskLists = require('markdown-it-task-lists')
15
15
  const MarkdownItTableOfContents = require('markdown-it-table-of-contents')
16
16
  const MarkdownItMermaid = require('markdown-it-mermaid').default
17
17
 
18
- const { parser: javascriptParser } = require("@lezer/javascript")
19
- const { highlightTree } = require("@lezer/highlight")
20
- const { defaultHighlightStyle } = require("@codemirror/language")
18
+ const { highlight } = require('@live-change/frontend-base/lezer.js')
21
19
 
22
20
  const Components = require('unplugin-vue-components/vite')
21
+ const {
22
+ PrimeVueResolver
23
+ } = require('unplugin-vue-components/resolvers')
24
+
23
25
  const { visualizer } = require('rollup-plugin-visualizer')
24
26
  const viteImages = require('vite-plugin-vue-images')
25
27
  const viteCompression = require('vite-plugin-compression')
@@ -33,8 +35,7 @@ const ssrTransformCustomDir = () => {
33
35
  }
34
36
 
35
37
  module.exports = async ({ command, mode }) => {
36
- console.log("VITE CONFIG", command, mode)
37
- //const MarkdownItEcharts = await import('markdown-it-echarts')
38
+ //console.log("VITE CONFIG", command, mode)
38
39
  return {
39
40
  define: {
40
41
  ENV_BASE_HREF: JSON.stringify(process.env.BASE_HREF || 'http://localhost:8001')
@@ -73,26 +74,7 @@ module.exports = async ({ command, mode }) => {
73
74
  html: true,
74
75
  linkify: true,
75
76
  typographer: true,
76
- highlight: function (code, lang) {
77
- //console.log("HIGHLIGHT", lang, str)
78
- const tree = javascriptParser.parse(code)
79
- let pos = 0
80
- const output = []
81
- highlightTree(tree, defaultHighlightStyle, (from, to, classes) => {
82
- if(from > pos) output.push(`<span>${
83
- code.slice(pos, from).replace(/</g, "&lt;").replace(/>/g, "&gt;")
84
- }</span>`)
85
- console.log("HIGHLIGHT", from, to, classes, code.slice(from, to))
86
- output.push(`<span class="${classes}">${
87
- code.slice(from, to).replace(/</g, "&lt;").replace(/>/g, "&gt;")
88
- }</span>`)
89
- pos = to
90
- })
91
- if(code.length > pos) output.push(`<span>${
92
- code.slice(pos).replace(/</g, "&lt;").replace(/>/g, "&gt;")
93
- }</span>`)
94
- return `<pre>${output.join('')}</pre>`
95
- },
77
+ highlight,
96
78
  },
97
79
  markdownItSetup(md) {
98
80
  md.use(MarkdownItSub)
@@ -103,15 +85,12 @@ module.exports = async ({ command, mode }) => {
103
85
  md.use(MarkdownItMark)
104
86
  md.use(MarkdownItKatex)
105
87
  md.use(MarkdownItTaskLists)
106
- //md.use(MarkdownItEcharts)
107
88
  md.use(MarkdownItMermaid)
108
89
  md.use(MarkdownItAnchor)
109
90
  md.use(MarkdownItTableOfContents, {
110
91
  includeLevel: [1, 2, 3],
111
92
  containerClass: 'table-of-contents',
112
93
  })
113
-
114
- console.log('MDO', md.options.highlight.toString())
115
94
  },
116
95
  wrapperClasses: 'markdown-body'
117
96
  }),
@@ -120,13 +99,18 @@ module.exports = async ({ command, mode }) => {
120
99
  from: 'vue-router',
121
100
  names: ['RouterLink', 'RouterView'],
122
101
  }],
102
+ resolvers: [
103
+ PrimeVueResolver({
104
+ })
105
+ ],
123
106
  // allow auto load markdown components under `./src/components/`
124
107
  dirs: ['src/components'],
125
108
  // search for subdirectories
126
109
  deep: true,
127
110
  extensions: ['vue', 'md'],
111
+ dts: true,
128
112
  // allow auto import and register components used in markdown
129
- customLoaderMatcher: path => path.endsWith('.md'),
113
+ include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
130
114
  }),
131
115
  viteImages({ extensions: ['jpg', 'jpeg', 'png', 'svg', 'webp'] }),
132
116
  viteCompression({ algorithm: 'brotliCompress', ext: '.br' }),