Coder Social home page Coder Social logo

utpm's Introduction

UTPM logo

Unofficial typst package manager

UTPM is a package manager for local and remote packages. Create quickly new projects and templates from a singular tool, and then publish it directly to Typst!

Thumuss - utpm stars - utpm forks - utpm
GitHub tag License issues - utpm

๐Ÿ”ฅ Features

  • โœจ Create packages automatically (utpm ws create)
    • โฏ๏ธ Interactive
    • โŒจ๏ธ CLI version
  • ๐Ÿ›  Put your package directly into your local packages (utpm ws link)
    • ๐Ÿ’ป Link without copying! (utpm ws link --no-copy)
  • ๐ŸŒ Dependencies outsite typst!
    • ๐Ÿ“ฆ Install directly from the tool
    • ๐Ÿ”’ Portable installer (limited for now)
  • ๐Ÿ“ƒ List all your packages
    • ๐Ÿ—ƒ๏ธ As a list utpm pkg list
    • ๐ŸŒฒ As a tree utpm pkg tree
  • ๐Ÿ’ฅ Customize your output (json or classic, -j in your commands)
  • ๐Ÿ—„๏ธ Delete and bulk delete your packages (utpm pkg unlink, utpm pkg bulk-delete)
  • ๐Ÿš€ Publish it directly to Typst!

And many other features!

๐Ÿ”Ž How to use it?

The basic workflow

  • Firstly, you'll need to create your typst.toml file!
  • Then, edit your file! Like index.typ or lib.typ
  • Finally, link your new package to typst!

Commands

๐Ÿ—„๏ธ Bulk Delete

A command to delete multiple packages at once!

bulk-delete.gif

โœจ Create

Create a typst.toml to make a package

create_cli.gif

โ“ Help

Generate a help message help.gif

๐Ÿ“ฆ Install

install.gif

๐Ÿ—ƒ๏ธ List

list.gif

๐Ÿšฆ Package Path

packages-path.gif

๐ŸŒฒ Tree

A simple command to show all packages installed in your local dir like a tree!

tree.gif

โšก Install

You will need Cargo and Rust.

The easiest way to install utpm using Cargo is:

$ cargo install --git https://github.com/Thumuss/utpm

โค๏ธ Contribution

If you want to help me develop this package, simply make an issue or a PR!

By using this app, you contribute to it, thank you! <3

utpm's People

Contributors

dependabot[bot] avatar ivelter avatar ludwig-austermann avatar thumuss avatar tingerrr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

utpm's Issues

Command to download package

I think it would be neat, if one could download a package from a repo. The features would be:

  • automatic installation into package path (maybe into '@utpm' as default dir?)
  • usage of exclude option, so people do not have to clone the whole repo
  • option to include README, excluded items and so on
  • info, update, delete functionalities

Maintenance status

I've been wondering if this still is or will be maintained in the future. I've seen the lat commits on main were 3 months ago, and the last active commit on #9 was 2 months ago.

During some work on packages, specifically their docs, I frequently fix packages and checkout the PRs locally to use in my docs' generation until they land in Typst universe, this comes at the cost of using a fork of a package for the docs. Most if not all packages I work on run CI to verify that docs, examples and tests compile and pass, this is not possible without also checking out and installing those forks in CI.

I've considered using utpm for this and have tried it out locally, while it generally did what I expected it to it had some rough edges that prevent me from using it in CI. I'm wondering if you still have time to maintain this, if you need help or can't maintain it actively anymore.

If the latter is the case, consider transferring the repo to @typst-community so it can be maintained by the community in the meanwhile.

Allow cloning preview packages to local namespace

Thanks first for creating this handy CLI tool!

As a developer of a Typst template package, utpm can be really helpful for me and the users of the template if two functionalities could be considered:

  • Allowing "cloning" preview packages to local namespace: some command like utpm workspace clone @preview/brilliant-cv:2.0.0 creates a @local/brilliant-cv:2.0.0, and users can make local modifications to the package without worrying being overwrited or messing with the upstream version;
  • A utpm workspace link --overwrite like command that overwrites the preview namespace package rather than the local one: this can be super handy for me, as a developer, to test in a WYSIWYG way my template files.

What do you think?

Thanks a lot!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.