updated to v1.8

This commit is contained in:
Dan Remollino
2023-03-25 19:14:43 -04:00
parent c423ee1ee0
commit 43859dd6cd
4 changed files with 312 additions and 17 deletions

View File

@ -1,3 +1,10 @@
## Version 1.8
- fixed missing font links
- added BDF and C64 font sets
## Version 1.7.1
- removed unneeded filesystem entitlement (again)
## Version 1.7 ## Version 1.7
- added 'Preview All Installed FIGlet Fonts' to Extensions menu - added 'Preview All Installed FIGlet Fonts' to Extensions menu

View File

@ -13,12 +13,11 @@
## FIGlet ## FIGlet
FIGlet Text requires [FIGlet](http://www.figlet.org) to be installed locally. This extension assumes FIGlet has been installed using [Homebrew](https://brew.sh). Once Homebrew is installed, simply run `brew install figlet` to install FIGlet. FIGlet Text requires [FIGlet](http://www.figlet.org) to be installed locally. This extension assumes FIGlet has been installed using [Homebrew](https://brew.sh). Once Homebrew is installed, simply run `brew install figlet` to install FIGlet.
## Monospaced Fonts
It is recommended to only use a monospaced font in Nova. Not doing so may result in garbled looking FIGlet conversions.
# How to Use FIGlet Text # How to Use FIGlet Text
FIGlet Text will add a 'Convert Selection to FIGlet' menu item to the Editor menu. Make one or more selections in the editor and run the command. FIGlet Text will add a 'Convert Selection to FIGlet' menu item to the Editor menu. Make one or more selections in the editor and run the command.
# Known Issues
- selected text with non-whitespace characters preceding the selection will output the text on each line
# Planned Features # Planned Features
- additional fonts
- borders - borders

View File

@ -11,11 +11,24 @@
* @returns a Disposable, see Nova extension docs https://docs.nova.app/api-reference/disposable/ * @returns a Disposable, see Nova extension docs https://docs.nova.app/api-reference/disposable/
*/ */
nova.commands.register('figlet', (workspace, figletArgs, textToConvert, postConversion) => { nova.commands.register('figlet', (workspace, figletArgs, textToConvert, postConversion) => {
const fontSubDir = nova.config.get('figlet_text.font', 'string').match(/^.*\/\s*/)
const fontDir = () => {
if ( fontSubDir !== null) {
return '/usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/' + fontSubDir
}
return '/usr/local/Cellar/figlet/2.2.5/share/figlet/fonts/'
}
let args = ['figlet'] let args = ['figlet']
for (const arg in figletArgs) { for (const arg in figletArgs) {
args.push(figletArgs[arg]) args.push(figletArgs[arg])
} }
args.push(textToConvert)
args.push(
'-d' + fontDir(),
'-f' + nova.config.get('figlet_text.font', 'string').replace(fontSubDir, ''),
textToConvert
)
const process = new Process('/usr/bin/env', {args}) const process = new Process('/usr/bin/env', {args})
@ -48,7 +61,6 @@ nova.commands.register('figlet', (workspace, figletArgs, textToConvert, postConv
// FIGlet convert the selected text in the editor // FIGlet convert the selected text in the editor
nova.commands.register('figletTextEditor', editor => { nova.commands.register('figletTextEditor', editor => {
let figConfig = { let figConfig = {
font: '-f' + nova.config.get('figlet_text.font', 'string'),
outputWidth: '-w' + nova.config.get('figlet_text.outputWidth', 'number'), outputWidth: '-w' + nova.config.get('figlet_text.outputWidth', 'number'),
textDirection: nova.config.get('figlet_text.textDirection', 'string'), textDirection: nova.config.get('figlet_text.textDirection', 'string'),
justification: nova.config.get('figlet_text.justification', 'string'), justification: nova.config.get('figlet_text.justification', 'string'),
@ -142,8 +154,7 @@ nova.commands.register('figletTextEditor', editor => {
nova.commands.register('figletTextFontPreview', workspace => { nova.commands.register('figletTextFontPreview', workspace => {
let figConfig = { let figConfig = {
kerning: '-k', kerning: '-k',
outputWidth: '-w' + 2000, outputWidth: '-w' + 2000
font: '-f' + nova.config.get('figlet_text.font', 'string')
} }
let text = nova.config.get('figlet_text.previewText', 'string') let text = nova.config.get('figlet_text.previewText', 'string')
@ -162,7 +173,7 @@ nova.config.onDidChange('figlet_text.previewText', (newValue, oldValue) => {
}) })
// preview all installed FIGlet fonts in an editor // preview all installed FIGlet distributed fonts in an new editor
nova.commands.register('figletTextFontPreviewAll', workspace => { nova.commands.register('figletTextFontPreviewAll', workspace => {
let message = 'Enter a custom preview text. Leave blank to use the font name for each font preview text output.' let message = 'Enter a custom preview text. Leave blank to use the font name for each font preview text output.'
let options = {label: 'Preview Text', placeholder: 'Use Font Name', prompt: 'Generate Previews'} let options = {label: 'Preview Text', placeholder: 'Use Font Name', prompt: 'Generate Previews'}

View File

@ -3,14 +3,14 @@
"name": "FIGlet Text", "name": "FIGlet Text",
"organization": "Dan Remollino", "organization": "Dan Remollino",
"description": "Convert selected text to FIGlet. Great for adding readable text to the Minimap, creating l33t text headers, and organizing files.", "description": "Convert selected text to FIGlet. Great for adding readable text to the Minimap, creating l33t text headers, and organizing files.",
"version": "1.7", "version": "1.8",
"categories": ["commands", "formatters"], "categories": ["commands", "formatters"],
"entitlements": { "entitlements": {
"clipboard": false, "clipboard": false,
"process": true, "process": true,
"requests": false, "requests": false,
"filesystem": "readwrite" "filesystem": false
}, },
"main": "main.js", "main": "main.js",
@ -24,7 +24,7 @@
{ {
"key": "figlet_text.font", "key": "figlet_text.font",
"title": "Font", "title": "Font",
"description": "The FIGlet font to use when converting text.", "description": "The Homebrew install of FIGlet includes three font sets...\n\nFIGlet (unprefixed): The default fonts distributed with FIGlet\nBDF (bdffonts): BDF-format (X Windows) fonts distributed by the X Consortium\nC64 (C64-fonts): Commodore 64 fonts converted by by David Proper",
"type": "enum", "type": "enum",
"radio": false, "radio": false,
"values": [ "values": [
@ -47,12 +47,14 @@
"bigchief", "bigchief",
"binary", "binary",
"block", "block",
"broadway",
"bubble", "bubble",
"bulbhead", "bulbhead",
"calgphy2", "calgphy2",
"caligraphy", "caligraphy",
"catwalk", "catwalk",
"chunky", "chunky",
"cjkfonts.re",
"coinstak", "coinstak",
"colossal", "colossal",
"computer", "computer",
@ -60,18 +62,23 @@
"contrast", "contrast",
"cosmic", "cosmic",
"cosmike", "cosmike",
"crawford",
"cricket", "cricket",
"cursive", "cursive",
"cyberlarge", "cyberlarge",
"cybermedium", "cybermedium",
"cybersmall", "cybersmall",
"decimal",
"diamond", "diamond",
"digital", "digital",
"doh", "doh",
"doom", "doom",
"dotmatrix", "dotmatrix",
"double",
"drpepper", "drpepper",
"dwhistled",
"eftichess", "eftichess",
"eftichessC",
"eftifont", "eftifont",
"eftipiti", "eftipiti",
"eftirobot", "eftirobot",
@ -79,12 +86,17 @@
"eftiwall", "eftiwall",
"eftiwater", "eftiwater",
"epic", "epic",
"fe",
"fender", "fender",
"fourtops", "fourtops",
"fraktur",
"fuzzy", "fuzzy",
"goofy", "goofy",
"gothic", "gothic",
"graceful",
"gradient",
"graffiti", "graffiti",
"hex",
"hollywood", "hollywood",
"invita", "invita",
"isometric1", "isometric1",
@ -97,6 +109,7 @@
"jerusalem", "jerusalem",
"katakana", "katakana",
"kban", "kban",
"l4me",
"larry3d", "larry3d",
"lcd", "lcd",
"lean", "lean",
@ -112,13 +125,18 @@
"mnemonic", "mnemonic",
"morse", "morse",
"moscow", "moscow",
"mshebrew210",
"nancyj-fancy", "nancyj-fancy",
"nancyj-underlined", "nancyj-underlined",
"nancyj", "nancyj",
"nipples", "nipples",
"ntgreek", "ntgreek",
"nvscript",
"o8", "o8",
"Obanner.RE",
"octal",
"ogre", "ogre",
"os2",
"pawp", "pawp",
"peaks", "peaks",
"pebbles", "pebbles",
@ -153,6 +171,7 @@
"smslant", "smslant",
"smtengwar", "smtengwar",
"speed", "speed",
"stacey",
"stampatello", "stampatello",
"standard", "standard",
"starwars", "starwars",
@ -174,8 +193,269 @@
"twopoint", "twopoint",
"univers", "univers",
"usaflag", "usaflag",
"wavy", "weird",
"weird" "whimsy",
"",
"bdffonts/5x7",
"bdffonts/5x8",
"bdffonts/6x9",
"bdffonts/6x10",
"bdffonts/brite",
"bdffonts/briteb",
"bdffonts/britebi",
"bdffonts/britei",
"bdffonts/chartr",
"bdffonts/chartri",
"bdffonts/clb6x10",
"bdffonts/clb8x8",
"bdffonts/clb8x10",
"bdffonts/cli8x8",
"bdffonts/clr4x6",
"bdffonts/clr5x6",
"bdffonts/clr5x8",
"bdffonts/clr5x10",
"bdffonts/clr6x6",
"bdffonts/clr6x8",
"bdffonts/clr6x10",
"bdffonts/clr7x8",
"bdffonts/clr7x10",
"bdffonts/clr8x8",
"bdffonts/clr8x10",
"bdffonts/cour",
"bdffonts/courb",
"bdffonts/courbi",
"bdffonts/couri",
"bdffonts/helv",
"bdffonts/helvb",
"bdffonts/helvbi",
"bdffonts/helvi",
"bdffonts/sans",
"bdffonts/sansb",
"bdffonts/sansbi",
"bdffonts/sansi",
"bdffonts/sbook",
"bdffonts/sbookb",
"bdffonts/sbookbi",
"bdffonts/sbooki",
"bdffonts/times",
"bdffonts/tty",
"bdffonts/ttyb",
"bdffonts/utopia",
"bdffonts/utopiab",
"bdffonts/utopiabi",
"bdffonts/utopiai",
"bdffonts/xbrite",
"bdffonts/xbriteb",
"bdffonts/xbritebi",
"bdffonts/xbritei",
"bdffonts/xchartr",
"bdffonts/xchartri",
"bdffonts/xcour",
"bdffonts/xcourb",
"bdffonts/xcourbi",
"bdffonts/xcouri",
"bdffonts/xhelv",
"bdffonts/xhelvb",
"bdffonts/xhelvbi",
"bdffonts/xhelvi",
"bdffonts/xsans",
"bdffonts/xsansb",
"bdffonts/xsansbi",
"bdffonts/xsansi",
"bdffonts/xsbook",
"bdffonts/xsbookb",
"bdffonts/xsbookbi",
"bdffonts/xsbooki",
"bdffonts/xtimes",
"bdffonts/xtty",
"bdffonts/xttyb",
"",
"C64-fonts/4x4_offr",
"C64-fonts/64f1____",
"C64-fonts/1943____",
"C64-fonts/a_zooloo",
"C64-fonts/advenger",
"C64-fonts/aquaplan",
"C64-fonts/asc_____",
"C64-fonts/ascii___",
"C64-fonts/assalt_m",
"C64-fonts/asslt__m",
"C64-fonts/atc_____",
"C64-fonts/atc_gran",
"C64-fonts/b_m__200",
"C64-fonts/battle_s",
"C64-fonts/battlesh",
"C64-fonts/baz__bil",
"C64-fonts/beer_pub",
"C64-fonts/bubble__",
"C64-fonts/bubble_b",
"C64-fonts/c_ascii_",
"C64-fonts/c_consen",
"C64-fonts/c1______",
"C64-fonts/c2______",
"C64-fonts/caus_in_",
"C64-fonts/char1___",
"C64-fonts/char2___",
"C64-fonts/char3___",
"C64-fonts/char4___",
"C64-fonts/charact1",
"C64-fonts/charact2",
"C64-fonts/charact3",
"C64-fonts/charact4",
"C64-fonts/charact5",
"C64-fonts/charact6",
"C64-fonts/characte",
"C64-fonts/charset_",
"C64-fonts/coil_cop",
"C64-fonts/com_sen_",
"C64-fonts/computer",
"C64-fonts/convoy__",
"C64-fonts/d_dragon",
"C64-fonts/dcs_bfmo",
"C64-fonts/deep_str",
"C64-fonts/demo_1__",
"C64-fonts/demo_2__",
"C64-fonts/demo_m__",
"C64-fonts/devilish",
"C64-fonts/druid___",
"C64-fonts/e__fist_",
"C64-fonts/ebbs_1__",
"C64-fonts/ebbs_2__",
"C64-fonts/eca_____",
"C64-fonts/etcrvs__",
"C64-fonts/f15_____",
"C64-fonts/faces_of",
"C64-fonts/fair_mea",
"C64-fonts/fairligh",
"C64-fonts/fantasy_",
"C64-fonts/fbr_stri",
"C64-fonts/fbr_tilt",
"C64-fonts/fbr1____",
"C64-fonts/fbr2____",
"C64-fonts/fbr12___",
"C64-fonts/finalass",
"C64-fonts/fireing_",
"C64-fonts/flyn_sh",
"C64-fonts/fp1_____",
"C64-fonts/fp2_____",
"C64-fonts/funky_dr",
"C64-fonts/future_1",
"C64-fonts/future_2",
"C64-fonts/future_3",
"C64-fonts/future_4",
"C64-fonts/future_5",
"C64-fonts/future_6",
"C64-fonts/future_7",
"C64-fonts/future_8",
"C64-fonts/gauntlet",
"C64-fonts/ghost_bo",
"C64-fonts/gothic__",
"C64-fonts/gothic",
"C64-fonts/grand_pr",
"C64-fonts/green_be",
"C64-fonts/hades___",
"C64-fonts/heavy_me",
"C64-fonts/heroboti",
"C64-fonts/high_noo",
"C64-fonts/hills___",
"C64-fonts/home_pak",
"C64-fonts/house_of",
"C64-fonts/hypa_bal",
"C64-fonts/hyper___",
"C64-fonts/inc_raw_",
"C64-fonts/italics_",
"C64-fonts/joust___",
"C64-fonts/kgames_i",
"C64-fonts/kik_star",
"C64-fonts/krak_out",
"C64-fonts/lazy_jon",
"C64-fonts/letter_w",
"C64-fonts/letterw3",
"C64-fonts/lexible_",
"C64-fonts/mad_nurs",
"C64-fonts/magic_ma",
"C64-fonts/master_o",
"C64-fonts/mayhem_d",
"C64-fonts/mcg_____",
"C64-fonts/mig_ally",
"C64-fonts/modern__",
"C64-fonts/new_asci",
"C64-fonts/nfi1____",
"C64-fonts/notie_ca",
"C64-fonts/npn_____",
"C64-fonts/odel_lak",
"C64-fonts/ok_beer_",
"C64-fonts/outrun__",
"C64-fonts/p_s_h_m_",
"C64-fonts/p_skateb",
"C64-fonts/pacos_pe",
"C64-fonts/panther_",
"C64-fonts/pawn_ins",
"C64-fonts/phonix__",
"C64-fonts/platoon_",
"C64-fonts/platoon2",
"C64-fonts/pod_____",
"C64-fonts/r2-d2___",
"C64-fonts/rad_____",
"C64-fonts/rad_phan",
"C64-fonts/radical_",
"C64-fonts/rainbow_",
"C64-fonts/rally_s2",
"C64-fonts/rally_sp",
"C64-fonts/rampage_",
"C64-fonts/rastan__",
"C64-fonts/raw_recu",
"C64-fonts/rci_____",
"C64-fonts/ripper!_",
"C64-fonts/road_rai",
"C64-fonts/rockbox_",
"C64-fonts/rok_____",
"C64-fonts/roman___",
"C64-fonts/roman",
"C64-fonts/script__",
"C64-fonts/skate_ro",
"C64-fonts/skateord",
"C64-fonts/skateroc",
"C64-fonts/sketch_s",
"C64-fonts/sm______",
"C64-fonts/space_op",
"C64-fonts/spc_demo",
"C64-fonts/star_war",
"C64-fonts/stealth_",
"C64-fonts/stencil1",
"C64-fonts/stencil2",
"C64-fonts/street_s",
"C64-fonts/subteran",
"C64-fonts/super_te",
"C64-fonts/t__of_ap",
"C64-fonts/tav1____",
"C64-fonts/taxi____",
"C64-fonts/tec_7000",
"C64-fonts/tec1____",
"C64-fonts/tecrvs__",
"C64-fonts/ti_pan__",
"C64-fonts/timesofl",
"C64-fonts/tomahawk",
"C64-fonts/top_duck",
"C64-fonts/trashman",
"C64-fonts/triad_st",
"C64-fonts/ts1_____",
"C64-fonts/tsm_____",
"C64-fonts/tsn_base",
"C64-fonts/twin_cob",
"C64-fonts/type_set",
"C64-fonts/ucf_fan_",
"C64-fonts/ugalympi",
"C64-fonts/unarmed_",
"C64-fonts/usa_____",
"C64-fonts/usa_pq__",
"C64-fonts/vortron_",
"C64-fonts/war_of_w",
"C64-fonts/yie_ar_k",
"C64-fonts/yie-ar__",
"C64-fonts/z-pilot_",
"C64-fonts/zig_zag_",
"C64-fonts/zone7___"
], ],
"default": "banner3" "default": "banner3"
}, },
@ -189,12 +469,11 @@
{ {
"key": "figlet_text.preview", "key": "figlet_text.preview",
"title": "Preview", "title": "Preview",
"description": "Admittedly, this isn't the ideal preview as Nova uses a non-monospaced output for the Preview textbox above. Use the Extensions -> Preview All Installed FIGlet Fonts menu item to generate an accurate, custom text FIGlet font preview document.", "description": "Admittedly, this isn't the ideal preview as Nova uses a non-monospaced output for the Preview textbox above.\n\nUse the Extensions -> Preview All Installed FIGlet Fonts menu item to generate an accurate, custom text FIGlet font preview document. This will only output the FIGlet distributed font set.",
"type": "text" "type": "text"
} }
] ]
}, },
{ {
"type": "section", "type": "section",
"required": false, "required": false,
@ -230,7 +509,6 @@
} }
] ]
}, },
{ {
"type": "section", "type": "section",
"required": false, "required": false,