-
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.vue
128 lines (100 loc) · 2.72 KB
/
index.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<template>
<main class="container readme">
<article
class="markdown-body"
v-html="readme"
/>
</main>
</template>
<script>
// Code Highlight
import hljs from 'highlight.js/lib/core';
import bash from 'highlight.js/lib/languages/bash';
import xml from 'highlight.js/lib/languages/xml';
import javascript from 'highlight.js/lib/languages/javascript';
// Readme
import readme from '~/../README.md';
const markdown = readme
.split(
'./src/static/'
)
.join(
''
)
;
// Highlight configs
hljs.configure(
{
ignoreUnescapedHTML: true,
}
);
hljs.registerLanguage(
'bash',
bash,
);
hljs.registerLanguage(
'xml',
xml,
);
hljs.registerLanguage(
'javascript',
javascript,
);
export default {
name: 'homepage',
layout: 'readme',
computed: {
readme: () => markdown,
},
async mounted() {
await this.$nextTick();
// Init External Links
this.initHighlight();
this.initReadmeLinks();
},
methods: {
initHighlight() {
const CODE_BLOCKS = document.querySelectorAll(
'.readme code',
);
for( const block of CODE_BLOCKS ) {
hljs.highlightElement(
block
);
}
},
initReadmeLinks() {
const LINKS = document.querySelectorAll(
'.readme a',
);
for( const link of LINKS ) {
link.setAttribute(
'target',
'_blank',
);
link.setAttribute(
'rel',
'noopener',
);
link.textContent && link.setAttribute(
'title',
link.textContent,
);
link.getAttribute( 'href' ).startsWith( './' ) && link.setAttribute(
'href',
link.getAttribute( 'href' ).replace(
'./',
'https://github.com/LuXDAmore/generative-art/tree/master/'
),
);
}
},
},
};
</script>
<style src="highlight.js/styles/github.css"></style>
<style src="github-markdown-css/github-markdown.css"></style>
<style
scoped
src="./index.css"
></style>