vue3-sphinx-xml 0.1.0-beta.0 → 0.1.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/README.md +35 -33
- package/dist/Reference.js +13 -3
- package/dist/Reference.js.map +1 -1
- package/dist/Skip.js +18 -0
- package/dist/Skip.js.map +1 -0
- package/dist/StandardElement.js +5 -7
- package/dist/StandardElement.js.map +1 -1
- package/dist/entry.js +54 -46
- package/dist/entry.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-

|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# vue3-sphinx-xml
|
|
4
4
|
|
|
5
|
-
[ ](https://www.npmjs.com/package/vue3-sphinx-xml)
|
|
6
|
+
[](https://vuejs.org/)
|
|
7
7
|
|
|
8
|
-
Vue component for displaying
|
|
8
|
+
Vue component for displaying documentation from XML that has been generaterd by [Sphinx](https://www.sphinx-doc.org/).
|
|
9
9
|
|
|
10
10
|
## Project setup
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
npm install --save
|
|
13
|
+
npm install --save vue3-sphinx-xml
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
### Module import
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
vue3-sphinx-xml makes use of the vuex store to track data. You must use a vuex store for the component to work.
|
|
19
19
|
**⚠️ You need to install the module with the application like so:**
|
|
20
20
|
|
|
21
21
|
```javascript
|
|
22
|
-
import
|
|
22
|
+
import store from './store'
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
import { installVue3SphinxXml } from 'vue3-sphinx-xml'
|
|
25
|
+
import 'vue3-sphinx-xml/dist/style.css'
|
|
26
|
+
|
|
27
|
+
createApp(App).use(store).use(installVue3SphinxXml, { store }).mount('#app')
|
|
25
28
|
```
|
|
26
29
|
|
|
27
|
-
Add the above to your `main.js` application file before the line creating a `
|
|
30
|
+
Add the above to your `main.js` application file before the line creating a `createApp(App)` instance (this assumes that a standard layout is followed when creating your application).
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
vue3-sphinx-xml can make use of vue-highlightjs as an optional package.
|
|
30
33
|
vue-highlightjs adds code highlighting to any code blocks in the documentation. To make use of vue-highlightjs install the package:
|
|
31
34
|
|
|
32
35
|
```
|
|
@@ -36,13 +39,20 @@ npm install --save vue-highlightjs
|
|
|
36
39
|
and edit your `main.js` application file to have the following:
|
|
37
40
|
|
|
38
41
|
```javascript
|
|
39
|
-
import
|
|
42
|
+
import store from './store'
|
|
43
|
+
|
|
44
|
+
import { installVue3SphinxXml } from 'vue3-sphinx-xml'
|
|
45
|
+
import 'vue3-sphinx-xml/dist/style.css'
|
|
46
|
+
|
|
40
47
|
import VueHighlightJS from 'vue-highlightjs'
|
|
41
48
|
|
|
42
49
|
import 'highlight.js/styles/xcode.css'
|
|
43
50
|
|
|
44
|
-
|
|
45
|
-
|
|
51
|
+
createApp(App)
|
|
52
|
+
.use(store)
|
|
53
|
+
.use(installVue3SphinxXml, { store })
|
|
54
|
+
.use(VueHighlightJS)
|
|
55
|
+
.mount('#app')
|
|
46
56
|
```
|
|
47
57
|
|
|
48
58
|
The line `import 'highlight.js/styles/xcode.css'` is one of many styles available from highlightjs that may be imported.
|
|
@@ -50,26 +60,21 @@ See [highlightjs styles](https://highlightjs.org/static/demo/) for a comprehensi
|
|
|
50
60
|
|
|
51
61
|
### Module component
|
|
52
62
|
|
|
53
|
-
To use the
|
|
63
|
+
To use the vue3-sphinx-xml component import it in a view and set the `baseURL` for the source XML.
|
|
54
64
|
Example view `Documentation.vue`:
|
|
55
65
|
|
|
56
66
|
```javascript
|
|
57
67
|
<template>
|
|
58
68
|
<div class="documentation">
|
|
59
|
-
<sphinx-page baseURL="/sphinx-xml-files"
|
|
69
|
+
<sphinx-page :baseURL="/sphinx-xml-files"
|
|
70
|
+
/>
|
|
60
71
|
</div>
|
|
61
72
|
</template>
|
|
62
73
|
|
|
63
|
-
<script>
|
|
64
|
-
import { SphinxPage } from '
|
|
65
|
-
|
|
66
|
-
export default {
|
|
67
|
-
name: 'Documentation',
|
|
68
|
-
components: {
|
|
69
|
-
SphinxPage,
|
|
70
|
-
},
|
|
71
|
-
}
|
|
74
|
+
<script setup>
|
|
75
|
+
import { SphinxPage } from 'vue3-sphinx-xml'
|
|
72
76
|
</script>
|
|
77
|
+
|
|
73
78
|
```
|
|
74
79
|
|
|
75
80
|
#### SphinxPage API
|
|
@@ -86,16 +91,13 @@ export default {
|
|
|
86
91
|
|
|
87
92
|
### Module routing
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
vue3-sphinx-xml requires that you use vue-router. To add a vue3-sphinx-xml route under `documentation` add the following to `routes` object for vue-router:
|
|
90
95
|
|
|
91
96
|
```javascript
|
|
92
97
|
{
|
|
93
98
|
path: '/documentation/:pageName*',
|
|
94
99
|
name: 'Documentation',
|
|
95
|
-
|
|
96
|
-
// this generates a separate chunk (documentation.[hash].js) for this route
|
|
97
|
-
// which is lazy-loaded when the route is visited.
|
|
98
|
-
component: () => import(/* webpackChunkName: "documentation" */ '../views/Documentation.vue')
|
|
100
|
+
component: () => import('../views/Documentation.vue')
|
|
99
101
|
}
|
|
100
102
|
```
|
|
101
103
|
|
|
@@ -103,7 +105,7 @@ Again assuming standard layout.
|
|
|
103
105
|
|
|
104
106
|
### Module math
|
|
105
107
|
|
|
106
|
-
To render any math in the page
|
|
108
|
+
To render any math in the page vue3-sphinx-xml uses Katex.
|
|
107
109
|
Katex is not automatically loaded because it is a large package.
|
|
108
110
|
To render math with Katex you need to install the following packages:
|
|
109
111
|
|
|
@@ -125,8 +127,8 @@ Vue.use(VueKatex)
|
|
|
125
127
|
|
|
126
128
|
## Examples
|
|
127
129
|
|
|
128
|
-
For a complete example of a Vue application using
|
|
129
|
-
The **main** branch has a basic example of how
|
|
130
|
+
For a complete example of a Vue application using vue3-sphinx-xml look at https://github.com/hsorby/example-vue3-sphinx-xml.
|
|
131
|
+
The **main** branch has a basic example of how vue3-sphinx-xml may be used and the **multi_version** branch has an example of how vue3-sphinx-xml may be used for different versions of Sphinx XML output.
|
|
130
132
|
|
|
131
133
|
---
|
|
132
134
|
|
package/dist/Reference.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ref, toRefs, onMounted, resolveComponent, unref, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, createElementBlock } from "vue";
|
|
1
|
+
import { ref, toRefs, onMounted, resolveComponent, unref, openBlock, createBlock, withCtx, createTextVNode, toDisplayString, createElementBlock, Fragment, renderList, resolveDynamicComponent } from "vue";
|
|
2
2
|
import { useRoute } from "vue-router";
|
|
3
|
+
import { u as useChildren } from "./entry.js";
|
|
3
4
|
import { u as useMethods } from "./methods.js";
|
|
4
5
|
import { u as useBaseReference } from "./basereference.js";
|
|
5
|
-
import "./entry.js";
|
|
6
6
|
import "@hsorby/vue3-katex";
|
|
7
7
|
import "katex/dist/katex.min.css";
|
|
8
8
|
import "vuex";
|
|
@@ -27,6 +27,7 @@ const _sfc_main = {
|
|
|
27
27
|
const { isInternalReference } = useMethods();
|
|
28
28
|
const { onReferenceCreated } = useBaseReference(node.value, route, routeDescription);
|
|
29
29
|
onMounted(onReferenceCreated);
|
|
30
|
+
const { children } = useChildren(node);
|
|
30
31
|
return (_ctx, _cache) => {
|
|
31
32
|
const _component_router_link = resolveComponent("router-link");
|
|
32
33
|
return unref(isInternalReference)(unref(node)) ? (openBlock(), createBlock(_component_router_link, {
|
|
@@ -41,7 +42,16 @@ const _sfc_main = {
|
|
|
41
42
|
key: 1,
|
|
42
43
|
href: unref(node).getAttribute("refuri"),
|
|
43
44
|
target: "_blank"
|
|
44
|
-
},
|
|
45
|
+
}, [
|
|
46
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (c, index) => {
|
|
47
|
+
return openBlock(), createBlock(resolveDynamicComponent(c.component), {
|
|
48
|
+
key: "sub_link_" + index,
|
|
49
|
+
node: c.node,
|
|
50
|
+
componentName: c.name,
|
|
51
|
+
properties: c.properties
|
|
52
|
+
}, null, 8, ["node", "componentName", "properties"]);
|
|
53
|
+
}), 128))
|
|
54
|
+
], 8, _hoisted_1));
|
|
45
55
|
};
|
|
46
56
|
}
|
|
47
57
|
};
|
package/dist/Reference.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reference.js","sources":["../src/components/templates/Reference.vue"],"sourcesContent":["<template>\n <router-link v-if=\"isInternalReference(node)\" :to=\"routeDescription\">\n {{ node.textContent }}\n </router-link>\n <a v-else :href=\"node.getAttribute('refuri')\" target=\"_blank\">\n
|
|
1
|
+
{"version":3,"file":"Reference.js","sources":["../src/components/templates/Reference.vue"],"sourcesContent":["<template>\n <router-link v-if=\"isInternalReference(node)\" :to=\"routeDescription\">\n {{ node.textContent }}\n </router-link>\n <a v-else :href=\"node.getAttribute('refuri')\" target=\"_blank\">\n <component\n v-for=\"(c, index) in children\"\n :key=\"'sub_link_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </a>\n</template>\n\n<script setup>\nimport { onMounted, toRefs, ref } from 'vue'\nimport { useRoute } from 'vue-router'\n\nimport { useChildren } from '../../composables/computed'\nimport { useMethods } from '../../composables/methods'\nimport { useBaseReference } from '../../composables/basereference'\n\nconst props = defineProps({\n node: {\n type: undefined,\n default: null,\n },\n componentName: {\n type: String,\n },\n})\n\nconst routeDescription = ref({ path: '', hash: '' })\nconst { node } = toRefs(props)\nconst route = useRoute()\n\nconst { isInternalReference } = useMethods()\nconst { onReferenceCreated } = useBaseReference(\n node.value,\n route,\n routeDescription,\n)\n\nonMounted(onReferenceCreated)\nconst { children } = useChildren(node)\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkCA,UAAM,mBAAmB,IAAI,EAAE,MAAM,IAAI,MAAM,IAAI;AACnD,UAAM,EAAE,SAAS,OAAO,KAAK;AAC7B,UAAM,QAAQ,SAAU;AAExB,UAAM,EAAE,wBAAwB,WAAY;AAC5C,UAAM,EAAE,uBAAuB,iBAC7B,KAAK,OACL,OACA,gBACF;AAEA,cAAU,kBAAkB;AAC5B,UAAM,EAAE,aAAa,YAAY,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/Skip.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const _sfc_main = {
|
|
2
|
+
props: {
|
|
3
|
+
node: {
|
|
4
|
+
type: void 0,
|
|
5
|
+
default: null
|
|
6
|
+
},
|
|
7
|
+
componentName: {
|
|
8
|
+
type: String
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
setup(__props) {
|
|
12
|
+
return (_ctx, _cache) => {
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export { _sfc_main as default };
|
|
18
|
+
//# sourceMappingURL=Skip.js.map
|
package/dist/Skip.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
package/dist/StandardElement.js
CHANGED
|
@@ -44,14 +44,12 @@ const _sfc_main = {
|
|
|
44
44
|
const attrs = ref({});
|
|
45
45
|
const isButton = ref(false);
|
|
46
46
|
const componentElement = ref(null);
|
|
47
|
-
const transferAttributes = /* @__PURE__ */ new Set(["div", "button"]);
|
|
48
47
|
const tag = nodeNameTagNameMap.get(node.value.nodeName);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
48
|
+
const tmpDataObject = dataObject(node.value, node.value.getAttribute("classes"));
|
|
49
|
+
const classList = tmpDataObject.class ? tmpDataObject.class.join(" ") : void 0;
|
|
50
|
+
attrs.value = __spreadProps(__spreadValues({}, tmpDataObject.attrs), {
|
|
51
|
+
class: classList
|
|
52
|
+
});
|
|
55
53
|
if (node.value.nodeName === "button") {
|
|
56
54
|
isButton.value = true;
|
|
57
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardElement.js","sources":["../src/components/templates/StandardElement.vue"],"sourcesContent":["<template>\n <component\n :is=\"tag\"\n :=\"attrs\"\n @[isButton&&`click`]=\"buttonClicked\"\n ref=\"componentElement\"\n >\n <component\n v-for=\"(c, index) in children\"\n :key=\"'standard_element_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </component>\n</template>\n\n<script setup>\nimport { defineProps, toRefs, ref } from 'vue'\n\nimport { nodeNameTagNameMap } from '../../js/nodemap'\nimport { useChildren } from '../../composables/computed'\nimport { useMethods } from '../../composables/methods'\n\nconst props = defineProps({\n node: {\n type: undefined,\n default: null,\n },\n componentName: {\n type: String,\n },\n})\n\nconst { node } = toRefs(props)\nconst { children } = useChildren(node)\nconst { dataObject } = useMethods()\nconst attrs = ref({})\nconst isButton = ref(false)\nconst componentElement = ref(null)\n\nconst transferAttributes = new Set(['div', 'button'])\nconst tag = nodeNameTagNameMap.get(node.value.nodeName)\n\
|
|
1
|
+
{"version":3,"file":"StandardElement.js","sources":["../src/components/templates/StandardElement.vue"],"sourcesContent":["<template>\n <component\n :is=\"tag\"\n :=\"attrs\"\n @[isButton&&`click`]=\"buttonClicked\"\n ref=\"componentElement\"\n >\n <component\n v-for=\"(c, index) in children\"\n :key=\"'standard_element_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </component>\n</template>\n\n<script setup>\nimport { defineProps, toRefs, ref } from 'vue'\n\nimport { nodeNameTagNameMap } from '../../js/nodemap'\nimport { useChildren } from '../../composables/computed'\nimport { useMethods } from '../../composables/methods'\n\nconst props = defineProps({\n node: {\n type: undefined,\n default: null,\n },\n componentName: {\n type: String,\n },\n})\n\nconst { node } = toRefs(props)\nconst { children } = useChildren(node)\nconst { dataObject } = useMethods()\nconst attrs = ref({})\nconst isButton = ref(false)\nconst componentElement = ref(null)\n\nconst transferAttributes = new Set(['div', 'button'])\nconst tag = nodeNameTagNameMap.get(node.value.nodeName)\n\n// if (transferAttributes.has(node.value.nodeName)) {\nconst tmpDataObject = dataObject(node.value, node.value.getAttribute('classes'))\nconst classList = tmpDataObject.class ? tmpDataObject.class.join(' ') : undefined\nattrs.value = {\n ...tmpDataObject.attrs,\n class: classList,\n}\n// }\nif (node.value.nodeName === 'button') {\n isButton.value = true\n}\n\nfunction buttonClicked() {\n if (componentElement.value.getAttribute('aria-selected') === 'false') {\n const parentElement = componentElement.value.parentElement\n let panels = []\n for (const child of parentElement.children) {\n const el = document.getElementById(child.id)\n el.setAttribute(\n 'aria-selected',\n el.getAttribute('aria-selected') === 'true' ? 'false' : 'true',\n )\n panels.push({ id: child.getAttribute('aria-controls') })\n }\n for (const panel of panels) {\n const el = document.getElementById(panel.id)\n if (el.hasAttribute('hidden')) {\n el.removeAttribute('hidden')\n } else {\n el.setAttribute('hidden', '')\n }\n }\n }\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,EAAE,SAAS,OAAO,KAAK;AAC7B,UAAM,EAAE,aAAa,YAAY,IAAI;AACrC,UAAM,EAAE,eAAe,WAAY;AACnC,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,mBAAmB,IAAI,IAAI;AAGjC,UAAM,MAAM,mBAAmB,IAAI,KAAK,MAAM,QAAQ;AAGtD,UAAM,gBAAgB,WAAW,KAAK,OAAO,KAAK,MAAM,aAAa,SAAS,CAAC;AAC/E,UAAM,YAAY,cAAc,QAAQ,cAAc,MAAM,KAAK,GAAG,IAAI;AACxE,UAAM,QAAQ,iCACT,cAAc,QADL;AAAA,MAEZ,OAAO;AAAA,IACT;AAEA,QAAI,KAAK,MAAM,aAAa,UAAU;AACpC,eAAS,QAAQ;AAAA,IACnB;AAEA,6BAAyB;AACvB,UAAI,iBAAiB,MAAM,aAAa,eAAe,MAAM,SAAS;AACpE,cAAM,gBAAgB,iBAAiB,MAAM;AAC7C,YAAI,SAAS,CAAE;AACf,mBAAW,SAAS,cAAc,UAAU;AAC1C,gBAAM,KAAK,SAAS,eAAe,MAAM,EAAE;AAC3C,aAAG,aACD,iBACA,GAAG,aAAa,eAAe,MAAM,SAAS,UAAU,MACzD;AACD,iBAAO,KAAK,EAAE,IAAI,MAAM,aAAa,eAAe,GAAG;AAAA,QACxD;AACD,mBAAW,SAAS,QAAQ;AAC1B,gBAAM,KAAK,SAAS,eAAe,MAAM,EAAE;AAC3C,cAAI,GAAG,aAAa,QAAQ,GAAG;AAC7B,eAAG,gBAAgB,QAAQ;AAAA,UACnC,OAAa;AACL,eAAG,aAAa,UAAU,EAAE;AAAA,UAC7B;AAAA,QACF;AAAA,MACF;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/entry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Vue3Katex from "@hsorby/vue3-katex";
|
|
2
2
|
import "katex/dist/katex.min.css";
|
|
3
|
-
import { openBlock, createElementBlock, createElementVNode, toDisplayString, pushScopeId, popScopeId, computed, defineAsyncComponent, toRefs,
|
|
3
|
+
import { openBlock, createElementBlock, createElementVNode, toDisplayString, pushScopeId, popScopeId, computed, defineAsyncComponent, toRefs, Fragment, renderList, unref, createBlock, resolveDynamicComponent, ref, watch } from "vue";
|
|
4
4
|
import { useRouter, useRoute } from "vue-router";
|
|
5
5
|
import { useStore } from "vuex";
|
|
6
6
|
import { pathToRegexp } from "path-to-regexp";
|
|
@@ -17,9 +17,12 @@ const determineRouteUrl = (route) => {
|
|
|
17
17
|
fullPath = fullPath.replace(route.hash, "");
|
|
18
18
|
}
|
|
19
19
|
const matched = fullPath.match(regex);
|
|
20
|
-
let base =
|
|
21
|
-
if (matched
|
|
22
|
-
base = matched[0]
|
|
20
|
+
let base = void 0;
|
|
21
|
+
if (matched !== null) {
|
|
22
|
+
base = matched[0];
|
|
23
|
+
if (matched[matched.length - 1]) {
|
|
24
|
+
base = matched[0].replace(`/${matched[matched.length - 1]}`, "");
|
|
25
|
+
}
|
|
23
26
|
}
|
|
24
27
|
return base;
|
|
25
28
|
};
|
|
@@ -126,6 +129,7 @@ const nodeNameTemplateNameMap = /* @__PURE__ */ new Map([
|
|
|
126
129
|
["caption_number", "CaptionNumber"],
|
|
127
130
|
["download_reference", "DownloadReference"],
|
|
128
131
|
["footnote_reference", "FootnoteReference"],
|
|
132
|
+
["index", "Skip"],
|
|
129
133
|
["line_block", "LineBlock"],
|
|
130
134
|
["literal_block", "LiteralBlock"],
|
|
131
135
|
["math_block", "MathBlock"],
|
|
@@ -189,6 +193,8 @@ function __variableDynamicImportRuntime1__(path) {
|
|
|
189
193
|
return import("./Reference.js");
|
|
190
194
|
case "../components/templates/Section.vue":
|
|
191
195
|
return import("./Section.js");
|
|
196
|
+
case "../components/templates/Skip.vue":
|
|
197
|
+
return import("./Skip.js");
|
|
192
198
|
case "../components/templates/StandardElement.vue":
|
|
193
199
|
return import("./StandardElement.js");
|
|
194
200
|
case "../components/templates/Text.vue":
|
|
@@ -265,6 +271,8 @@ function __variableDynamicImportRuntime0__(path) {
|
|
|
265
271
|
return import("./Reference.js");
|
|
266
272
|
case "../components/templates/Section.vue":
|
|
267
273
|
return import("./Section.js");
|
|
274
|
+
case "../components/templates/Skip.vue":
|
|
275
|
+
return import("./Skip.js");
|
|
268
276
|
case "../components/templates/StandardElement.vue":
|
|
269
277
|
return import("./StandardElement.js");
|
|
270
278
|
case "../components/templates/Text.vue":
|
|
@@ -435,10 +443,10 @@ const _sfc_main$1 = {
|
|
|
435
443
|
},
|
|
436
444
|
setup(__props) {
|
|
437
445
|
const props = __props;
|
|
438
|
-
const { element
|
|
446
|
+
const { element } = toRefs(props);
|
|
439
447
|
const { children } = useChildren(element);
|
|
440
448
|
return (_ctx, _cache) => {
|
|
441
|
-
return openBlock(), createElementBlock("div", { id:
|
|
449
|
+
return openBlock(), createElementBlock("div", { id: __props.id }, [
|
|
442
450
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (c, index) => {
|
|
443
451
|
return openBlock(), createBlock(resolveDynamicComponent(c.component), {
|
|
444
452
|
key: "document_component_" + index,
|
|
@@ -517,44 +525,46 @@ const _sfc_main = {
|
|
|
517
525
|
}, scrollDelay.value);
|
|
518
526
|
}
|
|
519
527
|
watch(route, (to) => {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
if (to.
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
528
|
+
const routeURL = determineRouteUrl(to);
|
|
529
|
+
if (routeURL !== void 0) {
|
|
530
|
+
if (previousRoute.path === void 0 || to.path !== previousRoute.path) {
|
|
531
|
+
const pageName = constructPageNameFromRoute(to);
|
|
532
|
+
fetchPageData(to.path, routeURL, pageName);
|
|
533
|
+
if (to.hash) {
|
|
534
|
+
setTimeout(() => {
|
|
535
|
+
let hash = to.hash;
|
|
536
|
+
if (hash.startsWith("#")) {
|
|
537
|
+
hash = hash.slice(1);
|
|
538
|
+
}
|
|
539
|
+
const elem = document.getElementById(hash);
|
|
540
|
+
if (elem) {
|
|
541
|
+
followScrollTarget(elem);
|
|
542
|
+
}
|
|
543
|
+
}, scrollDelay.value);
|
|
544
|
+
}
|
|
545
|
+
} else if (to.path === previousRoute.path && to.hash) {
|
|
546
|
+
let hash = to.hash;
|
|
547
|
+
if (hash.startsWith("#")) {
|
|
548
|
+
hash = hash.slice(1);
|
|
549
|
+
}
|
|
550
|
+
const elem = document.getElementById(hash);
|
|
551
|
+
if (elem) {
|
|
552
|
+
window.scrollTo({
|
|
553
|
+
top: elem.offsetTop,
|
|
554
|
+
behavior: "smooth"
|
|
555
|
+
});
|
|
556
|
+
}
|
|
545
557
|
}
|
|
546
558
|
}
|
|
547
559
|
previousRoute.path = to.path;
|
|
548
560
|
previousRoute.hash = to.hash;
|
|
549
561
|
}, { flush: "pre", immediate: true, deep: true });
|
|
550
|
-
function fetchPageData(
|
|
551
|
-
let pageName = constructPageNameFromRoute(routeTo);
|
|
562
|
+
function fetchPageData(currentPath, routeURL, pageName) {
|
|
552
563
|
if (!pageName) {
|
|
553
564
|
pageName = indexFileName.value;
|
|
554
565
|
}
|
|
555
566
|
const resolvedImagesBaseURL = imagesBaseURL.value === "" ? `${baseURL.value}/_images` : imagesBaseURL.value;
|
|
556
567
|
const resolvedDownloadBaseURL = downloadBaseURL.value === "" ? `${baseURL.value}/_downloads` : downloadBaseURL.value;
|
|
557
|
-
const routeURL = determineRouteUrl(routeTo);
|
|
558
568
|
store.dispatch("sphinx/fetchPage", {
|
|
559
569
|
page_name: pageName,
|
|
560
570
|
page_route: routeURL,
|
|
@@ -562,18 +572,15 @@ const _sfc_main = {
|
|
|
562
572
|
page_downloads: resolvedDownloadBaseURL,
|
|
563
573
|
page_images: resolvedImagesBaseURL
|
|
564
574
|
}).then((response) => {
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
}
|
|
575
|
-
});
|
|
576
|
-
}
|
|
575
|
+
element.value = response;
|
|
576
|
+
id.value = "page_" + pageName.replace("/", "_");
|
|
577
|
+
}).catch(() => {
|
|
578
|
+
router.push({
|
|
579
|
+
name: pageNotFoundName.value,
|
|
580
|
+
query: {
|
|
581
|
+
path: currentPath
|
|
582
|
+
}
|
|
583
|
+
});
|
|
577
584
|
});
|
|
578
585
|
}
|
|
579
586
|
return (_ctx, _cache) => {
|
|
@@ -663,6 +670,7 @@ const actions = {
|
|
|
663
670
|
return documentElement;
|
|
664
671
|
}).catch(() => {
|
|
665
672
|
commit("REMOVE_INFLIGHT", { routeURL: page_route, id: page_name });
|
|
673
|
+
throw "Page not found";
|
|
666
674
|
});
|
|
667
675
|
commit("ADD_INFLIGHT", { routeURL: page_route, page_name, pending });
|
|
668
676
|
return pending;
|
package/dist/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sources":["../src/js/utilities.js","../plugin-vue:export-helper","../src/js/nodemap.js","../src/composables/computed.js","../src/components/templates/Document.vue","../src/components/SphinxPage.vue","../src/services/SphinxService.js","../src/store/modules/sphinx.js","../src/entry.js"],"sourcesContent":["import { pathToRegexp } from \"path-to-regexp\"\nimport { renderBlockQuote } from \"./renderfcns\"\n\nexport const decodeHTML = encoded => {\n let elem = document.createElement('textarea')\n elem.innerHTML = encoded\n return elem.value\n}\n\nexport const determineRouteUrl = route => {\n const regex = pathToRegexp(route.matched[0].path)\n let fullPath = route.fullPath\n if (route.hash) {\n fullPath = fullPath.replace(route.hash, '')\n }\n const matched = fullPath.match(regex)\n let base = matched[0]\n if (matched[matched.length - 1]) {\n base = matched[0].replace(`/${matched[matched.length - 1]}`, '')\n }\n return base\n}\n\nexport const constructPageNameFromRoute = route => {\n let pageName = undefined\n try {\n pageName = route.params.pageName.join('/')\n } catch (_) {\n pageName = route.params.pageName\n }\n return pageName\n}\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","export const nodeNameTagNameMap = new Map([\n ['bullet_list', 'ul'],\n ['button', 'button'],\n ['definition', 'dd'],\n ['definition_list', 'dl'],\n ['definition_list_item', 'dt'],\n ['div', 'div'],\n ['emphasis', 'em'],\n ['enumerated_list', 'ol'],\n ['glossary', 'div'],\n ['inline', 'span'],\n ['label', 'span'],\n ['list_item', 'li'],\n ['line', 'p'],\n ['paragraph', 'p'],\n ['rubric', 'h3'],\n ['strong', 'strong'],\n ['subscript', 'sub'],\n ['superscript', 'sup'],\n ['table', 'table'],\n ['tbody', 'tbody'],\n ['entry', 'td'],\n ['row', 'tr'],\n ['thead', 'thead'],\n ['term', 'dt'],\n ['title_reference', 'cite'],\n])\n\nexport const nodeNameTemplateNameMap = new Map([\n ['#text', 'Text'],\n ['block_quote', 'BlockQuote'],\n ['caption', 'FigureCaption'],\n ['caption_number', 'CaptionNumber'],\n ['download_reference', 'DownloadReference'],\n ['footnote_reference', 'FootnoteReference'],\n ['line_block', 'LineBlock'],\n ['literal_block', 'LiteralBlock'],\n ['math_block', 'MathBlock'],\n ['number_reference', 'NumberReference'],\n])\n","import { computed, defineAsyncComponent } from 'vue'\n\nimport ErrorComponent from '../components/Error.vue'\nimport LoadingComponent from '../components/Loading.vue'\nimport { nodeNameTagNameMap, nodeNameTemplateNameMap } from '../js/nodemap'\n\nfunction defineChildComponent(name, node) {\n let properties = undefined\n if (node.nodeName === '#text') {\n if (!node.nodeValue.trim()) {\n return null\n }\n properties = {\n text: node.nodeValue,\n }\n } else if (node.nodeName === 'title') {\n let parentNode = node.parentNode\n let depth = 0\n let isTopic = false\n if (parentNode.nodeName === 'topic') {\n isTopic = true\n } else {\n while (parentNode) {\n // && parentNode.nodeName !== ('SphinxPage' should now be 'document' but maybe this is no longer requied).\n if (parentNode.nodeName === 'section') {\n depth += 1\n }\n parentNode = parentNode.parentNode\n }\n }\n properties = {\n depth,\n isTopic,\n }\n }\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction defineColgroupComponent(node, colspecs) {\n const name = 'ColumnGroup'\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n \n const properties = {\n colspecs\n }\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction mapToComponentName(name) {\n let componentName =\n name.charAt(0).toUpperCase() + name.slice(1)\n if (nodeNameTemplateNameMap.has(name)) {\n componentName = nodeNameTemplateNameMap.get(name)\n } else if (nodeNameTagNameMap.has(name)) {\n componentName = 'StandardElement'\n }\nreturn componentName\n}\n\nfunction addTGroup(components, node, columns) {\n if (node === null) {\n return components\n }\n\n let colspecs = []\n for (const colspec of node.querySelectorAll('colspec')) {\n colspecs.push(colspec.getAttribute('colwidth'))\n }\n\n if (colspecs.length !== columns) {\n console.log('Something is not right.')\n }\n components.push(defineColgroupComponent(node, colspecs))\n\n return components\n}\n\nfunction addComponents(components, node) {\n if (node === null) {\n return components\n }\n\n let childTarget = null\n for (const child of node.childNodes) {\n const childName = child.nodeName\n if (childName === 'compact_paragraph') {\n // Skip over this wrapper and directly add its children to this component.\n components = addComponents(components, child)\n } else if (childName === 'tgroup') {\n // Skip over these wrappers and directly add their children to this component.\n const columnCount = Number(child.getAttribute('cols'))\n components = addTGroup(components, child, columnCount)\n components = addComponents(components, child)\n } else if (childName === 'colspec') {\n // Ignore this element completely, this element is dealt with by 'tgroup'.\n } else {\n if (childName === 'target') {\n childTarget = child.getAttribute('refid')\n } else {\n if (childName !== '#text' && childTarget) {\n child.setAttribute('id', childTarget)\n childTarget = ''\n }\n const componentName = mapToComponentName(childName)\n const item = defineChildComponent(componentName, child)\n if (item) {\n components.push(item)\n }\n }\n }\n }\n\n return components\n}\n\nexport function useChildren(element) {\n const children = computed(() => {\n return addComponents([], element.value)\n })\n\n return {\n children,\n }\n}\n\nexport function useClasses(element) {\n const classes = computed(() => {\n let classesString = element.value.getAttribute('classes')\n let classes = []\n if (classesString) {\n classes = classesString.split(' ')\n }\n return [element.value.nodeName.toLowerCase(), ...classes]\n })\n\n return {\n classes\n }\n}\n","<template>\n <div :id=\"id\">\n <component\n v-for=\"(c, index) in children\"\n :key=\"'document_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </div>\n</template>\n\n<script setup>\nimport { defineProps, toRefs } from 'vue'\n\nimport { useChildren } from '../../composables/computed'\n\nconst props = defineProps({\n element: {\n type: undefined,\n default: { empty: true },\n },\n id: {\n type: String,\n default: '',\n },\n})\n\nconst { element, id } = toRefs(props)\nconst { children } = useChildren(element)\n\n</script>\n","<template>\n <document :element=\"element\" :id=\"id\" />\n</template>\n\n<script setup>\nimport { defineProps, ref, toRefs, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\n\nimport { determineRouteUrl, constructPageNameFromRoute } from '../js/utilities'\n\nimport Document from './templates/Document.vue'\n\nconst props = defineProps({\n baseURL: {\n type: String,\n default: '/',\n },\n downloadBaseURL: {\n type: String,\n default: '',\n },\n imagesBaseURL: {\n type: String,\n default: '',\n },\n indexFileName: {\n type: String,\n default: 'index',\n },\n pageNotFoundName: {\n type: String,\n default: '404',\n },\n scrollDelay: {\n type: Number,\n default: 200,\n },\n})\n\nconst {\n baseURL,\n downloadBaseURL,\n imagesBaseURL,\n indexFileName,\n pageNotFoundName,\n scrollDelay,\n} = toRefs(props)\n\nconst router = useRouter()\nconst route = useRoute()\nconst store = useStore()\n\nlet element = ref(null)\nlet scrollToTarget = ref(undefined)\nlet id = ref('')\nlet previousRoute = {\n path: undefined,\n hash: undefined,\n}\n\nfunction followScrollTarget(elem) {\n setTimeout(() => {\n scrollToTarget.value = elem.offsetTop\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n setTimeout(() => {\n if (scrollToTarget.value !== elem.offsetTop) {\n followScrollTarget(elem)\n }\n }, 10)\n }, scrollDelay.value)\n}\n\nwatch(\n route,\n (to) => {\n if (previousRoute.path === undefined || to.path !== previousRoute.path) {\n fetchPageData(to)\n if (to.hash) {\n setTimeout(() => {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n followScrollTarget(elem)\n }\n }, scrollDelay.value)\n }\n } else if (to.path === previousRoute.path && to.hash) {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n }\n }\n previousRoute.path = to.path\n previousRoute.hash = to.hash\n },\n { flush: 'pre', immediate: true, deep: true },\n)\n\nfunction fetchPageData(routeTo) {\n let pageName = constructPageNameFromRoute(routeTo)\n if (!pageName) {\n pageName = indexFileName.value\n }\n const resolvedImagesBaseURL =\n imagesBaseURL.value === ''\n ? `${baseURL.value}/_images`\n : imagesBaseURL.value\n const resolvedDownloadBaseURL =\n downloadBaseURL.value === ''\n ? `${baseURL.value}/_downloads`\n : downloadBaseURL.value\n const routeURL = determineRouteUrl(routeTo)\n\n store\n .dispatch('sphinx/fetchPage', {\n page_name: pageName,\n page_route: routeURL,\n page_url: baseURL.value,\n page_downloads: resolvedDownloadBaseURL,\n page_images: resolvedImagesBaseURL,\n })\n .then((response) => {\n if (response) {\n element.value = response\n id.value = 'page_' + pageName.replace('/', '_')\n } else {\n router.push({\n name: pageNotFoundName.value,\n params: {\n type: 'page',\n message: `Could not find Sphinx page '${pageName}.xml'.`,\n },\n })\n }\n })\n}\n</script>\n","import axios from 'axios'\n\nconst apiClient = axios.create({\n withCredentials: false,\n headers: {\n Accept: 'text/xml',\n 'Content-Type': 'text/xml',\n },\n timeout: 10000,\n})\n\nexport default {\n getPage(baseURL, page) {\n return apiClient.get(`${baseURL}/${page}.xml`)\n },\n}\n","import SphinxService from '../../services/SphinxService'\n\nexport const namespaced = true\n\nexport const state = {\n pages: new Map(),\n urlMap: new Map(),\n inflight: new Map(),\n downloadURLs: new Map(),\n imagesURLs: new Map(),\n}\n\nexport const mutations = {\n APPEND_PAGE(state, { routeURL, page }) {\n let pages = state.pages.get(routeURL)\n if (!pages) {\n pages = []\n }\n pages.push(page)\n state.pages.set(routeURL, pages)\n },\n ADD_INFLIGHT(state, { routeURL, page_name, pending }) {\n let inflightMap = state.inflight.get(routeURL)\n if (!inflightMap) {\n inflightMap = new Map()\n }\n inflightMap.set(page_name, pending)\n state.inflight.set(routeURL, inflightMap)\n },\n REMOVE_INFLIGHT(state, { routeURL, id }) {\n state.inflight.get(routeURL).delete(id)\n },\n // SET_DOWNLOADS_URL(state, { routeURL, url }) {\n // state.downloadsURLs.set(routeURL, url)\n // },\n // SET_IMAGES_URL(state, { routeURL, url }) {\n // state.imagesURLs.set(routeURL, url)\n // },\n REGISTER_ROUTE_URL(state, { baseURL, routeURL, downloadsURL, imagesURL }) {\n const registeredURL = state.pages.get(routeURL)\n if (!registeredURL) {\n state.pages.set(routeURL, [])\n state.urlMap.set(routeURL, baseURL)\n state.downloadURLs.set(routeURL, downloadsURL)\n state.imagesURLs.set(routeURL, imagesURL)\n state.inflight.set(routeURL, new Map())\n }\n },\n}\n\nexport const actions = {\n fetchPage({ commit, getters }, payload) {\n const page_name = payload.page_name\n const page_route = payload.page_route\n const base_url = payload.page_url\n commit('REGISTER_ROUTE_URL', {\n baseURL: base_url,\n routeURL: page_route,\n downloadsURL: payload.page_downloads,\n imagesURL: payload.page_images,\n })\n const existingPage = getters.getPageById(page_route, page_name)\n if (existingPage) {\n return Promise.resolve(existingPage)\n }\n if (getters.isInflight(page_route, page_name)) {\n return getters.getInflight(page_route, page_name)\n }\n const pending = SphinxService.getPage(base_url, page_name)\n .then(response => {\n let parser = new DOMParser()\n let xmlDoc = parser.parseFromString(response.data, 'text/xml')\n const documentElement = xmlDoc.querySelector('document')\n commit('APPEND_PAGE', { routeURL: page_route, page: documentElement })\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n return documentElement\n })\n .catch(() => {\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n })\n commit('ADD_INFLIGHT', { routeURL: page_route, page_name, pending })\n return pending\n },\n // setDownloadURL({ commit }, { page_route, url }) {\n // commit('SET_DOWNLOAD_URL', { routeURL: page_route, url })\n // },\n // setImagesURL({ commit }, { page_route, url }) {\n // commit('SET_IMAGES_URL', { routeURL: page_route, url })\n // },\n}\n\nexport const getters = {\n getPageById: state => (routeURL, id) => {\n return state.pages.get(routeURL).find(page => page.id === id)\n },\n getInflight: state => (routeURL, id) => {\n return state.inflight.get(routeURL).get(id)\n },\n isInflight: state => (routeURL, id) => {\n return !!state.inflight.get(routeURL).get(id)\n },\n getBaseUrl: state => routeURL => {\n return state.urlMap.get(routeURL)\n },\n getDownloadURL: state => routeURL => {\n return state.downloadURLs.get(routeURL)\n },\n getImagesURL: state => routeURL => {\n return state.imagesURLs.get(routeURL)\n },\n}\n","import Vue3Katex from '@hsorby/vue3-katex'\nimport 'katex/dist/katex.min.css'\n\nimport SphinxPage from './components/SphinxPage.vue'\nimport * as SphinxStore from './store/modules/sphinx'\n\nfunction installVue3SphinxXml(app, options = {}) {\n if (!options.store) {\n throw 'Please provide a store!!'\n }\n\n options.store.registerModule('sphinx', SphinxStore)\n app.use(Vue3Katex, options.katex)\n}\n\nexport { installVue3SphinxXml, SphinxPage }\n\n"],"names":["ErrorComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.js","sources":["../src/js/utilities.js","../plugin-vue:export-helper","../src/js/nodemap.js","../src/composables/computed.js","../src/components/templates/Document.vue","../src/components/SphinxPage.vue","../src/services/SphinxService.js","../src/store/modules/sphinx.js","../src/entry.js"],"sourcesContent":["import { pathToRegexp } from 'path-to-regexp'\n\nexport const decodeHTML = (encoded) => {\n let elem = document.createElement('textarea')\n elem.innerHTML = encoded\n return elem.value\n}\n\nexport const determineRouteUrl = (route) => {\n const regex = pathToRegexp(route.matched[0].path)\n let fullPath = route.fullPath\n if (route.hash) {\n fullPath = fullPath.replace(route.hash, '')\n }\n const matched = fullPath.match(regex)\n let base = undefined\n if (matched !== null) {\n base = matched[0]\n if (matched[matched.length - 1]) {\n base = matched[0].replace(`/${matched[matched.length - 1]}`, '')\n }\n }\n return base\n}\n\nexport const constructPageNameFromRoute = (route) => {\n let pageName = undefined\n try {\n pageName = route.params.pageName.join('/')\n } catch (_) {\n pageName = route.params.pageName\n }\n return pageName\n}\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","export const nodeNameTagNameMap = new Map([\n ['bullet_list', 'ul'],\n ['button', 'button'],\n ['definition', 'dd'],\n ['definition_list', 'dl'],\n ['definition_list_item', 'dt'],\n ['div', 'div'],\n ['emphasis', 'em'],\n ['enumerated_list', 'ol'],\n ['glossary', 'div'],\n ['inline', 'span'],\n ['label', 'span'],\n ['list_item', 'li'],\n ['line', 'p'],\n ['paragraph', 'p'],\n ['rubric', 'h3'],\n ['strong', 'strong'],\n ['subscript', 'sub'],\n ['superscript', 'sup'],\n ['table', 'table'],\n ['tbody', 'tbody'],\n ['entry', 'td'],\n ['row', 'tr'],\n ['thead', 'thead'],\n ['term', 'dt'],\n ['title_reference', 'cite'],\n])\n\nexport const nodeNameTemplateNameMap = new Map([\n ['#text', 'Text'],\n ['block_quote', 'BlockQuote'],\n ['caption', 'FigureCaption'],\n ['caption_number', 'CaptionNumber'],\n ['download_reference', 'DownloadReference'],\n ['footnote_reference', 'FootnoteReference'],\n ['index', 'Skip'],\n ['line_block', 'LineBlock'],\n ['literal_block', 'LiteralBlock'],\n ['math_block', 'MathBlock'],\n ['number_reference', 'NumberReference'],\n])\n","import { computed, defineAsyncComponent } from 'vue'\n\nimport ErrorComponent from '../components/Error.vue'\nimport LoadingComponent from '../components/Loading.vue'\nimport { nodeNameTagNameMap, nodeNameTemplateNameMap } from '../js/nodemap'\n\nfunction defineChildComponent(name, node) {\n let properties = undefined\n if (node.nodeName === '#text') {\n if (!node.nodeValue.trim()) {\n return null\n }\n properties = {\n text: node.nodeValue,\n }\n } else if (node.nodeName === 'title') {\n let parentNode = node.parentNode\n let depth = 0\n let isTopic = false\n if (parentNode.nodeName === 'topic') {\n isTopic = true\n } else {\n while (parentNode) {\n // && parentNode.nodeName !== ('SphinxPage' should now be 'document' but maybe this is no longer requied).\n if (parentNode.nodeName === 'section') {\n depth += 1\n }\n parentNode = parentNode.parentNode\n }\n }\n properties = {\n depth,\n isTopic,\n }\n }\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction defineColgroupComponent(node, colspecs) {\n const name = 'ColumnGroup'\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n \n const properties = {\n colspecs\n }\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction mapToComponentName(name) {\n let componentName =\n name.charAt(0).toUpperCase() + name.slice(1)\n if (nodeNameTemplateNameMap.has(name)) {\n componentName = nodeNameTemplateNameMap.get(name)\n } else if (nodeNameTagNameMap.has(name)) {\n componentName = 'StandardElement'\n }\nreturn componentName\n}\n\nfunction addTGroup(components, node, columns) {\n if (node === null) {\n return components\n }\n\n let colspecs = []\n for (const colspec of node.querySelectorAll('colspec')) {\n colspecs.push(colspec.getAttribute('colwidth'))\n }\n\n if (colspecs.length !== columns) {\n console.log('Something is not right.')\n }\n components.push(defineColgroupComponent(node, colspecs))\n\n return components\n}\n\nfunction addComponents(components, node) {\n if (node === null) {\n return components\n }\n\n let childTarget = null\n for (const child of node.childNodes) {\n const childName = child.nodeName\n if (childName === 'compact_paragraph') {\n // Skip over this wrapper and directly add its children to this component.\n components = addComponents(components, child)\n } else if (childName === 'tgroup') {\n // Skip over these wrappers and directly add their children to this component.\n const columnCount = Number(child.getAttribute('cols'))\n components = addTGroup(components, child, columnCount)\n components = addComponents(components, child)\n } else if (childName === 'colspec') {\n // Ignore this element completely, this element is dealt with by 'tgroup'.\n } else {\n if (childName === 'target') {\n childTarget = child.getAttribute('refid')\n } else {\n if (childName !== '#text' && childTarget) {\n child.setAttribute('id', childTarget)\n childTarget = ''\n }\n const componentName = mapToComponentName(childName)\n const item = defineChildComponent(componentName, child)\n if (item) {\n components.push(item)\n }\n }\n }\n }\n\n return components\n}\n\nexport function useChildren(element) {\n const children = computed(() => {\n return addComponents([], element.value)\n })\n\n return {\n children,\n }\n}\n\nexport function useClasses(element) {\n const classes = computed(() => {\n let classesString = element.value.getAttribute('classes')\n let classes = []\n if (classesString) {\n classes = classesString.split(' ')\n }\n return [element.value.nodeName.toLowerCase(), ...classes]\n })\n\n return {\n classes\n }\n}\n","<template>\n <div :id=\"id\">\n <component\n v-for=\"(c, index) in children\"\n :key=\"'document_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </div>\n</template>\n\n<script setup>\nimport { defineProps, toRefs } from 'vue'\n\nimport { useChildren } from '../../composables/computed'\n\nconst props = defineProps({\n element: {\n type: undefined,\n default: { empty: true },\n },\n id: {\n type: String,\n default: '',\n },\n})\n\nconst { element } = toRefs(props)\nconst { children } = useChildren(element)\n\n</script>\n","<template>\n <document :element=\"element\" :id=\"id\" />\n</template>\n\n<script setup>\nimport { defineProps, ref, toRefs, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\n\nimport { determineRouteUrl, constructPageNameFromRoute } from '../js/utilities'\n\nimport Document from './templates/Document.vue'\n\nconst props = defineProps({\n baseURL: {\n type: String,\n default: '/',\n },\n downloadBaseURL: {\n type: String,\n default: '',\n },\n imagesBaseURL: {\n type: String,\n default: '',\n },\n indexFileName: {\n type: String,\n default: 'index',\n },\n pageNotFoundName: {\n type: String,\n default: '404',\n },\n scrollDelay: {\n type: Number,\n default: 200,\n },\n})\n\nconst {\n baseURL,\n downloadBaseURL,\n imagesBaseURL,\n indexFileName,\n pageNotFoundName,\n scrollDelay,\n} = toRefs(props)\n\nconst router = useRouter()\nconst route = useRoute()\nconst store = useStore()\n\nlet element = ref(null)\nlet scrollToTarget = ref(undefined)\nlet id = ref('')\nlet previousRoute = {\n path: undefined,\n hash: undefined,\n}\n\nfunction followScrollTarget(elem) {\n setTimeout(() => {\n scrollToTarget.value = elem.offsetTop\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n setTimeout(() => {\n if (scrollToTarget.value !== elem.offsetTop) {\n followScrollTarget(elem)\n }\n }, 10)\n }, scrollDelay.value)\n}\n\nwatch(\n route,\n (to) => {\n const routeURL = determineRouteUrl(to)\n if (routeURL !== undefined) {\n if (previousRoute.path === undefined || to.path !== previousRoute.path) {\n const pageName = constructPageNameFromRoute(to)\n fetchPageData(to.path, routeURL, pageName)\n if (to.hash) {\n setTimeout(() => {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n followScrollTarget(elem)\n }\n }, scrollDelay.value)\n }\n } else if (to.path === previousRoute.path && to.hash) {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n }\n }\n }\n\n previousRoute.path = to.path\n previousRoute.hash = to.hash\n },\n { flush: 'pre', immediate: true, deep: true },\n)\n\nfunction fetchPageData(currentPath, routeURL, pageName) {\n if (!pageName) {\n pageName = indexFileName.value\n }\n const resolvedImagesBaseURL =\n imagesBaseURL.value === ''\n ? `${baseURL.value}/_images`\n : imagesBaseURL.value\n const resolvedDownloadBaseURL =\n downloadBaseURL.value === ''\n ? `${baseURL.value}/_downloads`\n : downloadBaseURL.value\n\n store\n .dispatch('sphinx/fetchPage', {\n page_name: pageName,\n page_route: routeURL,\n page_url: baseURL.value,\n page_downloads: resolvedDownloadBaseURL,\n page_images: resolvedImagesBaseURL,\n })\n .then((response) => {\n element.value = response\n id.value = 'page_' + pageName.replace('/', '_')\n })\n .catch(() => {\n router.push({\n name: pageNotFoundName.value,\n query: {\n path: currentPath,\n },\n })\n })\n}\n</script>\n","import axios from 'axios'\n\nconst apiClient = axios.create({\n withCredentials: false,\n headers: {\n Accept: 'text/xml',\n 'Content-Type': 'text/xml',\n },\n timeout: 10000,\n})\n\nexport default {\n getPage(baseURL, page) {\n return apiClient.get(`${baseURL}/${page}.xml`)\n },\n}\n","import SphinxService from '../../services/SphinxService'\n\nexport const namespaced = true\n\nexport const state = {\n pages: new Map(),\n urlMap: new Map(),\n inflight: new Map(),\n downloadURLs: new Map(),\n imagesURLs: new Map(),\n}\n\nexport const mutations = {\n APPEND_PAGE(state, { routeURL, page }) {\n let pages = state.pages.get(routeURL)\n if (!pages) {\n pages = []\n }\n pages.push(page)\n state.pages.set(routeURL, pages)\n },\n ADD_INFLIGHT(state, { routeURL, page_name, pending }) {\n let inflightMap = state.inflight.get(routeURL)\n if (!inflightMap) {\n inflightMap = new Map()\n }\n inflightMap.set(page_name, pending)\n state.inflight.set(routeURL, inflightMap)\n },\n REMOVE_INFLIGHT(state, { routeURL, id }) {\n state.inflight.get(routeURL).delete(id)\n },\n // SET_DOWNLOADS_URL(state, { routeURL, url }) {\n // state.downloadsURLs.set(routeURL, url)\n // },\n // SET_IMAGES_URL(state, { routeURL, url }) {\n // state.imagesURLs.set(routeURL, url)\n // },\n REGISTER_ROUTE_URL(state, { baseURL, routeURL, downloadsURL, imagesURL }) {\n const registeredURL = state.pages.get(routeURL)\n if (!registeredURL) {\n state.pages.set(routeURL, [])\n state.urlMap.set(routeURL, baseURL)\n state.downloadURLs.set(routeURL, downloadsURL)\n state.imagesURLs.set(routeURL, imagesURL)\n state.inflight.set(routeURL, new Map())\n }\n },\n}\n\nexport const actions = {\n fetchPage({ commit, getters }, payload) {\n const page_name = payload.page_name\n const page_route = payload.page_route\n const base_url = payload.page_url\n commit('REGISTER_ROUTE_URL', {\n baseURL: base_url,\n routeURL: page_route,\n downloadsURL: payload.page_downloads,\n imagesURL: payload.page_images,\n })\n const existingPage = getters.getPageById(page_route, page_name)\n if (existingPage) {\n return Promise.resolve(existingPage)\n }\n if (getters.isInflight(page_route, page_name)) {\n return getters.getInflight(page_route, page_name)\n }\n const pending = SphinxService.getPage(base_url, page_name)\n .then(response => {\n let parser = new DOMParser()\n let xmlDoc = parser.parseFromString(response.data, 'text/xml')\n const documentElement = xmlDoc.querySelector('document')\n commit('APPEND_PAGE', { routeURL: page_route, page: documentElement })\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n return documentElement\n })\n .catch(() => {\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n throw 'Page not found'\n })\n commit('ADD_INFLIGHT', { routeURL: page_route, page_name, pending })\n return pending\n },\n // setDownloadURL({ commit }, { page_route, url }) {\n // commit('SET_DOWNLOAD_URL', { routeURL: page_route, url })\n // },\n // setImagesURL({ commit }, { page_route, url }) {\n // commit('SET_IMAGES_URL', { routeURL: page_route, url })\n // },\n}\n\nexport const getters = {\n getPageById: state => (routeURL, id) => {\n return state.pages.get(routeURL).find(page => page.id === id)\n },\n getInflight: state => (routeURL, id) => {\n return state.inflight.get(routeURL).get(id)\n },\n isInflight: state => (routeURL, id) => {\n return !!state.inflight.get(routeURL).get(id)\n },\n getBaseUrl: state => routeURL => {\n return state.urlMap.get(routeURL)\n },\n getDownloadURL: state => routeURL => {\n return state.downloadURLs.get(routeURL)\n },\n getImagesURL: state => routeURL => {\n return state.imagesURLs.get(routeURL)\n },\n}\n","import Vue3Katex from '@hsorby/vue3-katex'\nimport 'katex/dist/katex.min.css'\n\nimport SphinxPage from './components/SphinxPage.vue'\nimport * as SphinxStore from './store/modules/sphinx'\n\nfunction installVue3SphinxXml(app, options = {}) {\n if (!options.store) {\n throw 'Please provide a store!!'\n }\n\n options.store.registerModule('sphinx', SphinxStore)\n app.use(Vue3Katex, options.katex)\n}\n\nexport { installVue3SphinxXml, SphinxPage }\n"],"names":["ErrorComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue3-sphinx-xml",
|
|
3
|
-
"version": "0.1.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"homepage": "https://github.com/hsorby/vue3-sphinx-xml#readme",
|
|
6
6
|
"repository": {
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
],
|
|
20
20
|
"module": "dist/vue3-sphinx-xml.es.js",
|
|
21
21
|
"files": [
|
|
22
|
-
"dist"
|
|
22
|
+
"dist",
|
|
23
|
+
"README.md"
|
|
23
24
|
],
|
|
24
25
|
"scripts": {
|
|
25
26
|
"build-package": "vite build"
|