diff --git a/docs/api.md b/docs/api.md
index 6298079..f167e6c 100644
--- a/docs/api.md
+++ b/docs/api.md
@@ -2,4 +2,5 @@
sidebar_position: 5
---
-# Public API
\ No newline at end of file
+# Public API
+TODO
\ No newline at end of file
diff --git a/docs/data-model.md b/docs/data-model.md
deleted file mode 100644
index affd97e..0000000
--- a/docs/data-model.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-sidebar_position: 3
----
-
-# Data model
\ No newline at end of file
diff --git a/docs/data-model/_category_.json b/docs/data-model/_category_.json
new file mode 100644
index 0000000..730ffb4
--- /dev/null
+++ b/docs/data-model/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Data model",
+ "position": 3,
+ "link": {
+ "type": "doc",
+ "id": "data-model"
+ }
+}
\ No newline at end of file
diff --git a/docs/data-model/assets/data-model.png b/docs/data-model/assets/data-model.png
new file mode 100644
index 0000000..103b539
Binary files /dev/null and b/docs/data-model/assets/data-model.png differ
diff --git a/docs/data-model/data-model.md b/docs/data-model/data-model.md
new file mode 100644
index 0000000..273edfa
--- /dev/null
+++ b/docs/data-model/data-model.md
@@ -0,0 +1,19 @@
+# Data model
+
+The OpenAIRE Research Graph comprises several types of entities and relationships among them.
+
+The latest version of the JSON schema can be found on [Bulk downloads](../download).
+
+![Data mode](./assets/data-model.png)
+
+The figure above, presents the graph's data model.
+Its main entities are described in brief below:
+
+* Research Products represent the outcomes of research activities.
+* Organizations correspond to companies or research institutions involved in projects,
+responsible for operating data sources or consisting the affiliations of Product creators.
+* Funders (e.g. EC, Wellcome Trust) are agencies responsible for a list of Funding Streams.
+* Funding Streams represent investments (funding actions) from Funders (e.g. FP7 or H2020).
+* Projects are research projects funded by a Funding Stream of a Funder.
+* Data Sources are the resources used to collect metadata for the graph objects
+
diff --git a/docs/data-model/entities.md b/docs/data-model/entities.md
new file mode 100644
index 0000000..ae19526
--- /dev/null
+++ b/docs/data-model/entities.md
@@ -0,0 +1,5 @@
+---
+sidebar_position: 1
+---
+
+# Entities
\ No newline at end of file
diff --git a/docs/data-sources.md b/docs/data-model/relationships.md
similarity index 65%
rename from docs/data-sources.md
rename to docs/data-model/relationships.md
index c4ad3fe..446af4d 100644
--- a/docs/data-sources.md
+++ b/docs/data-model/relationships.md
@@ -2,4 +2,4 @@
sidebar_position: 2
---
-# Data sources
\ No newline at end of file
+# Relationships
\ No newline at end of file
diff --git a/docs/graph-provision/_category_.json b/docs/data-provision/_category_.json
similarity index 82%
rename from docs/graph-provision/_category_.json
rename to docs/data-provision/_category_.json
index 1329c49..d16f944 100644
--- a/docs/graph-provision/_category_.json
+++ b/docs/data-provision/_category_.json
@@ -1,5 +1,5 @@
{
- "label": "Graph provision",
+ "label": "Data provision",
"position": 6,
"link": {
"type": "generated-index",
diff --git a/docs/graph-provision/assets/dedup-results.png b/docs/data-provision/assets/dedup-results.png
similarity index 100%
rename from docs/graph-provision/assets/dedup-results.png
rename to docs/data-provision/assets/dedup-results.png
diff --git a/docs/data-provision/data-sources.md b/docs/data-provision/data-sources.md
new file mode 100644
index 0000000..3cb91c7
--- /dev/null
+++ b/docs/data-provision/data-sources.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 1
+---
+
+# Data sources
+TODO
\ No newline at end of file
diff --git a/docs/graph-provision/deduplication/_category_.json b/docs/data-provision/deduplication/_category_.json
similarity index 89%
rename from docs/graph-provision/deduplication/_category_.json
rename to docs/data-provision/deduplication/_category_.json
index f67ffbe..be4ad14 100644
--- a/docs/graph-provision/deduplication/_category_.json
+++ b/docs/data-provision/deduplication/_category_.json
@@ -1,6 +1,6 @@
{
"label": "Deduplication",
- "position": 1,
+ "position": 2,
"link": {
"type": "generated-index",
"description": "5 minutes to learn the most important Docusaurus concepts."
diff --git a/docs/graph-provision/deduplication/clustering-functions.md b/docs/data-provision/deduplication/clustering-functions.md
similarity index 100%
rename from docs/graph-provision/deduplication/clustering-functions.md
rename to docs/data-provision/deduplication/clustering-functions.md
diff --git a/docs/graph-provision/deduplication/organizations.md b/docs/data-provision/deduplication/organizations.md
similarity index 100%
rename from docs/graph-provision/deduplication/organizations.md
rename to docs/data-provision/deduplication/organizations.md
diff --git a/docs/graph-provision/deduplication/research-products.md b/docs/data-provision/deduplication/research-products.md
similarity index 100%
rename from docs/graph-provision/deduplication/research-products.md
rename to docs/data-provision/deduplication/research-products.md
diff --git a/docs/graph-provision/inference/_category_.json b/docs/data-provision/inference/_category_.json
similarity index 90%
rename from docs/graph-provision/inference/_category_.json
rename to docs/data-provision/inference/_category_.json
index c1c56c4..6dbf3a8 100644
--- a/docs/graph-provision/inference/_category_.json
+++ b/docs/data-provision/inference/_category_.json
@@ -1,6 +1,6 @@
{
"label": "Inference and annotations",
- "position": 2,
+ "position": 3,
"link": {
"type": "generated-index",
"description": "5 minutes to learn the most important Docusaurus concepts."
diff --git a/docs/data-provision/inference/impact-scores.md b/docs/data-provision/inference/impact-scores.md
new file mode 100644
index 0000000..79a63e9
--- /dev/null
+++ b/docs/data-provision/inference/impact-scores.md
@@ -0,0 +1,73 @@
+---
+sidebar_position: 2
+---
+
+# Impact scores
+TODO - add intro
+
+## Citation Count (CC)
+
+This is the most widely used scientific impact indicator, which sums all citations received by each article. The citation count of a
+publication $i$ corresponds to the in-degree of the corresponding node in the underlying citation network: $s_i = \sum_{j} A_{i,j}$,
+where $A$ is the adjacency matrix of the network (i.e., $A_{i,j}=1$ when paper $j$ cites paper $i$, while $A_{i,j}=0$ otherwise).
+Citation count can be viewed as a measure of a publication's overall impact, since it conveys the number of other works that directly
+drew on it.
+
+## "Incubation" Citation Count (iCC)
+
+This measure is essentially a time-restricted version of the citation count, where the time window is distinct for each paper, i.e.,
+only citations $y$ years after its publication are counted (usually, $y=3$). The "incubation" citation count of a paper $i$ is
+calculated as: $s_i = \sum_{j,t_j \leq t_i+3} A_{i,j}$, where $A$ is the adjacency matrix and $t_j, t_i$ are the citing and cited paper's
+publication years, respectively. $t_i$ is cited paper $i$'s publication year. iCC can be seen as an indicator of a paper's initial momentum
+(impulse) directly after its publication.
+
+## PageRank (PR)
+
+Originally developed to rank Web pages, PageRank has been also widely used to rank publications in citation
+networks. In this latter context, a publication's PageRank
+score also serves as a measure of its influence. In particular, the PageRank score of a publication is calculated
+as its probability of being read by a researcher that either randomly selects publications to read or selects
+publications based on the references of her latest read. Formally, the score of a publication $i$ is given by:
+
+$$
+s_i = \alpha \cdot \sum_{j} P_{i,j} \cdot s_j + (1-\alpha) \cdot \frac{1}{N}
+$$
+
+where $P$ is the stochastic transition matrix, which corresponds to the column normalised version of adjacency
+matrix $A$, $\alpha \in [0,1]$, and $N$ is the number of publications in the citation network. The first addend
+of the equation corresponds to the selection (with probability $\alpha$) of following a reference, while the
+second one to the selection of randomly choosing any publication in the network. It should be noted that the
+score of each publication relies of the score of publications citing it (the algorithm is executed iteratively
+until all scores converge). As a result, PageRank differentiates citations based on the importance of citing
+articles, thus alleviating the corresponding issue of the Citation Count.
+
+## RAM
+
+RAM is essentially a modified Citation Count, where recent citations are considered of higher importance compared
+to older ones. Hence, it better captures the popularity of publications. This "time-awareness" of citations
+alleviates the bias of methods like Citation Count and PageRank against recently published articles, which have
+not had "enough" time to gather as many citations. The RAM score of each paper $i$ is calculated as follows:
+
+$$
+s_i = \sum_j{R_{i,j}}
+$$
+
+where $R$ is the so-called Retained Adjacency Matrix (RAM) and $R_{i,j}=\gamma^{t_c-t_j}$ when publication $j$ cites publication
+$i$, and $R_{i,j}=0$ otherwise. Parameter $\gamma \in (0,1)$, $t_c$ corresponds to the current year and $t_j$ corresponds to the
+publication year of citing article $j$.
+
+## AttRank
+
+AttRank is a PageRank variant that alleviates its bias against recent publications (i.e., it is tailored to capture popularity).
+AttRank achieves this by modifying PageRank's probability of randomly selecting a publication. Instead of using a uniform probability,
+AttRank defines it based on a combination of the publication's age and the citations it received in recent years. The AttRank score
+of each publication $i$ is calculated based on:
+
+$$
+s_i = \alpha \cdot \sum_{j} P_{i,j} \cdot s_j
+ + \beta \cdot Att(i)+ \gamma \cdot c \cdot e^{-\rho \cdot (t_c-t_i)}
+$$
+
+where $\alpha + \beta + \gamma =1$ and $\alpha,\beta,\gamma \in [0,1]$. $Att(i)$ denotes a recent attention-based score for publication $i$,
+which reflects its share of citations in the $y$ most recent years, $t_i$ is the publication year of article $i$, $t_c$ denotes the current
+year, and $c$ is a normalisation constant. Finally, $P$ is the stochastic transition matrix.
\ No newline at end of file
diff --git a/docs/graph-provision/inference/mining.md b/docs/data-provision/inference/mining.md
similarity index 100%
rename from docs/graph-provision/inference/mining.md
rename to docs/data-provision/inference/mining.md
diff --git a/docs/faq.md b/docs/faq.md
index 8530506..1932293 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 8
+sidebar_position: 9
---
# FAQ
diff --git a/docs/graph-provision/inference/impact-scores.md b/docs/graph-provision/inference/impact-scores.md
deleted file mode 100644
index b38c5de..0000000
--- a/docs/graph-provision/inference/impact-scores.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-sidebar_position: 2
----
-
-# Impact scores
\ No newline at end of file
diff --git a/docs/license.md b/docs/license.md
index 2b4cac6..80f475e 100644
--- a/docs/license.md
+++ b/docs/license.md
@@ -1,5 +1,6 @@
---
-sidebar_position: 9
+sidebar_position: 10
---
-# License
\ No newline at end of file
+# License
+TODO
\ No newline at end of file
diff --git a/docs/publications.md b/docs/publications.md
new file mode 100644
index 0000000..27a9174
--- /dev/null
+++ b/docs/publications.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 7
+---
+
+# Related publications
+TODO
diff --git a/docs/services.md b/docs/services.md
index 4534a3c..ee763ea 100644
--- a/docs/services.md
+++ b/docs/services.md
@@ -1,6 +1,20 @@
---
-sidebar_position: 7
+sidebar_position: 8
---
# Graph-based services
+
+## Explore
+TODO
+
+## Provide
+TODO
+
+## Connect
+TODO
+
+## Monitor
+TODO
+
+## Develop
TODO
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 30ce8e5..97df166 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -3,6 +3,8 @@
const lightCodeTheme = require('prism-react-renderer/themes/github');
const darkCodeTheme = require('prism-react-renderer/themes/dracula');
+const math = require('remark-math');
+const katex = require('rehype-katex');
/** @type {import('@docusaurus/types').Config} */
const config = {
@@ -40,6 +42,9 @@ const config = {
// Remove this to remove the "edit this page" links.
// editUrl:
// 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
+
+ remarkPlugins: [math],
+ rehypePlugins: [katex],
},
blog: {
showReadingTime: true,
@@ -50,7 +55,16 @@ const config = {
}),
],
],
-
+ // required for katex styling of equations
+ stylesheets: [
+ {
+ href: 'https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css',
+ type: 'text/css',
+ integrity:
+ 'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
+ crossorigin: 'anonymous',
+ },
+ ],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
diff --git a/package-lock.json b/package-lock.json
index 07f978a..76404e3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,9 +12,12 @@
"@docusaurus/preset-classic": "2.0.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
+ "hast-util-is-element": "^1.1.0",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "react-dom": "^17.0.2",
+ "rehype-katex": "^5.0.0",
+ "remark-math": "^3.0.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.0.1"
@@ -3203,6 +3206,11 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
},
+ "node_modules/@types/katex": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz",
+ "integrity": "sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg=="
+ },
"node_modules/@types/mdast": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
@@ -6518,6 +6526,15 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-is-element": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz",
+ "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hast-util-parse-selector": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
@@ -6569,6 +6586,20 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/hast-util-to-text": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz",
+ "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==",
+ "dependencies": {
+ "hast-util-is-element": "^1.0.0",
+ "repeat-string": "^1.0.0",
+ "unist-util-find-after": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/hastscript": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
@@ -7391,6 +7422,29 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/katex": {
+ "version": "0.13.24",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.24.tgz",
+ "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==",
+ "funding": [
+ "https://opencollective.com/katex",
+ "https://github.com/sponsors/katex"
+ ],
+ "dependencies": {
+ "commander": "^8.0.0"
+ },
+ "bin": {
+ "katex": "cli.js"
+ }
+ },
+ "node_modules/katex/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -9666,6 +9720,41 @@
"jsesc": "bin/jsesc"
}
},
+ "node_modules/rehype-katex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz",
+ "integrity": "sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg==",
+ "dependencies": {
+ "@types/katex": "^0.11.0",
+ "hast-util-to-text": "^2.0.0",
+ "katex": "^0.13.0",
+ "rehype-parse": "^7.0.0",
+ "unified": "^9.0.0",
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-parse": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz",
+ "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==",
+ "dependencies": {
+ "hast-util-from-parse5": "^6.0.0",
+ "parse5": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-parse/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
"node_modules/relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
@@ -9693,6 +9782,15 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/remark-math": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-3.0.1.tgz",
+ "integrity": "sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/remark-mdx": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
@@ -11262,6 +11360,18 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/unist-util-find-after": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz",
+ "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==",
+ "dependencies": {
+ "unist-util-is": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
"node_modules/unist-util-generated": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
@@ -14610,6 +14720,11 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
},
+ "@types/katex": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz",
+ "integrity": "sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg=="
+ },
"@types/mdast": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz",
@@ -17082,6 +17197,11 @@
"web-namespaces": "^1.0.0"
}
},
+ "hast-util-is-element": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz",
+ "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ=="
+ },
"hast-util-parse-selector": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
@@ -17123,6 +17243,16 @@
"zwitch": "^1.0.0"
}
},
+ "hast-util-to-text": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz",
+ "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==",
+ "requires": {
+ "hast-util-is-element": "^1.0.0",
+ "repeat-string": "^1.0.0",
+ "unist-util-find-after": "^3.0.0"
+ }
+ },
"hastscript": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
@@ -17694,6 +17824,21 @@
"universalify": "^2.0.0"
}
},
+ "katex": {
+ "version": "0.13.24",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.24.tgz",
+ "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==",
+ "requires": {
+ "commander": "^8.0.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
+ }
+ }
+ },
"keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -19290,6 +19435,35 @@
}
}
},
+ "rehype-katex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz",
+ "integrity": "sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg==",
+ "requires": {
+ "@types/katex": "^0.11.0",
+ "hast-util-to-text": "^2.0.0",
+ "katex": "^0.13.0",
+ "rehype-parse": "^7.0.0",
+ "unified": "^9.0.0",
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "rehype-parse": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz",
+ "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==",
+ "requires": {
+ "hast-util-from-parse5": "^6.0.0",
+ "parse5": "^6.0.0"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ }
+ }
+ },
"relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
@@ -19310,6 +19484,11 @@
"resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz",
"integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ=="
},
+ "remark-math": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-3.0.1.tgz",
+ "integrity": "sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q=="
+ },
"remark-mdx": {
"version": "1.6.22",
"resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
@@ -20459,6 +20638,14 @@
"resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz",
"integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw=="
},
+ "unist-util-find-after": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz",
+ "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==",
+ "requires": {
+ "unist-util-is": "^4.0.0"
+ }
+ },
"unist-util-generated": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
diff --git a/package.json b/package.json
index 618333a..5ec9cf5 100644
--- a/package.json
+++ b/package.json
@@ -18,9 +18,12 @@
"@docusaurus/preset-classic": "2.0.1",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
+ "hast-util-is-element": "^1.1.0",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "react-dom": "^17.0.2",
+ "rehype-katex": "^5.0.0",
+ "remark-math": "^3.0.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.0.1"