npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@magic/transmute

v0.0.57

Published

convert markdown and html to magic function strings.

Downloads

1,730

Readme

@magic/transmute

transmutes html and markdown to @magic view fragments

NPM version Linux Build Status Windows Build Status Coverage Status Known Vulnerabilities

installation

cli:

npm i -g @magic/transmute

// executable as magic-transmute now
magic-transmute

javascript api

npm i --save @magic/transmute

usage

cli:

magic-transmute --help

commands:

  • markdown - convert markdown to magic functions
  • html - convert html to magic functions
  • file - convert file to magic functions

flags:

  • --add-wrapper - add export default[] to the returned string. - alias: ["--addWrapper"]
  • --no-pretty - do not run prettier. - alias: ["--noPretty"]
  • --markdown - force markdown parser to run. - alias: ["--mark", "-m"]
  • --output - output file path - alias: ["--out", "-o"]
  • --input - input file path - alias: ["--in", "-i"]
  • --help - this help text - alias: ["-help", "help", "--h", "-h"]
  • --str - an input string of either html or markdown, depending on running command
transpile html string:

magic-transmute html --str '<a href="https://magic.github.io">magic!</a>'

transpile markdown string:

magic-transmute markdown --str '[magic!](https://magic.github.io)'

html file:

magic-transmute file --input input.html --output output.mjs

markdown file

(.markdown and .md get recognized):

magic-transmute file --input input.md --output output.mjs

force markdown

(arbitrary file extensions)

magic-transmute file --input input.txt --output output.mjs --markdown

api examples

import transmute from '@magic/transmute'

// html to magic
transmute.html('<a href="https://magic.github.io">magic!</a>')
// returns: `Link({ to: 'https://magic.github.io' }, 'magic!')`

// markdown to magic
transmute.markdown('[magic!](https://magic.github.io)')
// returns: `Link({ to: 'https://magic.github.io' }, 'magic!')`

const magic = transmute.markdown('[magic!](https://magic.github.io)')
console.log(magic)
// logs: `Link({ to: 'https://magic.github.io' }, 'magic!')`

// that's it.

changelog

0.0.1

first release

0.0.2

update dependencies

0.0.3

fix cli

0.0.4

update @magic dependencies to use npm packages instead of github

0.0.5
  • extract state from html and markdown files
  • allow usage of state variables in markdown and html
0.0.6
  • pass options from LexLex to marked.Lexer
  • only implant state in html if it has not been passed as argument
  • correctly camelCase object keys for html tags
  • correctly merge passed state with in-file state for markdown and html
0.0.7 - broken

remove commonjs support, node >= 13.5.0 required

0.0.8

export correct cli file

0.0.9

do not lowercase @magic-module names, some other minor changes

0.0.10

do not wrap @magic-modules in p tags

0.0.11
  • remove eval from state injection function.
  • correctly handle both ${} and {{}} variables in markdown and html files.
0.0.12

state keys in ${} and {{ }} get trimmed... doh.

0.0.13

return originalState, which is the state derived from the markdown/html file. this allows @magic to use this state for individual pages when building them.

0.0.14
FULL @magic-module api available from markdown.
  • nested state variables in template strings eg {{state.test.deep.var}} now work.
  • replace parse5 with posthtml.
  • custom markdown and custom html renderers added.
  • @magic-modules in markdown and html can have keys that are arrays or objects now.
0.0.15

if the value of a ${state.variable} in a template string is an array, this array gets join(' ')ed

0.0.16

render/html: empty arrays and objects return an empty string.

0.0.17

render/markdown.codespan: do not show linenumbers for codespans.

0.0.18
  • handle " escapes.
  • string delimiters ', " AND ` in a string do not error, get escaped instead.
0.0.19
  • actually escape multiple html entities in a string, not just the first occurrence
0.0.20

update dependencies

0.0.21

update dependencies

0.0.22

update prettier, @magic/cli

0.0.23

Link and Img do not get wrapped in a paragraph (anymore)

0.0.24

update marked and prettier

0.0.25

update dependencies

0.0.26
  • bump required node version to 14.2.0
  • update dependencies
0.0.27
  • update dependencies
  • FIX: command line interface was broken.
0.0.28
  • update dependencies
  • move magic-modules/no-spy to devDependencies
0.0.29

update dependencies

0.0.30

update dependencies

0.0.31

update dependencies

0.0.32

update dependencies

0.0.33
  • update dependencies
  • fix markdown html handling changes
0.0.34
  • update dependencies
0.0.35

update dependencies

0.0.36

update dependencies

0.0.37
  • bump required node version to 14.15.4
  • update dependencies
0.0.38

update dependencies

0.0.39

update dependencies (marked)

0.0.40

update dependencies (posthtml-parser)

0.0.41

remove call to undefined cleanUrl from markdown.image

0.0.42

update dependencies

0.0.43
  • if the array returned by transmute has a length of 1, return that item instead
  • update dependencies
0.0.44

do return arrays in all cases. adapt tests to accomodate for that

0.0.45

update dependencies

0.0.46

update dependencies to avoid circular dependencies in @magic/types

0.0.47

update dependencies

0.0.48

update dependencies

0.0.49

update dependencies

0.0.50

update dependencies

0.0.51

update dependencies

0.0.52

update dependencies

0.0.53

update dependencies

0.0.54

update dependencies

0.0.55

update dependencies

0.0.56

update dependencies

0.0.57

update dependencies

0.0.58 - unreleased

...