add katex rendering and question fetching, basic dark theme scss, dev env API url

This commit is contained in:
Xevion
2020-12-13 17:41:35 -06:00
parent 02fc049eb8
commit a8c069a9f5
3 changed files with 51 additions and 20 deletions

1
client/.env.development Normal file
View File

@@ -0,0 +1 @@
VUE_APP_API_URL=http://localhost:5000

View File

@@ -1,12 +1,42 @@
<template>
<div id="app">
<div id="expression" v-katex="expression"></div>
<button v-on:click="fetchQuestion">
Fetch Question
</button>
</div>
</template>
<style lang="css">
<style lang="scss">
html, body {
background: hsl(0, 0%, 6%)
}
a, p, span {
color: hsl(0, 0%, 91%);
text-shadow: hsl(0, 0%, 5%) 5px 5px;
}
#question-text {
font-family: "Computer Modern", serif;
}
#expression {
width: 75%;
margin: 0 auto;
text-align: center;
.katex {
font-size: 16em !important;
white-space: nowrap;
user-select: none;
}
}
</style>
<script>
import axios from "axios";
export default {
name: 'App',
data() {
@@ -14,9 +44,24 @@ export default {
currentQuestion: null
}
},
computed: {
expression() {
return this.currentQuestion != null ? this.currentQuestion.question : "loading";
},
},
mounted: function () {
this.$nextTick(() => {
this.fetchQuestion();
})
},
methods: {
fetchQuestion() {
}
// Fetch the next question, display with KaTeX
axios.put(`${process.env.VUE_APP_API_URL}/api/question/`)
.then((res) => {
this.currentQuestion = res.data
})
},
}
}
</script>

View File

@@ -1,26 +1,11 @@
import Vue from 'vue'
import VueKatex from 'vue-katex';
import App from './App.vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
import VueHighlightJS from 'vue-highlightjs'
import VueMaterial from 'vue-material'
import json from 'highlight.js/lib/languages/css';
import 'vue-material/dist/vue-material.min.css'
import 'vue-material/dist/theme/default.css'
import 'highlight.js/styles/default.css';
import InfiniteLoading from "vue-infinite-loading";
import 'katex/dist/katex.min.css';
Vue.use(VueHighlightJS, {languages: {json}})
Vue.use(VueMaterial)
Vue.use(VueAxios, axios)
Vue.use(InfiniteLoading, {
system: {
// throttleLimit: 500,
/* other settings need to configure */
},
});
Vue.config.productionTip = false
Vue.use(VueKatex)
new Vue({
render: h => h(App),