Skip to content

Commit aa08ca0

Browse files
committed
chore: lint
1 parent ec03e15 commit aa08ca0

8 files changed

+283
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: My super first blog article about unjs
3+
description: This is my first blog article about unjs
4+
image: # Used for the social media share
5+
src:
6+
alt:
7+
cover:
8+
src: https://github.com/unjs/nitro/raw/main/docs/public/cover.png
9+
alt: Nitro cover
10+
authors:
11+
- name: Barbapapazes
12+
picture: https://esteban-soubiran.site/esteban.webp
13+
twitter: soubiran_
14+
15+
- name: Barbapapazes
16+
picture: https://esteban-soubiran.site/esteban.webp
17+
twitter: soubiran_
18+
19+
- name: Barbapapazes
20+
picture: https://esteban-soubiran.site/esteban.webp
21+
twitter: soubiran_
22+
23+
categories:
24+
- announcement
25+
- release
26+
packages:
27+
- nitro
28+
- h3
29+
publishedAt: 2023-08-03
30+
modifiedAt: 2023-08-03
31+
layout: blog-post
32+
---
33+
34+
[`super` cool](https://google.com)
35+
36+
![Nitro cover](https://github.com/unjs/nitro/raw/main/docs/public/cover.png)
37+
38+
Measurement / Mode | External Deps (2.5) | Bundled Deps (2.6)
39+
-------------------|---------------------|-------------------
40+
Number of Files | 60 | 9
41+
Disk Size | 508K | 292K
42+
Disk Size (gzip) | 100Kb | 72Kb
43+
Start | 34.7ms | 18ms
44+
Fetch | 17.2 ms | 14.6ms
45+
Start to Fetch | 53.2ms | 34.7ms
46+
47+
| Name | Description |
48+
| ---- | ----------- |
49+
| Nitro | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas malesuada, quam nec venenatis semper, sem dui tempor magna, sed imperdiet nisi velit id lectus. Ut venenatis eu turpis quis dignissim. Nullam sed tempus urna, sed consectetur lacus. Donec sit amet magna vitae sapien condimentum dignissim et vconventional el dolor. |
50+
| Nitro | Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
51+
| Nitro | Lorem ipsum dolor sit amet, consectetur adipiscing elit. |
52+
53+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas malesuada, quam nec venenatis semper, sem dui tempor magna, sed imperdiet nisi velit id lectus. Ut venenatis eu turpis quis dignissim. Nullam sed tempus urna, sed consectetur lacus. Donec sit amet magna vitae sapien condimentum dignissim et vconventional el dolor. In porttitor in ipsum sed lobortis. Proin feugiat non eros vitae auctor. Fusce neque urna, semper in egestas eu, varius at nibh.
54+
55+
:another-article{link="/blog/2023-08-15-h3-towards-the-edge-of-the-web" text="Learn more"}
56+
57+
Nulla facilisi. [Phasellus](/nice) volutpat pellentesque quam in aliquam. Vivamus ac suscipit libero. Fusce mattis eros sed nunc fringilla convallis. Sed vitae consectetur augue, sed gravida felis. Aenean sed orci eget erat vehicula suscipit sit amet nec nunc.
58+
59+
```ts [my-file.ts]
60+
const thisSuperLongVar = 'Have a super long content sapien condimentum dignissim et vconventional el dolor. In porttitor in ipsum sed lobortis. Proin feugiat non eros vitae auctor. Fusce neque urna, semper in egestas eu, varius at nibh. Nulla facilisi. Phasellus volutpat pellentesque quam in aliquam. Vivamus ac suscipit libero. Fusce mattis eros sed nunc fringilla convallis. Sed vitae consectetur augue, sed gravida felis. Aenean sed orci eget erat vehicula suscipit sit amet nec nunc.'
61+
62+
export default defineNitroConfig({
63+
// ...
64+
})
65+
```
66+
67+
## Texte 1
68+
69+
Fusce dignissim pretium turpis, sit amet facilisis mi molestie vel. Aenean ullamcorper, turpis a finibus fermentum, dolor ipsum commodo justo, vitae porta ex turpis tempor orci. Morbi tincidunt ex eget sapien tristique posuere. Quisque ac pulvinar velit. Quisque non tempus nibh. Suspendisse hendrerit sollicitudin nulla, eu lacinia lorem egestas pharetra. Ut diam turpis, placerat ac feugiat id, volutpat eget magna. Vestibulum imperdiet vehicula erat sit amet porttitor. Mauris porta, metus a tempus condimentum, magna nisl vulputate quam, non suscipit mi sem id ipsum. Ut vel fermentum massa, non pulvinar leo. Fusce porta dolor eu consectetur consequat.
70+
71+
Cras rhoncus facilisis urna ac rutrum. Ut rhoncus est quis magna aliquet, non dapibus augue fermentum. Vivamus commodo magna eu risus vehicula condimentum. Aliquam ut aliquam urna. Vivamus vitae mi a turpis lobortis tempor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam eros nisi, vehicula nec erat quis, semper dapibus sapien. Integer varius risus sed ipsum efficitur dignissim. Donec et nisi nec velit lacinia congue eget non purus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Curabitur erat odio, fermentum eget velit nec, mattis vestibulum mauris.
72+
73+
### Subtitle 1
74+
75+
Morbi mattis non nunc sagittis ornare. Quisque elementum dictum dolor id posuere. Morbi non metus purus. Nam molestie felis eget pretium semper. Sed libero erat, placerat in ex at, scelerisque luctus urna. Morbi euismod congue felis, et tristique mi euismod nec. Integer dapibus auctor enim eu suscipit. Ut feugiat interdum rhoncus. In hac habitasse platea dictumst. Aliquam erat volutpat. Donec mollis faucibus orci vehicula tincidunt. Vestibulum non tempus urna, ac vestibulum magna.
76+
77+
## Texte 2
78+
79+
Duis a interdum ipsum, non mattis arcu. Integer et tristique quam. Donec sem quam, lobortis pretium ante quis, pellentesque sodales ipsum. Donec ipsum elit, malesuada non suscipit feugiat, venenatis sit amet magna. Aliquam dictum sollicitudin nibh nec rhoncus. Nam sem eros, rutrum sed risus quis, varius porta arcu. Etiam convallis egestas est, eu dapibus enim convallis a.
80+
81+
## Text 3
82+
83+
### Text 4
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- TODO: create a template of this section in a hiden file (.template) (and usage of we and us, not you -->
2+
<!-- TODO: add in the template a template for the readme for the examples folder -->
3+
<!-- ask a review from package maintainer -->
4+
<!-- TODO: add return to top on the table of content -->
5+
<!-- add link to the github package when `unjs/xyz` or `xyz` is used -->

content/4.resources/1.learn/1.ofetch-101-first-hand.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ node first-request.mjs
6262

6363
And _voilà_, we should see something like this:
6464

65-
```js
65+
```sh
6666
{
6767
repo: {
6868
id: 319960543,
@@ -436,7 +436,7 @@ main().catch(console.error)
436436

437437
Then, run the script and we get the following error we can easily use to display a message to the user:
438438

439-
```js
439+
```sh
440440
{
441441
message: 'Not Found',
442442
documentation_url: 'https://docs.github.com/rest/reference/repos#create-a-repository-for-the-authenticated-user'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Introduction
2+
3+
## Conclusion
4+
5+
using the exports and files (I'll need to verify), unbuild can tell you if files are missing (using main, types and exports)
6+
7+
by default, look in src dist an index.ts and build in mjs, cjs and some d.cts and d.mts => using the auto preset
8+
- depending of the package.json (it no field types, no types are generated)
9+
- if no cjs, compile only to mjs
10+
11+
explain that under the hood, esbuild and rollup are used
12+
it seems that for folder, mkdist is used and for file, rollup is used (you can also defined it manually but why?, mkdist is for file per file and rollup will merge all file in one, mkdist will apply rollup and eslint per file, otherwise, rollup and esbuild are used on every files at once)
13+
14+
(add deno and bun article about mjs vs cjs
15+
16+
this is cristal clear
17+
https://www.typescriptlang.org/docs/handbook/esm-node.html#packagejson-exports-imports-and-self-referencing
18+
19+
https://esbuild.github.io/api/#main-fields
20+
21+
need to update the readme using the new exports=, types and main
22+
need to push the playground
23+
24+
- we need to pass on each options from the defineBuildConfig (start from the simple to the complex and use unjs examples
25+
- there is something about preset (i need to deep dive)
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Build - Nitro 101
3+
description: This is an introduction to Nitro
4+
authors:
5+
- name: Barbapapazes
6+
picture: https://esteban-soubiran.site/esteban.webp
7+
twitter: soubiran_
8+
9+
packages:
10+
- nitro
11+
publishedAt: 2023-08-30
12+
modifiedAt: 2023-08-30
13+
layout: learn-post
14+
---
15+
16+
Nice to know
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
title: Explore - Nitro 101
3+
description: This is an introduction to Nitro
4+
authors:
5+
- name: Barbapapazes
6+
picture: https://esteban-soubiran.site/esteban.webp
7+
twitter: soubiran_
8+
9+
packages:
10+
- nitro
11+
publishedAt: 2023-08-30
12+
modifiedAt: 2023-08-30
13+
layout: learn-post
14+
---
15+
16+
Nice to know

layouts/learn-post.vue

+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<script lang="ts" setup>
2+
const { toc, page } = useContent()
3+
4+
const { data: packages } = await useAsyncData(`packages${page.value.packages.join(':')}`, () => queryContent('/packages/').only(['_path', 'title', 'icon', 'logo']).where({ _path: { $containsAny: page.value.packages } }).find(), { watch: [() => page.value.packages] })
5+
6+
// TODO: Waiting for Nuxt SEOKit v2
7+
useServerSeoMeta({
8+
ogTitle: `${page.value.title} · UnJS`,
9+
ogType: 'article',
10+
ogDescription: page.value.description,
11+
ogImage: page.value.image?.src,
12+
ogImageAlt: page.value.image?.alt,
13+
twitterTitle: `${page.value.title} · UnJS`,
14+
twitterDescription: page.value.description,
15+
twitterImage: page.value.image?.src,
16+
twitterImageAlt: page.value.image?.alt,
17+
author: page.value.authors.map(author => author.name).join(', '),
18+
twitterCard: 'summary',
19+
})
20+
</script>
21+
22+
<template>
23+
<Head>
24+
<SchemaOrgWebPage :type="['ItemPage']" />
25+
<!-- TODO: missing in-language due to a but @see https://github.com/harlan-zw/unhead-schema-org/issues/29 -->
26+
<SchemaOrgArticle :date-published="toISODateString(page.publishedAt)" :date-modified="toISODateString(page.modifiedAt)" type="BlogArticle" />
27+
</Head>
28+
<div m="y-6 md:y-10" p="x-4 md:x-6 t-6 md:t-10 b-10 md:b-20" rounded="4" bg="white" grid="~ cols-1 xl:cols-[1fr_auto_1fr] items-start" gap="6 md:8">
29+
<div flex="~ justify-start">
30+
<NuxtLink to="/blog" flex="~ items-center" gap="1" class="group">
31+
<span i-heroicons-chevron-left-20-solid block w-4 h-4 text="gray-400 group-hover:gray-600" transition="~ ease-in duration-150" />
32+
<span text="text-sm gray-600">
33+
Blog
34+
</span>
35+
</NuxtLink>
36+
</div>
37+
38+
<nav xl:block xl:row-start-1 xl:col-start-3 sticky top-4 class="group/nav hidden">
39+
<p flex="~ items-center" gap="2" text="right">
40+
<span i-heroicons-list-bullet-20-solid block w-4 h-4 text="gray-400 group-hover/nav:gray-600" transition="~ ease-in duration-150" />
41+
<span text="text-sm gray-600">Table of Contents</span>
42+
</p>
43+
<ul mt-4 flex="~ col items-start" text="sm gray-400">
44+
<li v-for="link in toc.links" :key="link.id">
45+
<NuxtLink :to="`#${link.id}`" block p="y-1" class="group">
46+
<span border="b gray-400 group-hover:gray-700" text="group-hover:gray-700" transition="~ ease-in duration-150" leading="6">
47+
{{ link.text }}
48+
</span>
49+
</NuxtLink>
50+
</li>
51+
</ul>
52+
</nav>
53+
54+
<main max-w-screen-md lg="mx-auto w-screen-md" xl="row-start-1 col-start-2">
55+
<article>
56+
<header relative p="t-10">
57+
<div flex="~ col" gap-1>
58+
<h1 text="2xl md:3xl gray-900" font="bold" tracking="wide">
59+
{{ page.title }}
60+
</h1>
61+
<dl>
62+
<dt sr-only>
63+
Related packages
64+
</dt>
65+
<dd>
66+
<ul flex="~" gap-3 text="sm gray-900" h-6>
67+
<li v-for="package_ in packages" :key="package_._path">
68+
<NuxtLink :to="package_._path" py-1 flex="~ items-center" gap-1>
69+
<img :src="toPackageLogo(package_.title)" :alt="`Logo of ${package_.title}`" w-4 h-4 width="16" height="16">
70+
<span>{{ package_.title }}</span>
71+
</NuxtLink>
72+
</li>
73+
</ul>
74+
</dd>
75+
</dl>
76+
</div>
77+
78+
<div absolute top-0 left-0 text="sm gray-700" font="light">
79+
<dl flex="~" gap-1>
80+
<dt sr-only>
81+
Published at
82+
</dt>
83+
<dd>
84+
<time pubdate :datetime="toISODateString(page.publishedAt)">
85+
{{ toLocaleDateString(page.publishedAt) }}
86+
</time>
87+
</dd>
88+
<span>-</span>
89+
<dt sr-only>
90+
Categories
91+
</dt>
92+
<dd capitalize>
93+
<ul flex="~" gap-1 class="categories">
94+
<li v-for="(category, index) in page.categories" :key="category" flex="~">
95+
<NuxtLink :to="`/categories/${category}`">
96+
{{ category }}
97+
</NuxtLink>
98+
<span v-if="index !== page.categories.length - 1">,</span>
99+
</li>
100+
</ul>
101+
</dd>
102+
</dl>
103+
</div>
104+
<dl>
105+
<dt sr-only>
106+
Authors
107+
</dt>
108+
<dd>
109+
<ul mt-6 flex="~ wrap" gap="4 md:8">
110+
<li v-for="author in page.authors" :key="author.name">
111+
<address flex="~ items-center" gap="2" not-italic>
112+
<img :src="author.picture" :alt="`Profil picture of ${author.name}`" w-9 h-9 rounded="full" width="36" height="36">
113+
<div text="sm">
114+
<div text="gray-900" leading-none font="light">
115+
{{ author.name }}
116+
</div>
117+
<div mt-1>
118+
<NuxtLink rel="author noopener" :to="`https://x.com/${author.twitter}`" target="_blank" class="text-gray-700 hover:text-gray-900 leading-none transition ease-in duration-150">
119+
@{{ author.twitter }}
120+
</NuxtLink>
121+
</div>
122+
</div>
123+
</address>
124+
</li>
125+
</ul>
126+
</dd>
127+
</dl>
128+
</header>
129+
<div mt-6 md:mt-12 prose prose-gray max-w-none>
130+
<slot />
131+
</div>
132+
</article>
133+
</main>
134+
</div>
135+
</template>

types/package.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// Create a type for a package md file

0 commit comments

Comments
 (0)