Add linked data to the YAML of your Obsidian notes.

Overview

Obsidian Linked Data Vocabularies Plugin

This plugin adds YAML keys for the selected heading, url (optional), and broader, narrower and related headings. It also supports inserting it as inline YAML at the current selection for use with Dataview.

Currently, the LCSH Suggest2 API is implemented.


Please do not make more than 10 requests per minute. The initial request plus each heading that gets added in broader/narrower/related terms should count as one request. Please refer to this for more details.

I have made a PR to remove this plugin from the community plugins and another to deprecate the already installed version. Please don't install/use it until I have removed this notice.

According to @brimwats, overuse results in a soft-block and that this is more aimed at Google querying their site thousands of times per minute and not users of plugins like this.

I have plans to make this a fully local plugin though, one that will only require the initial download of the data and parsing with another plugin to extract only the needed data which this plugin can use.

When this is done, a new PR will be made to re-add this plugin.


See @brimwatsexplanation to understand linked data better.

Usage

In the editor, open the command palette and execute the LCSH command. Alternatively, you can set a hotkey for it.

There are two options: You can either use Enter to insert the data as YAML.

If there is no YAML block present, a new one will be created. If there is already YAML present, the new YAML will be appended to the current YAML.

Or you use Shift + Enter to insert it as inline YAML at the current selection.

As of 0.4.2 you can also add a subdivision after an authorized heading if you press Alt + Enter. Here is an explanation of Subdivisions from @brimwats.

You can of course also use the mouse instead.

There is also an implementation of LCC, LCNAF and LCCHO. They are disabled by default and can be enabled in the settings. They will not add relations (BT/NT/RT) to the YAML and are only recommended for people familiar with them. For an explanation, please refer to the links.

Configuration

You can set the limit of queries to be display. 10 is the default setting.

You can set the key names for heading, url, broader, narrower and related in the settings.

Furthermore, you can set the search type.

Left anchored searches are ordered alphabetically, case and diacritic insensitive.

Keyword searches are in descending relevance order, using the same search ranking as the main search page.

Source

The default search type is keyword.

From my experience, keywords gives better results, but only gives good results when you type out the word fully. So archeolo wouldn't show Archeology, for that you need to type the full word.

You can also set a maximum number of headings to be added per type. The default value is 2, the maximum value you can set is 3. If you set it to 0, it won't be added.

Modal

The Modal shows the heading in bold, under it, it shows the aLabel and if existing, the vLabel.

aLabel will only return a resource whose authoritative label exactly matches the searched term. For example, aLabel:"International librarianship".

vLabel will only return a resource which has a variant label exactly matching the searched term. For example, vLabel:"Librarianship, International".

Source

Recommendation

Use this plugin with Breadcrumbs. You can set the hierachies in its settings and will have a breadcrumbs view for navigating the heading hierarchy you create in your notes.


Explanation of linked data

Thank you @brimwats for this explanation of Linked Data!

Introduction

This plugin allows the use of structured linked data vocabularies as metadata in Obsidian notes. There are some concepts that should be understood when using this plugin. There are two sections below, one for non-technical users and ones for technical users (those familiar with linked data).

Technical Information

This plugin uses a JSON-based API to allow the browsing of linked data vocabularies constructed in SKOS. An endpoint must be provided. Local vocabularies are not supported, as an index would have to be built to implement fast parsing/a lookup table of some sort, and parsing the file would not work on mobile.

Non-Technical Information

See another explanation here and here.

When a cultural heritage institution like a library receives a new item, there are several steps that must be taken before it is made available. Most importantly, the item must be cataloged with subject headings. A subject heading is a term that is meant to serve as a keyword or topic explanation for the book. If you have ever used tags or keywords, you understand the purpose. Cataloging means that an item is given at least one a subject heading such as "Poodle" or (more often) multiple headings such as "1. Dogs" and "2. Poodles."

While this might seem obvious when we speak of a “Poodle” or a “Labrador retriever” it gets vastly more confusing when trying to organize thousands or hundreds of thousands of items. And large institutions do this sort of thing everyday, so they have to be positive that all headings mean the same thing. Should a “labradoodle” (the offspring of a Labrador and a poodle) be considered a poodle or a Labrador for purposes of classification? What about a “Goldendoodle” (a golden retriever and a poodle)? How about a “Yorkipoo”? A “Pugapoo”? What about a “Cockapoo”, a “Maltipoo” or a “Poo-Shi”?

Enter controlled vocabularies and information retrieval thesauri.

When most people think of thesauri they likely think of style thesauri, which includes websites like Thesaurus.com, or a books like Rogets Thesaurus, which offer similar or dissimilar alternatives to a word or phrase. For the word “Information” Thesaurus.com offers synonyms “advice”, “clue”, or “data”, and antonyms “ignorance”, “question”, “silence”.

There are three basic rules that occur in thesauri are UF, BT/NT and RT.

  1. Use/Use For (USE/UF),
  2. Broader Terms and Narrower Terms (BT/NT), and
  3. Related Terms (RT).

USE/UF

According to the Library of Congress:

USE references are made from an unauthorized or non-preferred term to an authorized or preferred heading. Under the heading referred to, the code UF (Used For) precedes the term not used… USE references are made from an unauthorized or non-preferred term to an authorized or preferred heading. Under the heading referred to, the code UF (Used For) precedes the term not used. The codes USE and UF function as reciprocals

This is the strictest of all the rules in a thesaurus. It tells the cataloger to use one word in place of another (USE FOR), or that the material that they are looking for is under a different term (USE).

For example:

Cars (Automobiles) → USE Automobile

Automobiles → UF Cars (Automobiles)

USE references are made from synonyms, variant spellings, variant forms of expression, alternate constructions of headings, and earlier forms of headings. USE references are also made when it has been decided that words should not be used as a heading even if the heading and the unused words are not truly synonymous.

Broader Term and Narrower Term

The abbreviations BT (broader term) and NT (narrower term) indicate hiararchy.

The code BT refers to the class of which the heading is a member. So Automobiles is a broader term for Volvos. Dogs is a broader term for Poodles.

The code NT refers a member of the class represented by the heading under which the NT appears. So Volvos are a narrower term of Automobiles. Poodles are a narrower term of Dogs.

The broadest (parent) terms tend to be incredibly vague ideas, like “Art”, which then generally need to be narrowed down more to be useful, so it will have muliple NTs, or narrower terms, such as

ArtNT Western Art → NT Indigenous Art → NT Asian Art → [etc.]

These NTs will often have further NTs, so Art

  • NT Western Art
    • NT Western Sculpture
      • NT Modern Sculpture
        • NT [etc.]

Related Terms

The abbreviation RT (Related Term), links two headings that are associated in some manner other than by hierarchy (BTs/NTs). For example,

Birds → RT Ornithology

Ornithology → RT Birds

In the most basic sense, RTs just assert that there are connections between the current subject term and another one. For a cataloger, this enables them to consider connected terms to catalog their material under. For a user, this allows them to check under both subject headings to ensure that they have reviewed all of the relevant information.

RTs allow broader information institutions to control terminology.

Searching for vocabularies:

Subdivisions / Complex Subjects

For LCSH, this plugin also supports what are called "Subdivisions" or complex subjects. A subdivision is a way for the cataloger (aka the plugin user, aka you) to be more specific with a generic subject heading.

For example, if I wanted to catalog my note as dicsussing the Ancient Phonecians and their religion I would use this plugin to add Phonecians to my note. This would meet many people's needs. But what if I had a lot of notes about Phonecians, if I wanted to distuingish between my notes on "Ancient" and "Regular" Phonecians, or if I wanted to distinguish between notes about Phonecian religion and notes about their gods?

LCSH does not have Ancient Phonecian Gods so—enter subdivisions! Subdivisions are 'addon' terms that follow the first. Use this secondary term following the first when a more specific heading does not exist.

First find Phonecians and then press alt+enter/return to enter into complex mode, where you could pick --Religion or --Ancient.

Kinds of Subdivisions

There are five different kinds of subdivisions

  • Topic Subdivisions, which represent actions, attributes, or aspects, of the first term.
    • For example Helicopters--Flight testing; Drinking water--Aluminum content; Mental health--Nutritional aspects. Topical subdivisions are used as a standard way of expressing concepts, methods, or techniques that are common to several fields.
  • GenreForm Subdivisions, which indicate what the item is rather than what it is about. You would use this if you had a specific kind of note.
    • For example, the most frequently used form subdivisions, are --Bibliography, --Juvenile literature, and --Periodicals
  • Temporal Subdivisions, which indicate time periods covered in the contents of the work. These are usually associated with a historical treatment of a topic and are used after the subdivision --History,
    • for example, Women--History--Nineteenth Century.
  • Geographic Subdivisions, which indicate the geographic area to which treatment of a topic is limited. They may designate where something is located, or where something is from, depending upon the topic.
    • For example:
  • Language Subdivisions, which indicate what language the item is in.
    • For example: Bees--French Language.
    • If you click this link though, you'll notice that it is an empty page—this subdivision is being phased out!

More Info on Subdivisions

If you're interested in reading more, here is documentation from the Library of Congress on Types and purpose of subdivisions.

And here is another explainer of subdivisions.

Comments
  • Problem with generating Linked Data vocabularies

    Problem with generating Linked Data vocabularies

    I have installed both the Linked Data Vocabularies and the Linked Data Helper. I cannot get the Linked Data helper to generate the necessary data for Linked Data vocabularies from the extracted zip file lcsh.both.ndjson

    The plugin accepts anything I put on the “linked data helper settings”. Then, when I press start conversion, it gives a message saying that it will take a while and then nothing happens. My folder for the three JSON files to be generated is default, and the directory exists. I have tried different location for the extracted zip file lcsh.both.ndjson but same result. There is no error message. Just nothing happens, other than the message saying that it will take a while.

    Environment Operating system: Windows 11 Obsidian version: V0.12.19 (up to date)

    opened by ingewertwijn 3
  • build(deps): bump actions/setup-node from 2.5.1 to 3.0.0

    build(deps): bump actions/setup-node from 2.5.1 to 3.0.0

    Bumps actions/setup-node from 2.5.1 to 3.0.0.

    Release notes

    Sourced from actions/setup-node's releases.

    v3.0.0

    In scope of this release we changed version of the runtime Node.js for the setup-node action and updated package-lock.json file to v2.

    Breaking Changes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • This isn't released yet, correct?

    This isn't released yet, correct?

    Unable to get this working in the current version of Obsidian (v0.12.16).

    I am certainly no expert on manually installing plugins, so perhaps I am doing something wrong. Extracted the zipped folder to vault/.obsidian/plugins

    It appears in Community Plugins, but throws: Can't load plugin error

    opened by Cmhorn 1
  • Add quotes around items

    Add quotes around items

    Add quotes around each item so that commas and brackets (as some results include them) don't break links/the frontmatter in general.

    ex. narrower: ["History--[period subdivision]--Philosophy","Foreign relations--Philosophy","Civilization--Philosophy","Politics and government--[period subdivision]--Philosophy","History--Philosophy","Politics and government--Philosophy"]

    instead of

    narrower: [History--[period subdivision]--Philosophy,Foreign relations--Philosophy,Civilization--Philosophy,Politics and government--[period subdivision]--Philosophy,History--Philosophy,Politics and government--Philosophy]

    opened by lkadre 1
  • build(deps): bump actions/checkout from 2 to 3

    build(deps): bump actions/checkout from 2 to 3

    Bumps actions/checkout from 2 to 3.

    Release notes

    Sourced from actions/checkout's releases.

    v3.0.0

    • Update default runtime to node16

    v2.4.0

    • Convert SSH URLs like org-<ORG_ID>@github.com: to https://github.com/ - pr

    v2.3.5

    Update dependencies

    v2.3.4

    v2.3.3

    v2.3.2

    Add Third Party License Information to Dist Files

    v2.3.1

    Fix default branch resolution for .wiki and when using SSH

    v2.3.0

    Fallback to the default branch

    v2.2.0

    Fetch all history for all tags and branches when fetch-depth=0

    v2.1.1

    Changes to support GHES (here and here)

    v2.1.0

    Changelog

    Sourced from actions/checkout's changelog.

    Changelog

    v2.3.1

    v2.3.0

    v2.2.0

    v2.1.1

    • Changes to support GHES (here and here)

    v2.1.0

    v2.0.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump actions/setup-node from 2.5.1 to 3

    build(deps): bump actions/setup-node from 2.5.1 to 3

    Bumps actions/setup-node from 2.5.1 to 3.

    Release notes

    Sourced from actions/setup-node's releases.

    v3.0.0

    In scope of this release we changed version of the runtime Node.js for the setup-node action and updated package-lock.json file to v2.

    Breaking Changes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump actions/setup-node from 2.5.0 to 2.5.1

    build(deps): bump actions/setup-node from 2.5.0 to 2.5.1

    Bumps actions/setup-node from 2.5.0 to 2.5.1.

    Release notes

    Sourced from actions/setup-node's releases.

    Fix logic of error handling for npm warning and uncaught exception

    In scope of this release we fix logic of error handling related to caching (actions/setup-node#358) and (actions/setup-node#359).

    In the previous behaviour we relied on stderr output to throw error. The warning messages from package managers can be written to the stderr's output. For now the action will throw an error only if exit code differs from zero. Besides, we add logic to сatch and log unhandled exceptions.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Refactor code

    Refactor code

    https://github.com/kometenstaub/obsidian-linked-data-vocabularies/blob/7766a6379238f801c66d9856721ef39fc7e098af/src/methods/methods-write.ts#L24

    • [x] Make it more general so that it accepts any number of key-value pairs apart from the headings.

      • [x] This also applies to buildYaml()
    • [x] Problem to address: accessing settings to decide whether or not to write the value. This check could be done in the suggester so that it only passes elements that are supposed to be added.

      • [x] First check: should it be included?
      • [x] Second check: which key? Make object with custom key and the value, pass that on.
    refactoring 
    opened by kometenstaub 0
  • build(deps): bump actions/setup-node from 1 to 2.5.0

    build(deps): bump actions/setup-node from 1 to 2.5.0

    Bumps actions/setup-node from 1 to 2.5.0.

    Release notes

    Sourced from actions/setup-node's releases.

    Adding Node.js version file support

    In scope of this release we add the node-version-file input and update actions/cache dependency to the latest version.

    Adding Node.js version file support

    The new input (node-version-file) provides functionality to specify the path to the file containing Node.js's version with such behaviour:

    • If the file does not exist the action will throw an error.
    • If you specify both node-version and node-version-file inputs, the action will use value from the node-version input and throw the following warning: Both node-version and node-version-file inputs are specified, only node-version will be used.
    • For now the action does not support all of the variety of values for Node.js version files. The action can handle values according to the documentation and values with v prefix (v14)
    steps:
      - uses: actions/checkout@v2
      - name: Setup node from node version file
        uses: actions/setup-node@v2
        with:
          node-version-file: '.nvmrc'
      - run: npm install
      - run: npm test
    

    Update actions/cache dependency to 1.0.8 version.

    We updated actions/cache dependency to the latest version (1.0.8). For more information please refer to the toolkit/cache.

    Add "cache-hit" output

    This release introduces a new output: cache-hit (#327).

    The cache-hit output contains boolean value indicating that an exact match was found for the key. It shows that the action uses already existing cache or not. The output is available only if cache is enabled.

    Support caching for mono repos and repositories with complex structure

    This release introduces dependency caching support for mono repos and repositories with complex structure (#305).

    By default, the action searches for the dependency file (package-lock.json or yarn.lock) in the repository root. Use the cache-dependency-path input for cases when multiple dependency files are used, or they are located in different subdirectories. This input supports wildcards or a list of file names for caching multiple dependencies.

    Yaml example:

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v2
      with:
        node-version: 14
        cache: npm
        cache-dependency-path: 'sub-project/package-lock.json'
    

    For more examples of using cache-dependency-path input, see the Advanced usage guide.

    Revert temporary fix

    We had to disable pre-cached Node.js usage in the previous version due to the broken image cache. Now cache is fixed, so we can safely enable its usage again. Thank you for understanding.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Getting error

    Getting error "The JSON file could not be read"

    I am on the latest obsidian build 0.13.19 and getting this error on Mac when I run the command Query LCSH. I can see the 3 json files in my folder so not sure what is wrong.

    awaiting response 
    opened by psychsatani 2
  • Building the YAML should be done in a file that doesn't need any Obsidian code so that it can be tested.

    Building the YAML should be done in a file that doesn't need any Obsidian code so that it can be tested.

    Could be easily done for everything except the headings with a unit test that just passes an object. More difficult with the headings because they still access the settings.

    refactoring 
    opened by kometenstaub 0
  • Maybe we could collaborate?

    Maybe we could collaborate?

    Hi Kometenstaub,

    i just discovered your plugin because @brimwats commented that i could make my Map of Content plugin compatible to the YAML data yours generates. Like you i have just released my plugin a few days ago.

    I love what yours does and it's kind of the same idea i had when i made mine, only mine is based on the idea of creating your own headings and subheadings as notes and linking to those instead of getting them from an official catalogue.

    As you'll see mine has some more features like generating a tree view of all notes. If we joined the functionality of both of our addons, we could have a feature that generates a similar view for SKOS tags, also displaying connections that reach through several tags by pulling all the tags related to the ones used in the notes and analyzing them for relation.

    I thought i'd hear what you think on this.

    Nice name by the way. Are you from Germany too?

    collaboration 
    opened by Robin-Haupt-1 11
Releases(1.1.3)
Owner
null
A Vale client for Obsidian.

Obsidian Vale A Vale client for Obsidian. Prerequisites Vale Server or Vale CLI Configuration To install Vale CLI: Go to their release page. Under Ass

Marcus Olsson 76 Dec 30, 2022
Termbase für Übersetung in Form eines Obsidian Vault

lang file-id authors date tags topics en 2ff3822a-cc5f-4474-ab4e-d097dcc3a215 [email protected] 2022-01-06 #needs_completion #readme #winos #setup Readme

null 2 Jan 8, 2022
Add Routify to your Svelte project

?? Add (work in progress) Routify to Svelte This is an adder for svelte-add; you should read its README before continuing here. ➕ Adding (work in prog

Svelte Add 5 Aug 3, 2022
JavaScript data grid with a spreadsheet look & feel. Works for React, Angular, and Vue. Supported by the Handsontable team ⚡

Handsontable is a JavaScript component that combines data grid features with spreadsheet-like UX. It provides data binding, data validation, filtering

Handsontable 17.4k Dec 31, 2022
:fire::fire::fire: 强大的动态表单生成器|form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions through JSON.

form-create form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions thr

xaboy 4.6k Jan 3, 2023
Stale-while-revalidate data fetching for Vue

swrv swrv (pronounced "swerve") is a library using the @vue/composition-api for remote data fetching. It is largely a port of swr. Documentation The n

Kong 1.8k Dec 29, 2022
Open-source list of data visualization tools for software developers 📊📈

awesome.cube.dev — charts, data grids, maps, etc. Choose the best tool for your needs by type, framework, language, or license. Get started in an inst

Cube.js 72 Jan 1, 2023
A tiny, SSR-safe directive for binding random data to an element.

1️⃣ vue-bind-once A tiny, SSR-safe directive for binding random data to an element. A tiny, SSR-safe directive for binding random data to an element.

Daniel Roe 113 Jan 8, 2023
Parse, validate and transform data with confidence in nuxt using zod

nuxt-parse A nuxt focused package to make data validation and parsing easy. This package follows the design philosophy of the article parse, don't val

sidebase 12 Jan 7, 2023
Easily connect your Nuxt3 application to your directus server. 🐰

nuxt-directus Directus Module for Nuxt 3 ✨ Release Notes ?? Read the documentation Features Nuxt3 ready Handle authentication RESTful methods TypeScri

Conner 109 Dec 28, 2022
:necktie: :briefcase: Build fast :rocket: and easy multiple beautiful resumes and create your best CV ever! Made with Vue and LESS.

best-resume-ever ?? ?? Build fast ?? and easy multiple beautiful resumes and create your best CV ever! Made with Vue and LESS. Cool Creative Green Pur

Sara Steiert 15.8k Jan 9, 2023
Matteo Bruni 4.7k Jan 4, 2023
The first truly composable CSS animation library. Built for Vue, React, SCSS, and CSS, AnimXYZ will bring your website to life.

AnimXYZ animxyz.com AnimXYZ helps you create, customize, and compose animations for your website. Powered by CSS variables to allow a nearly limitless

Ingram Projects 2.1k Jan 2, 2023
A simple, customization star rating component for your vue3 projects

vue3-star-ratings A simple, customizable component for star ratings Documentation Features Uses svg for the stars, so it can scale without quality los

Abiodun Olunu 14 Oct 7, 2022
Backs up your favourite and recently used gifs/emotes and restores them in case discord clears them after logouts or for other reasons

Persist Favourites This plugin solves the problem of Discord randomly deciding to clear your gifs or emotes by backing both up regularely and restorin

Vens Powercord Plugins 18 Oct 13, 2022
quickly start your Vue dev server

vue-fast-dev-server 10倍缩短您的vue dev server启动时间 安装 npm install vue-fast-dev-server --save-dev vue.config.js const path = require('path') module.exports

null 22 Feb 28, 2022
OSI helps you to track your all open-source Internships and Program in a single place ⚡

Open Source Internships Overview ?? Dark Theme Light Theme Run locally ?? Fork this repo. open-source-internships ?? Clone the repo. ⏬ git clone https

Rohan kumar 39 Jan 2, 2023
Automatically configure Vitest from your SvelteKit configuration.

vitest-svelte-kit Automatically configure Vitest from your SvelteKit configuration. Getting Started Installing In an existing SvelteKit project, run t

Nick Breaton 44 Dec 30, 2022
Some compile-time magic for your Vite project

?? You can help the author become a full-time open-source maintainer by sponsoring him on GitHub. vite-plugin-compile-time Use this plugin to generate

EGOIST 90 Dec 15, 2022