citestyle 1.0.1
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/LICENSE +21 -0
- package/README.md +251 -0
- package/package.json +63 -0
- package/src/index.js +31 -0
- package/src/styles/ama.js +1 -0
- package/src/styles/apa.js +1 -0
- package/src/styles/chicago-author-date.js +1 -0
- package/src/styles/harvard.js +1 -0
- package/src/styles/ieee.js +1 -0
- package/src/styles/mla.js +1 -0
- package/src/styles/nature.js +1 -0
- package/src/styles/science.js +1 -0
- package/src/styles/vancouver.js +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Proximify
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Citestyle
|
|
2
|
+
|
|
3
|
+
**Citation formatting for the web.** Format references in any of 10,000+ citation styles with structured, web-native output — semantic HTML, decomposed parts, extracted links, and plain text — all from a ~9KB runtime.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install citestyle
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
```javascript
|
|
10
|
+
import { format } from 'citestyle'
|
|
11
|
+
import * as apa from 'citestyle/styles/apa'
|
|
12
|
+
|
|
13
|
+
const entry = format(apa, {
|
|
14
|
+
type: 'article-journal',
|
|
15
|
+
title: 'Structured citation output for the web',
|
|
16
|
+
author: [{ family: 'Smith', given: 'J. A.' }, { family: 'Doe', given: 'Jane' }],
|
|
17
|
+
issued: { 'date-parts': [[2024]] },
|
|
18
|
+
'container-title': 'Journal of Digital Publishing',
|
|
19
|
+
volume: '8',
|
|
20
|
+
page: '123-145',
|
|
21
|
+
DOI: '10.1234/jdp.2024.001'
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
entry.text // Smith, J. A., & Doe, J. (2024). Structured citation output ...
|
|
25
|
+
entry.html // Semantic HTML with per-field CSS classes and clickable DOI links
|
|
26
|
+
entry.parts // { authors, year, title, container, volume, pages, doi, ... }
|
|
27
|
+
entry.links // { doi: 'https://doi.org/10.1234/jdp.2024.001' }
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
One function call, four representations. Every formatted entry gives you:
|
|
31
|
+
|
|
32
|
+
- **`html`** — Semantic HTML where every field (`.csl-author`, `.csl-title`, `.csl-container`) is a real element you can style with CSS. DOIs and URLs become clickable links automatically.
|
|
33
|
+
- **`text`** — Clean plain text for copy-paste, clipboard, and accessibility.
|
|
34
|
+
- **`parts`** — Decomposed fields (`authors`, `year`, `title`, `container`, `doi`, …) for building publication cards, research profiles, CVs, or any custom layout.
|
|
35
|
+
- **`links`** — Extracted DOIs, URLs, and PDFs for linking without post-processing.
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<!-- entry.html -->
|
|
39
|
+
<span class="csl-entry">
|
|
40
|
+
<span class="csl-author">Smith, J. A., & Doe, J.</span>
|
|
41
|
+
<span class="csl-year">(2024)</span>.
|
|
42
|
+
<span class="csl-title">Structured citation output for the web</span>.
|
|
43
|
+
<i class="csl-container">Journal of Digital Publishing</i>,
|
|
44
|
+
<span class="csl-volume">8</span>, <span class="csl-pages">123–145</span>.
|
|
45
|
+
<a class="csl-doi" href="https://doi.org/10.1234/jdp.2024.001">https://doi.org/…</a>
|
|
46
|
+
</span>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Existing citation processors return flat strings — you get a blob of text and have to regex out the parts. Citestyle gives you structure from the start.
|
|
50
|
+
|
|
51
|
+
## How it works
|
|
52
|
+
|
|
53
|
+
Most citation formatters ship a runtime interpreter that parses style definitions on every page load. Citestyle takes a different approach: it **compiles** [Citation Style Language](https://citationstyles.org/) (CSL) definitions into optimized JavaScript at build time. The style *becomes* the code — no interpreter, no XML parsing at runtime.
|
|
54
|
+
|
|
55
|
+
The same approach behind Tailwind CSS (utility classes → optimized CSS) and GraphQL codegen (schemas → typed runtime code), applied to citation formatting.
|
|
56
|
+
|
|
57
|
+
**Standard styles.** The compiler reads standard `.csl` files from the [official CSL repository](https://github.com/citation-style-language/styles) — the same 10,000+ community-maintained styles that Zotero, Mendeley, and every other reference manager uses. Your institution's custom style, an obscure journal format — if it's valid CSL, it compiles.
|
|
58
|
+
|
|
59
|
+
**Tree-shaking at two levels.** Each compiled style is a standalone ES module. Import APA and not MLA → MLA is never in your bundle. But it goes deeper: each compiled style only imports the specific core helpers it uses. A style with no date formatting doesn't pull in `formatDate`. An interpreter can't do this — it must ship the entire formatting engine because it doesn't know which style will be loaded at runtime. The shared runtime is ~6-8KB; each compiled style adds ~3-5KB. Your first style ships in ~9-13KB total.
|
|
60
|
+
|
|
61
|
+
**Locale terms inlined as constants.** An interpreter loads locale XML (~20KB) as a separate file at runtime — month names, ordinal suffixes, "et al.", "and", punctuation rules. Citestyle resolves all locale terms at compile time and inlines them as string constants. No runtime locale loading, no extra file to fetch. A compiled style for en-US has the terms literally in the code.
|
|
62
|
+
|
|
63
|
+
**Pure functions.** `format(style, item)` has no side effects, no global state, no initialization step. Same input, same output. Works in browsers, Node, edge functions, workers, SSR — anywhere JavaScript runs. The registry is the only stateful piece, and it's opt-in for when you need cross-reference features.
|
|
64
|
+
|
|
65
|
+
**Null safety from group suppression.** Real-world citation data is messy — missing DOIs, no volume number, no editor. CSL handles this through group suppression: if every variable a group references is empty, the entire group — including its delimiters and surrounding punctuation — is suppressed. No dangling commas, no orphaned parentheses, no "undefined" in output. The compiler emits the right conditional structure so this works automatically for any data shape.
|
|
66
|
+
|
|
67
|
+
**Debuggable output.** The compiled JavaScript is readable. When formatting looks wrong, you can open the compiled file and trace exactly which CSL rule produced which output. Stack traces point to the actual formatting logic, not into an XML interpreter.
|
|
68
|
+
|
|
69
|
+
## Quick start
|
|
70
|
+
|
|
71
|
+
### Format one reference
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
import { format } from 'citestyle'
|
|
75
|
+
import * as apa from 'citestyle/styles/apa'
|
|
76
|
+
|
|
77
|
+
const entry = format(apa, item)
|
|
78
|
+
// → { html, text, parts, links }
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Format a list
|
|
82
|
+
|
|
83
|
+
Sort, number, and format multiple items in one call:
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
import { formatAll } from 'citestyle'
|
|
87
|
+
import * as ieee from 'citestyle/styles/ieee'
|
|
88
|
+
|
|
89
|
+
const entries = formatAll(ieee, items)
|
|
90
|
+
// Sorted per IEEE rules, citation numbers assigned
|
|
91
|
+
// → [{ html, text, parts, links }, ...]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Format inline citations
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
import { formatCitation } from 'citestyle'
|
|
98
|
+
import * as apa from 'citestyle/styles/apa'
|
|
99
|
+
|
|
100
|
+
const cite = formatCitation(apa, [
|
|
101
|
+
{ item: smithItem, locator: '42', label: 'page' }
|
|
102
|
+
])
|
|
103
|
+
// → { html: '(Smith, 2024, p. 42)', text: '(Smith, 2024, p. 42)' }
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Documents with cross-references
|
|
107
|
+
|
|
108
|
+
When citations interact across a document — year-suffix disambiguation (2024a, 2024b), name disambiguation, cite collapsing — use a registry:
|
|
109
|
+
|
|
110
|
+
```javascript
|
|
111
|
+
import { createRegistry } from 'citestyle'
|
|
112
|
+
import * as apa from 'citestyle/styles/apa'
|
|
113
|
+
|
|
114
|
+
const registry = createRegistry(apa)
|
|
115
|
+
registry.addItems(references)
|
|
116
|
+
|
|
117
|
+
const entries = registry.getBibliography() // sorted, disambiguated
|
|
118
|
+
const cite = registry.cite([{ id: 'smith2024' }, { id: 'jones2023' }])
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The registry handles year-suffix assignment, name disambiguation (5 rules), bibliography sorting, citation numbering for numeric styles, cite collapsing (`[1-3]` instead of `[1, 2, 3]`), and subsequent-author-substitute. When you don't need these features, `format()` and `formatAll()` are simpler.
|
|
122
|
+
|
|
123
|
+
### Import from BibTeX
|
|
124
|
+
|
|
125
|
+
```javascript
|
|
126
|
+
import { parseBibtex, format } from 'citestyle'
|
|
127
|
+
import * as apa from 'citestyle/styles/apa'
|
|
128
|
+
|
|
129
|
+
const items = parseBibtex(bibtexString)
|
|
130
|
+
const entry = format(apa, items[0])
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Copy citation buttons
|
|
134
|
+
|
|
135
|
+
The separate `text` and `html` outputs map directly to the Clipboard API — paste into Word or Google Docs with formatting intact:
|
|
136
|
+
|
|
137
|
+
```javascript
|
|
138
|
+
import { format, exportBibtex } from 'citestyle'
|
|
139
|
+
import * as apa from 'citestyle/styles/apa'
|
|
140
|
+
|
|
141
|
+
const entry = format(apa, item)
|
|
142
|
+
|
|
143
|
+
// Copy as rich text (pastes with italic titles, clickable DOIs)
|
|
144
|
+
navigator.clipboard.write([new ClipboardItem({
|
|
145
|
+
'text/html': new Blob([entry.html], { type: 'text/html' }),
|
|
146
|
+
'text/plain': new Blob([entry.text], { type: 'text/plain' }),
|
|
147
|
+
})])
|
|
148
|
+
|
|
149
|
+
// Copy as BibTeX
|
|
150
|
+
navigator.clipboard.writeText(exportBibtex([item]))
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Pre-compiled styles
|
|
154
|
+
|
|
155
|
+
Nine widely used styles ship pre-compiled:
|
|
156
|
+
|
|
157
|
+
```javascript
|
|
158
|
+
import * as apa from 'citestyle/styles/apa' // APA 7th edition
|
|
159
|
+
import * as mla from 'citestyle/styles/mla' // MLA 9th edition
|
|
160
|
+
import * as chicago from 'citestyle/styles/chicago-author-date' // Chicago 17th (author-date)
|
|
161
|
+
import * as ieee from 'citestyle/styles/ieee' // IEEE
|
|
162
|
+
import * as vancouver from 'citestyle/styles/vancouver' // Vancouver
|
|
163
|
+
import * as harvard from 'citestyle/styles/harvard' // Harvard (Cite Them Right)
|
|
164
|
+
import * as ama from 'citestyle/styles/ama' // AMA 11th edition
|
|
165
|
+
import * as nature from 'citestyle/styles/nature' // Nature
|
|
166
|
+
import * as science from 'citestyle/styles/science' // Science (AAAS)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Need a different style? Compile any `.csl` file:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
npm install -D @citestyle/compiler
|
|
173
|
+
npx citestyle compile chicago-fullnote-bibliography.csl -o chicago-notes.js
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
```javascript
|
|
177
|
+
import { format } from 'citestyle'
|
|
178
|
+
import * as chicagoNotes from './chicago-notes.js'
|
|
179
|
+
const entry = format(chicagoNotes, item)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Testing
|
|
183
|
+
|
|
184
|
+
Citestyle is tested against the [official CSL test suite](https://github.com/citation-style-language/test-suite) — 66 fixtures covering the spec's formatting constructs (names, dates, conditionals, groups, sorting, text-case, disambiguation, collapsing). Beyond the test suite, 44 real-world styles have been compiled and stress-tested against reference data, spanning disciplines from psychology (APA) to law (Bluebook) to medicine (Vancouver, BMJ, AMA, PLOS) to chemistry (ACS) to German (DGPs) and Portuguese (ABNT) academic conventions.
|
|
185
|
+
|
|
186
|
+
420 automated tests cover the full API surface: the compiler, the core formatting engine, the citation registry, and the BibTeX and RIS parsers.
|
|
187
|
+
|
|
188
|
+
CSL spec coverage is comprehensive for web use cases — the complete rendering model (text, macros, conditionals, groups with suppression, names with et-al and particles, dates with ranges and seasons, numbers, labels, formatting, affixes, text-case with nocase protection, sorting, page ranges), plus cross-reference features (year-suffix disambiguation, name disambiguation with 5 rules, cite collapsing, subsequent-author substitute). Footnote-centric features (ibid, subsequent position) are deferred — they target print and word-processor workflows, not the web.
|
|
189
|
+
|
|
190
|
+
## How it compares
|
|
191
|
+
|
|
192
|
+
| | citeproc-js | citeproc-rs | Citation.js | **Citestyle** |
|
|
193
|
+
|---|---|---|---|---|
|
|
194
|
+
| **Architecture** | Runtime interpreter | WASM interpreter | Runtime interpreter | **Build-time compiler** |
|
|
195
|
+
| **Bundle** | ~120KB + locale XML | ~200KB+ WASM | ~50KB + deps | **~9-13KB** |
|
|
196
|
+
| **Output** | Flat string | Flat string | Flat string | **HTML + text + parts + links** |
|
|
197
|
+
| **Auto-linking** | No | No | No | **DOIs and URLs** |
|
|
198
|
+
| **CSS classes** | No | No | No | **Per-field** |
|
|
199
|
+
| **Tree-shakable** | No | No | Partially | **Yes** |
|
|
200
|
+
| **TypeScript** | No | N/A | Partial | **Full** |
|
|
201
|
+
|
|
202
|
+
## Packages
|
|
203
|
+
|
|
204
|
+
`citestyle` bundles the common use case: core runtime, registry, pre-compiled styles, and BibTeX parsing. For finer control, install scoped packages directly:
|
|
205
|
+
|
|
206
|
+
| Package | What it does | When to install separately |
|
|
207
|
+
|---|---|---|
|
|
208
|
+
| [`@citestyle/core`](https://www.npmjs.com/package/@citestyle/core) | Shared formatting runtime (~6-8KB) | Building a custom formatter on the low-level API |
|
|
209
|
+
| [`@citestyle/registry`](https://www.npmjs.com/package/@citestyle/registry) | Citation state (~5-8KB) | Need the registry without BibTeX parsing |
|
|
210
|
+
| [`@citestyle/styles`](https://www.npmjs.com/package/@citestyle/styles) | 9 pre-compiled styles (~3-5KB each) | Only need styles + core, nothing else |
|
|
211
|
+
| [`@citestyle/bibtex`](https://www.npmjs.com/package/@citestyle/bibtex) | BibTeX ↔ CSL-JSON | Only need BibTeX conversion |
|
|
212
|
+
| [`@citestyle/ris`](https://www.npmjs.com/package/@citestyle/ris) | RIS ↔ CSL-JSON | Working with PubMed/RIS data |
|
|
213
|
+
| [`@citestyle/compiler`](https://www.npmjs.com/package/@citestyle/compiler) | CSL XML → JS compiler | Compiling custom `.csl` files |
|
|
214
|
+
| [`@citestyle/types`](https://www.npmjs.com/package/@citestyle/types) | TypeScript type definitions | Type-only imports for TS projects |
|
|
215
|
+
|
|
216
|
+
## Architecture
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
┌─────────────────────────────────────────────────────┐
|
|
220
|
+
│ BUILD TIME │
|
|
221
|
+
│ │
|
|
222
|
+
│ apa.csl ──→ Citestyle Compiler ──→ apa.js (~3-5KB) │
|
|
223
|
+
│ Locale terms resolved and inlined as constants │
|
|
224
|
+
└─────────────────────────────────────────────────────┘
|
|
225
|
+
│
|
|
226
|
+
▼
|
|
227
|
+
┌─────────────────────────────────────────────────────┐
|
|
228
|
+
│ RUNTIME │
|
|
229
|
+
│ │
|
|
230
|
+
│ @citestyle/core (~6-8KB) │
|
|
231
|
+
│ Names · dates · text-case · numbers · HTML │
|
|
232
|
+
│ ▲ ▲ │
|
|
233
|
+
│ │ │ │
|
|
234
|
+
│ Compiled Style Registry │
|
|
235
|
+
│ (imports core) (year-suffix, sort) │
|
|
236
|
+
│ │ │ │
|
|
237
|
+
│ CSL-JSON ──→ { html, text, parts, links } │
|
|
238
|
+
└─────────────────────────────────────────────────────┘
|
|
239
|
+
│
|
|
240
|
+
▼
|
|
241
|
+
┌─────────────────────────────────────────────────────┐
|
|
242
|
+
│ I/O LAYER │
|
|
243
|
+
│ │
|
|
244
|
+
│ @citestyle/bibtex @citestyle/ris │
|
|
245
|
+
│ BibTeX ↔ CSL-JSON RIS ↔ CSL-JSON │
|
|
246
|
+
└─────────────────────────────────────────────────────┘
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## License
|
|
250
|
+
|
|
251
|
+
MIT
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "citestyle",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Citation formatting for the web — compile CSL styles into lightweight JavaScript. Structured output (HTML, text, parts, links) from any of 10,000+ citation styles in ~9-13KB.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": "./src/index.js",
|
|
8
|
+
"./styles/apa": "./src/styles/apa.js",
|
|
9
|
+
"./styles/mla": "./src/styles/mla.js",
|
|
10
|
+
"./styles/chicago-author-date": "./src/styles/chicago-author-date.js",
|
|
11
|
+
"./styles/ieee": "./src/styles/ieee.js",
|
|
12
|
+
"./styles/vancouver": "./src/styles/vancouver.js",
|
|
13
|
+
"./styles/harvard": "./src/styles/harvard.js",
|
|
14
|
+
"./styles/ama": "./src/styles/ama.js",
|
|
15
|
+
"./styles/nature": "./src/styles/nature.js",
|
|
16
|
+
"./styles/science": "./src/styles/science.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"src"
|
|
20
|
+
],
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"keywords": [
|
|
23
|
+
"citation",
|
|
24
|
+
"bibliography",
|
|
25
|
+
"csl",
|
|
26
|
+
"bibtex",
|
|
27
|
+
"apa",
|
|
28
|
+
"mla",
|
|
29
|
+
"chicago",
|
|
30
|
+
"ieee",
|
|
31
|
+
"harvard",
|
|
32
|
+
"vancouver",
|
|
33
|
+
"reference",
|
|
34
|
+
"academic",
|
|
35
|
+
"scholar",
|
|
36
|
+
"doi",
|
|
37
|
+
"latex",
|
|
38
|
+
"ris",
|
|
39
|
+
"citation-style-language",
|
|
40
|
+
"citeproc",
|
|
41
|
+
"formatting"
|
|
42
|
+
],
|
|
43
|
+
"author": "Proximify",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"repository": {
|
|
46
|
+
"type": "git",
|
|
47
|
+
"url": "git+https://github.com/uniweb/csl.git",
|
|
48
|
+
"directory": "packages/citestyle"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://github.com/uniweb/csl/tree/main/packages/citestyle#readme",
|
|
51
|
+
"bugs": {
|
|
52
|
+
"url": "https://github.com/uniweb/csl/issues"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=20.19.0"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"@citestyle/core": "1.0.0",
|
|
59
|
+
"@citestyle/registry": "1.0.0",
|
|
60
|
+
"@citestyle/styles": "1.0.0",
|
|
61
|
+
"@citestyle/bibtex": "1.0.0"
|
|
62
|
+
}
|
|
63
|
+
}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* citestyle — Citation formatting for the web
|
|
3
|
+
*
|
|
4
|
+
* Re-exports the core API from @citestyle/* packages.
|
|
5
|
+
* Import styles separately: import * as apa from 'citestyle/styles/apa'
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Registry — the primary API for most users
|
|
9
|
+
export { createRegistry, format, formatAll, formatCitation } from '@citestyle/registry'
|
|
10
|
+
|
|
11
|
+
// BibTeX import/export
|
|
12
|
+
export { parseBibtex, exportBibtex, convertLatex } from '@citestyle/bibtex'
|
|
13
|
+
|
|
14
|
+
// Core utilities (advanced usage)
|
|
15
|
+
export {
|
|
16
|
+
formatNames,
|
|
17
|
+
formatDate,
|
|
18
|
+
titleCase,
|
|
19
|
+
sentenceCase,
|
|
20
|
+
capitalize,
|
|
21
|
+
applyTextCase,
|
|
22
|
+
stripNocaseSpans,
|
|
23
|
+
ordinal,
|
|
24
|
+
longOrdinal,
|
|
25
|
+
roman,
|
|
26
|
+
pageRange,
|
|
27
|
+
escapeHtml,
|
|
28
|
+
stripFormatting,
|
|
29
|
+
toHtml,
|
|
30
|
+
validateItem,
|
|
31
|
+
} from '@citestyle/core'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/ama'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/apa'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/chicago-author-date'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/harvard'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/ieee'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/mla'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/nature'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/science'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@citestyle/styles/vancouver'
|