Asynchronously convert directory tree structure into a javascript object.
A node module to get your node module started
Info about node `exports` field support: version ranges, categories, etc.
Generate a unique filename for use in temporary directories or caches.
Resolve a URI relative to an optional base URI
Video.js icon font
Base reporting library for istanbul
Use the :dir pseudo-class in CSS
Get the real path of the system temp directory
An output formatter for markdownlint-cli2 that produces the same output as markdownlint-cli
Creating Electron app packages
chdir in chainer fashion + read file
A collection of useful (to me, anyway) functions to emit structured JSON data from a portfolio of photos saved and organized in local directories.
Make a directory and its parents if needed - Think `mkdir -p`
Download templates and git repositories with pleasure!
Convert directories to glob compatible strings
app-builder precompiled binaries
TypeSpec library for emitting TypeSpec to JSON Schema and converting JSON Schema to TypeSpec
asynchronous file and directory operations for Node.js
TypeSpec library for emitting OpenAPI 3.0 and OpenAPI 3.1 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec
Convert .json files to ES6 modules
A lightweight Node.js module to recursively read files in a directory using ES6 Promises
output coverage reports using Node.js' built in coverage
Resolve a directory that is either local, global or in the user's home directory.
Format JSON under current dir with dead simple command
Switch helps you add multiple languages to your site by leveraging the power of google spreadsheets. It is a commandline tool providing you with an easy way to automate the process and avoid common mistakes. The most common use case of switch is for switching between a locale representation in JSON/YAML to a CSV (spreadsheet) based one and vice-versa. # Install ``` gem install switch-cli ``` # Usage ``` switch json2csv [input-dir] [output-file] ``` Converts multiple json files to be a single csv file with columns for each file, with the file name as the column header. If you do not specify an input-dir it will be taken as ./locales and output-file would be the direcotry name + .csv. ``` switch csv2json [input-file] [output-dir] ``` Converts a single csv file into multiple json files, with a file for each column using the key and order columns to construct the files.
# Otto AsciiDoc-powered static site generator with Jekyll-style conventions: layouts, includes, data files, posts, drafts, permalinks, and custom collections. ## Install ```sh gem install ottogen ``` Requires Ruby 3.0 or newer. ## Quickstart ```sh mkdir mysite && cd mysite otto init otto build otto serve open http://127.0.0.1:8778/ ``` For a longer walkthrough including AsciiDoc syntax, see [GUIDE.md](GUIDE.md). ## Commands | Command | Description | |---|---| | `otto init [DIR]` | Scaffold a new site (current dir if omitted) | | `otto build` | Render the site to `_build/` | | `otto build --drafts` | Include posts from `_drafts/` | | `otto watch` | Rebuild on file change | | `otto serve` | Serve `_build/` on port 8778 | | `otto generate PAGE` | Create a new page in `pages/` | | `otto post "Title"` | Create a new dated post in `_posts/` | | `otto clean` | Delete `_build/` | | `otto doctor` | Sanity-check project layout | ## Project layout ``` my-site/ ├── .otto # marker ├── config.yml # site config ├── assets/ # copied verbatim into _build/ ├── pages/ # AsciiDoc pages, output mirrors path ├── _layouts/ # ERB layouts (.html.erb) ├── _includes/ # ERB partials ├── _data/ # YAML/JSON files exposed as site.data.* ├── _posts/ # YYYY-MM-DD-slug.adoc └── _drafts/ # undated drafts (excluded by default) ``` ## Configuration (`config.yml`) ```yaml title: My Otto Site description: Things I write url: https://example.com baseurl: "" permalink: /:year/:month/:day/:slug/ collections: recipes: output: true ``` `permalink` accepts these tokens: `:year`, `:month`, `:day`, `:slug`, `:title`. Templates ending in `/` produce pretty URLs (`<path>/index.html`). ## Pages and posts Both support YAML front matter: ```adoc --- layout: default title: Hello tags: [ruby, cli] --- = Hello Welcome to {site_title}. This page is at {page_url}. ``` Pages live under `pages/`; posts under `_posts/` with `YYYY-MM-DD-slug.adoc` names. Layouts wrap rendered AsciiDoc; partials in `_includes/` are pulled in via `<%= partial 'header.html' %>`. ## License MIT