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"