diff --git a/packages/preview/alexandria/0.1.2/.gitignore b/packages/preview/alexandria/0.1.2/.gitignore new file mode 100644 index 0000000000..2f7896d1d1 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/.gitignore @@ -0,0 +1 @@ +target/ diff --git a/packages/preview/alexandria/0.1.2/CHANGELOG.md b/packages/preview/alexandria/0.1.2/CHANGELOG.md new file mode 100644 index 0000000000..c2bb8dd2d7 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/CHANGELOG.md @@ -0,0 +1,62 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +
+Migration guide from v0.1.x + + + +
+ +### Added + +### Changed + +### Deprecated + +### Removed + +### Fixed + +### Security + +## [0.1.2] - 2025-03-08 + +### Added +- support for `bytes` as a bib or csl file parameter, to be up-to-date with Typst 0.13's `bibliography()` API + +## [0.1.1] - 2025-02-12 + +### Added +- `load-bibliography` that stores bib data for later retrieval +- `get-bibliography` that retrieves the data +- `render-bibliography` that renders the bib data +- add details (type, title, author, ...) to data available for bibliography users +- add support for custom CSL styles loaded from files + +### Fixed +- fixed a deprecation warning when running Typst 0.13 +- split bibliographyx into load, get and render parts + +## [0.1.0] - 2025-02-06 + +### Added + +- plugin for rendering references and citations +- Typst wrapper for + - collecting citations + - calling the plugin + - processing its results (rendering structured data into styled content) +- Tests for IEEE and APA references in English and German (APA tests are deactivated to to something that's probably a Typst bug) + + +[Unreleased]: https://github.com/SillyFreak/typst-alexandria/compare/v0.1.2...HEAD +[0.1.2]: https://github.com/SillyFreak/typst-alexandria/releases/tag/v0.1.2 +[0.1.1]: https://github.com/SillyFreak/typst-alexandria/releases/tag/v0.1.1 +[0.1.0]: https://github.com/SillyFreak/typst-alexandria/releases/tag/v0.1.0 diff --git a/packages/preview/alexandria/0.1.2/LICENSE b/packages/preview/alexandria/0.1.2/LICENSE new file mode 100644 index 0000000000..52b4250d96 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/LICENSE @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2024 Clemens Koza + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/preview/alexandria/0.1.2/README.md b/packages/preview/alexandria/0.1.2/README.md new file mode 100644 index 0000000000..be7933e08f --- /dev/null +++ b/packages/preview/alexandria/0.1.2/README.md @@ -0,0 +1,38 @@ +# Alexandria + +This package provides an alternative to the built-in bibliography to allow a single document to have multiple bibliographies. + +This package currently has a few limitations, such as not being able to collapse citations yet, but more general support is planned soon. + +## Getting Started + +To add this package to your project, use this: + +```typ +#import "@preview/alexandria:0.1.2": * + +#show: alexandria(prefix: "x-", read: path => read(path)) + +... + +#bibliographyx( + "bibliography.bib", + // title: auto is not yet supported so it needs to be specified + title: "Bibliography", +) +``` + + + + + + +## Usage + +See the [manual](docs/manual.pdf) for details. + +## License + +Parts of the Rust plugin that interfaces with the [Hayagriva](https://github.com/typst/hayagriva) citation library are based on [typst-library's `bibliography.rs`](https://github.com/typst/typst/blob/26e65bfef5b1da7f6c72e1409237cf03fb5d6069/crates/typst-library/src/model/bibliography.rs). Likewise, the example bibliographies are taken or adapted from [typst-dev-assets' `works.bib`](https://github.com/typst/typst-dev-assets/blob/1dba4bea22e5e19597fbf5f321b047ff7626e2d0/files/bib/works.bib). Both are licensed from Typst's authors under the Apache License 2.0. + +The example CSL style [`ieee.csl`](https://github.com/citation-style-language/styles/blob/fd6cb3e81762055d107839c3c288c359985f81c8/ieee.csl) is taken from the [CSL project](https://citationstyles.org/) who provide it under the [Creative Commons Attribution-ShareAlike 3.0 Unported license](https://creativecommons.org/licenses/by-sa/3.0/). diff --git a/packages/preview/alexandria/0.1.2/docs/manual.pdf b/packages/preview/alexandria/0.1.2/docs/manual.pdf new file mode 100644 index 0000000000..826d87bdbc Binary files /dev/null and b/packages/preview/alexandria/0.1.2/docs/manual.pdf differ diff --git a/packages/preview/alexandria/0.1.2/gallery/example.pdf b/packages/preview/alexandria/0.1.2/gallery/example.pdf new file mode 100644 index 0000000000..35baed0751 Binary files /dev/null and b/packages/preview/alexandria/0.1.2/gallery/example.pdf differ diff --git a/packages/preview/alexandria/0.1.2/src/alexandria.wasm b/packages/preview/alexandria/0.1.2/src/alexandria.wasm new file mode 100755 index 0000000000..6e6446fd09 Binary files /dev/null and b/packages/preview/alexandria/0.1.2/src/alexandria.wasm differ diff --git a/packages/preview/alexandria/0.1.2/src/hayagriva.typ b/packages/preview/alexandria/0.1.2/src/hayagriva.typ new file mode 100644 index 0000000000..cfc03cadd0 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/src/hayagriva.typ @@ -0,0 +1,59 @@ +#let _p = plugin("alexandria.wasm") + +#let names = { + // Typst 0.13: `cbor.decode` is deprecated, directly pass bytes to `cbor` instead + let decode = if sys.version < version(0, 13, 0) { cbor.decode } else { cbor } + + decode(_p.names()) +} + +#let read( + sources, + full, + style, + locale, + citations, +) = { + // Typst 0.13: `cbor.decode` is deprecated, directly pass bytes to `cbor` instead + let decode = if sys.version < version(0, 13, 0) { cbor.decode } else { cbor } + + let config = cbor.encode((sources: sources, full: full, style: style, locale: locale, citations: citations)) + decode(_p.read(config)) +} + +#let render(body) = { + if type(body) == array { + body.map(render).join() + } else if "text" in body { + let body = body.text + set text(style: "italic") if body.font-style == "italic" + // TODO this is an absolute weight and not an offset + set text(weight: "bold") if body.font-weight == "bold" + set text(weight: "light") if body.font-weight == "light" + show: it => { + if body.font-variant == "small-caps" { + it = smallcaps(it) + } + if body.text-decoration == "underline" { + it = underline(it) + } + if body.vertical-align == "sup" { + it = h(0pt, weak: true) + super(it) + } else if body.vertical-align == "sub" { + it = h(0pt, weak: true) + sub(it) + } + it + } + body.text + } else if "elem" in body { + let body = body.elem + // TODO handle body.display when present + render(body.children) + } else if "link" in body { + let body = body.link + link(body.url, render(body.text)) + } else { + set text(red) + repr(body) + } +} diff --git a/packages/preview/alexandria/0.1.2/src/internal.typ b/packages/preview/alexandria/0.1.2/src/internal.typ new file mode 100644 index 0000000000..e4e099ee76 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/src/internal.typ @@ -0,0 +1,13 @@ +#let locale() = { + let locale = text.lang + if text.region != none { locale += "-" + text.region } + locale +} + +#let csl-to-string(csl) = { + if type(csl) in (str, bytes) { return csl } + + let csl = repr(csl).slice(1, -1) + assert.ne(csl, "..", message: "only named CSL styles can be converted to strings") + csl +} diff --git a/packages/preview/alexandria/0.1.2/src/lib.typ b/packages/preview/alexandria/0.1.2/src/lib.typ new file mode 100644 index 0000000000..e99a425d53 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/src/lib.typ @@ -0,0 +1,289 @@ +#import "hayagriva.typ" + + +#let citation(prefix, key, form: "normal", style: auto) = { + import "state.typ": * + import "internal.typ": * + + assert(str(key).starts-with(prefix), message: "Can only refer to an entry with the given prefix.") + + let index = get-citation-index(prefix) + context add-citation(prefix, ( + key: str(key).slice(prefix.len()), + form: form, + ..if style != auto { (style: csl-to-string(style)) }, + locale: locale(), + )) + context link(key, hayagriva.render(get-citation(prefix, index))) +} + +/// This configuration function should be called as a show rule at the beginning of the document. +/// The function makes sure that `ref()` and `cite()` commands can refer to Alexandria's custom +/// bibliography entries and stores configuration for use by @@load-bibliography(). +/// +/// ```typ +/// #show: alexandria(prefix: "x-", read: path => read(path)) +/// ``` +/// +/// The `read` parameter kann be skipped, in which case file paths can not be used for bibliography +/// files and custom styles. This means you will need to pass `bytes` values to @@bibliographyx() +/// and @@load-bibliography() instead of paths. +/// +/// -> function +#let alexandria( + /// a prefix that identifies labels referring to Alexandria bibliographies. Bibliography entries + /// will automatically get that prefix prepended. + /// -> string + prefix: none, + /// pass ```typc path => read(path)``` into this parameter so that Alexandria can read your + /// bibliography files. + /// -> function + read: none, +) = body => { + let read-value = read + import "state.typ": * + + assert.ne(prefix, none, message: "usage without a prefix is not yet supported") + // assert.ne(read-value, none, message: "read is required; provide a function `path => read(path)`") + + let match(key) = prefix == none or str(key).starts-with(prefix) + + set-read(read-value) + register-prefix(prefix) + + show ref: it => { + if not match(it.target) { + return it + } + + citation(prefix, it.target, form: cite.form, style: cite.style) + } + + show cite: it => { + if not match(it.key) { + return it + } + + context citation(prefix, it.key, form: it.form, style: it.style) + } + + body +} + +/// Loads an additional bibliography. This reads the relevant bibliography file(s) and stores the +/// extracted data in a state for later retrieval via @@get-bibliography(), but does not render +/// anything yet. For simple use cases, @@bibliographyx() can be used directly. +/// +/// Even though this only loads the bibliography, this function already requires knowledge of the +/// citations that appear in the document, both to know which references to include (for non-`full` +/// bibliographies) and in what styles, forms and languages these citations should be rendered. +/// +/// The interface is similar to the built-in +/// #link("https://typst.app/docs/reference/model/bibliography/")[`bibliography()`], but not all +/// features are supported (yet). In particular, the default values reflect `bibliography()`, but +/// some of these are not supported yet and need to be set manually. Also, the title parameter (only +/// needed for rendering) is skipped. +/// +/// -> content +#let load-bibliography( + /// The path to or binary file contents of the bibliography file(s). + /// -> string | bytes | array + path, + /// The prefix for which reference labels should be provided and citations should be processed. + /// -> string | auto + prefix: auto, + /// Whether to render the full bibliography or only the references that are used in the document. + /// -> boolean + full: false, + /// The style of the bibliography. Either a #link("https://typst.app/docs/reference/model/bibliography/#parameters-style")[built-in style], + /// a file name that is read by the `read()` function registered via @@alexandria(), or binary + /// file contents of a csl file. + /// -> string | bytes + style: "ieee", +) = { + import "state.typ": * + import "internal.typ": * + + let path = path + if type(path) != array { + path = (path,) + } + + context { + let prefix = prefix + if prefix == auto { + prefix = get-only-prefix() + assert.ne(prefix, none, message: "when using multiple custom bibliographies, you must specify the prefix for each") + } + + let sources = path.map(path => read(path)) + + let style = csl-to-string(style) + if style in hayagriva.names { + style = (built-in: style) + } else { + style = (custom: read(style).data) + } + + let locale = locale() + set-bibliography(prefix, citations => hayagriva.read( + sources, + full, + style, + locale, + citations, + )) + } +} + +/// Returns a previously loaded bibliography. This is used implicitly by @@bibliographyx() and +/// Alexandria citations to retrieve rendered data, and can be used directly for more complex use +/// cases. Usually, the returned data will be ultimately rendered using @@render-bibliography(). +/// +/// The result is a dictionary with the following keys: +/// - `prefix`: the string prefix used by Alexandria to identify this bibliography (and passed to +/// this function), used as a prefix for all labels rendered by Alexandria. +/// - `references`: an array of reference dictionaries which can be rendered into a bibliography. +/// The array is sorted by the appearance of references according to the style used. +/// - `citations`: an array of citations dictionaries which can be rendered into the various +/// citations in the document. The array is sorted by the appearance of citations in the document. +/// - `hanging-indent`: a boolean indicating whether the citation style uses a hanging indent for +/// its entries. +/// +/// The `references` in turn each contain +/// - `key`: the reference key without prefix. +/// - `reference`: a representation of the Typst content that should be rendered; this is processed +/// by @@render-bibliography() to produce the actual context. +/// - optionally `prefix`: this is _not_ the Alexandria prefix but another Typst content +/// representation for styles that require it. For example, in IEEE style this would represent +/// "[1]" and so on. +/// - `details`: a dictionary containing several fields of structured data about the reference. +/// Among these are `type`, `title`, `author`, `date`, etc. A full list can be found in the +/// #link("https://github.com/typst/hayagriva/blob/main/docs/file-format.md")[Hayagriva docs]. +/// +/// The `citations` are representations of the Typst content that should be rendered at their +/// respective citation sites. +/// +/// This function is contextual. +/// +/// -> dict +#let get-bibliography( + /// The prefix for which the bibliography should be retrieved. + /// -> string + prefix, +) = { + import "state.typ": * + + get-bibliography(prefix) +} + +/// Renders the provided bibliography data (as returned by @@get-bibliography();) with the given +/// title. For simple use cases, @@bibliographyx() can be used directly, which also handles the data +/// retrieval. +/// +/// You will usually only need to call this directly if you _don't_ pass the exact return value of +/// @@get-bibliography() as an argument. Instead, you'll want to preprocess that data, e.g. by +/// filtering out some `references` entries that should appear elsewhere in the document. Note that +/// generally, you'll need to ultimately render all references, or you'll get unresolved citations. +/// +/// -> content +#let render-bibliography( + /// The bibliography data + /// -> dict + bib, + /// The title of the bibliography. Note that `auto` is currently not supported. + /// -> none | content | auto + title: auto, +) = { + assert.ne(title, auto, message: "automatic title is not yet supported") + + if title != none { + [= #title] + } + + set par(hanging-indent: 1.5em) if bib.hanging-indent + + if bib.references.any(e => e.prefix != none) { + grid( + columns: 2, + // rows: (), + column-gutter: 0.65em, + // row-gutter: 13.2pt, + row-gutter: par.spacing, + // fill: none, + // align: auto, + // stroke: (:), + // inset: (:), + ..for e in bib.references { + ( + { + [#metadata(none)#label(bib.prefix + e.key)] + if e.prefix != none { + hayagriva.render(e.prefix) + } + }, + hayagriva.render(e.reference), + ) + }, + ) + } else { + let gutter = v(par.spacing, weak: true) + for (i, e) in bib.references.enumerate() { + if i != 0 { gutter } + [#metadata(none)#label(bib.prefix + e.key)] + hayagriva.render(e.reference) + } + } +} + +/// Renders an additional bibliography. The interface is similar to the built-in +/// #link("https://typst.app/docs/reference/model/bibliography/")[`bibliography()`], but not all +/// features are supported (yet). In particular, the default values reflect `bibliography()`, but +/// some of these are not supported yet and need to be set manually. +/// +/// ```typ +/// #bibliographyx( +/// "bibliography.bib", +/// title: "Bibliography", +/// full: true, +/// style: "ieee", +/// ) +/// ``` +/// +/// This function is based on @@load-bibliography(), @@get-bibliography(), and +/// @@render-bibliography() and simply reproduces the rendering of the built-in bibliography without +/// modification. +/// +/// -> content +#let bibliographyx( + /// The path to or binary file contents of the bibliography file(s). + /// -> string | bytes | array + path, + /// The prefix for which reference labels should be provided and citations should be processed. + /// -> string | auto + prefix: auto, + /// The title of the bibliography. Note that `auto` is currently not supported. + /// -> none | content | auto + title: auto, + /// Whether to render the full bibliography or only the references that are used in the document. + /// -> boolean + full: false, + /// The style of the bibliography. + /// -> string | bytes + style: "ieee", +) = { + import "state.typ": * + + load-bibliography(path, prefix: prefix, full: full, style: style) + + context { + let prefix = prefix + if prefix == auto { + prefix = get-only-prefix() + assert.ne(prefix, none, message: "when using multiple custom bibliographies, you must specify the prefix for each") + } + + let bib = get-bibliography(prefix) + render-bibliography(bib, title: title) + } +} diff --git a/packages/preview/alexandria/0.1.2/src/state.typ b/packages/preview/alexandria/0.1.2/src/state.typ new file mode 100644 index 0000000000..cfafb4640e --- /dev/null +++ b/packages/preview/alexandria/0.1.2/src/state.typ @@ -0,0 +1,69 @@ +#let config = state("__alexandria-config", ( + citations: (:), + read: none, +)) +#let bibliographies = state("__alexandria-bibliographies", (:)) + +#let set-read(read) = config.update(x => { + x.read = read + x +}) + +#let read(data) = { + if type(data) == bytes { + (path: none, data: str(data)) + } else if type(data) == str { + let read = config.get().read + assert.ne(read, none, message: "Alexandria is not configured. Make sure to use `#show: alexandria(...)`") + (path: data, data: read(data)) + } else { + panic("parameter must be a path string or data bytes") + } +} + +#let register-prefix(..prefixes) = { + assert.eq(prefixes.named().len(), 0) + let prefixes = prefixes.pos() + + config.update(x => { + for prefix in prefixes { + x.citations.insert(prefix, ()) + } + x + }) + + bibliographies.update(x => { + for prefix in prefixes { + x.insert(prefix, none) + } + x + }) +} + +#let get-citation-index(prefix) = config.get().citations.at(prefix).len() + +#let add-citation(prefix, citation) = config.update(x => { + x.citations.at(prefix).push(citation) + x +}) + +#let get-only-prefix() = { + let citations = config.get().citations + if citations.len() != 1 { + return none + } + citations.keys().first() +} + +#let set-bibliography(prefix, hayagriva) = { + let citations = config.final().citations.at(prefix) + bibliographies.update(x => { + if x.at(prefix) == none { + x.at(prefix) = (prefix: prefix, ..hayagriva(citations)) + } + x + }) +} + +#let get-bibliography(prefix) = bibliographies.final().at(prefix) +#let get-citation(prefix, index) = get-bibliography(prefix).citations.at(index) diff --git a/packages/preview/alexandria/0.1.2/thumbnail-dark.svg b/packages/preview/alexandria/0.1.2/thumbnail-dark.svg new file mode 100644 index 0000000000..13bff6ef7d --- /dev/null +++ b/packages/preview/alexandria/0.1.2/thumbnail-dark.svg @@ -0,0 +1,2279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/preview/alexandria/0.1.2/thumbnail-light.svg b/packages/preview/alexandria/0.1.2/thumbnail-light.svg new file mode 100644 index 0000000000..52a622dbe5 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/thumbnail-light.svg @@ -0,0 +1,2279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/preview/alexandria/0.1.2/typst.toml b/packages/preview/alexandria/0.1.2/typst.toml new file mode 100644 index 0000000000..8bc2d18671 --- /dev/null +++ b/packages/preview/alexandria/0.1.2/typst.toml @@ -0,0 +1,38 @@ +# for a description of available keys, see https://github.com/typst/packages/?tab=readme-ov-file#package-format + +[package] +name = "alexandria" +version = "0.1.2" +entrypoint = "src/lib.typ" +authors = [ + "Clemens Koza " +] +license = "MIT" +description = "Use multiple bibliographies in a single Typst document " +# homepage = "" +repository = "https://github.com/SillyFreak/typst-alexandria" +keywords = ["bibliography"] +categories = ["model", "thesis"] +disciplines = [] +compiler = "0.12.0" +exclude = [ + ".github", + "docs", + "gallery", + "scripts", + "tests", + ".typstignore", + "Justfile", + "thumbnail-dark.svg", + "thumbnail-light.svg", + # not included: Rust files & dirs that are not submitted in a publishing PR anyway: + # plugin, target, Cargo.lock, Cargo.toml +] + +# [template] +# path = "template" +# entrypoint = "main.typ" +# thumbnail = "thumbnail.png" + +# [tool.mytool] +# foo = "bar"