1.0.0 • Published 4 months ago

@xt0rted/expressive-code-file-icons v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@xt0rted/expressive-code-file-icons

Add Visual Studio Code file icons to your Expressive Code frames.

npm install @xt0rted/expressive-code-file-icons

Using with Astro.

+import { pluginFileIcons } from "@xt0rted/expressive-code-file-icons";

 export default defineConfig({
   integrations: [
     astroExpressiveCode({
       plugins: [
+        pluginFileIcons({
+          iconClass: "size-4",
+          titleClass: "flex items-center gap-1",
+        }),
       ],
       frames: {
         extractFileNameFromCode: true,
       },
     }),
   ],
 });

Frames with titles

Default icons

The file name in the title prop is used to determine the icon. If an icon can't be found based on the title then the language of the code block will be used.

Input

```css title="site.css"
.flex {
  display: flex;
}
```
```js title="sample code"
export default {
  // ...
};
```
```js title="tailwind.config.js"
export default {
  // ...
};
```

Output

Specifying and overriding an icon

If your title doesn't have a file name, or you don't want to use the default language icon, you can specify one using the icon prop.

Input

```css title="site.css" icon="postcss"
.flex {
  display: flex;
}
```

Output

No icons

Icons can be removed from a frame by adding the no-icon prop to the code block.

Input

```css title="site.css" no-icon
.flex {
  display: flex;
}
```

Output

Frames without title

An icon will not be added to a frame if it doesn't have a title.

Terminal frames

Terminal frames don't have icons.

Input

```console title="Test script" icon="powershell"
npm install @xt0rted/expressive-code-file-icons
```

Output

Supported icons

See icon-names.ts for all supported icons.

This plugin uses the icons from vscode-icons and will be kept current as best as possible. If there's an issue with an icon, or one is missing, open an issue about it.