commit 5633baedb3581efec0c588d459319a222dac7712 Author: eggy Date: Wed Apr 7 12:21:17 2021 -0400 initial commit diff --git a/.eleventy.js b/.eleventy.js new file mode 100644 index 0000000..cb701ca --- /dev/null +++ b/.eleventy.js @@ -0,0 +1,57 @@ +const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight') +const markdownIt = require('markdown-it') +const markdownItAnchor = require('markdown-it-anchor') + +module.exports = function(eleventyConfig) { + // Plugins + eleventyConfig.addPlugin(syntaxHighlight) + + // To enable merging of tags + eleventyConfig.setDataDeepMerge(true) + + // Copy these static files to _site folder + eleventyConfig.addPassthroughCopy('src/assets') + eleventyConfig.addPassthroughCopy('src/manifest.json') + + // To create excerpts + eleventyConfig.setFrontMatterParsingOptions({ + excerpt: true, + excerpt_alias: 'post_excerpt', + excerpt_separator: '' + }) + + // To create a filter to determine duration of post + eleventyConfig.addFilter('readTime', (value) => { + const content = value + const textOnly = content.replace(/(<([^>]+)>)/gi, '') + const readingSpeedPerMin = 450 + return Math.max(1, Math.floor(textOnly.length / readingSpeedPerMin)) + }) + + // Enable us to iterate over all the tags, excluding posts and all + eleventyConfig.addCollection('tagList', collection => { + const tagsSet = new Set() + collection.getAll().forEach(item => { + if (!item.data.tags) return + item.data.tags + .filter(tag => !['posts', 'all'].includes(tag)) + .forEach(tag => tagsSet.add(tag)) + }) + return Array.from(tagsSet).sort() + }) + + const md = markdownIt({ linkify: true, html: true }) + md.use(markdownItAnchor, { level: [1, 2], permalink: true, permalinkBefore: false, permalinkSymbol: '#' }) + eleventyConfig.setLibrary('md', md) + + // asset_img shortcode + eleventyConfig.addLiquidShortcode('asset_img', (filename, alt) => { + return `${alt}` + }) + + return { + dir: { + input: 'src' + } + } +} diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a672f40 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +_site/* +!.eleventy.js \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..ed51af6 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,34 @@ +{ + "env": { + "browser": true, + "commonjs": true, + "es2020": true, + "node": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 11 + }, + "rules": { + "indent": [ + "error", + 2 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "never" + ], + "array-element-newline": ["error", { + "ArrayExpression": "consistent", + "ArrayPattern": { "minItems": 3 } + }] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d94ca3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +package-lock.json +_site +node_modules diff --git a/README.md b/README.md new file mode 100644 index 0000000..48f00d7 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# Blog starter + +[![Netlify Status](https://api.netlify.com/api/v1/badges/a9b962b7-9df1-49db-9b40-e5fedbc8ba9e/deploy-status)](https://app.netlify.com/sites/eleventy-blog-starter/deploys) + +View the live demo [here](https://eleventy.rongying.co/), hosted on Netlify + +![homepage](blog-v2.png) +![darkmode](blog-dark.png) + +## Aims +A blog that still runs without javascript. Hence, no bundlers. + + +## Features +- Static Site Gen - Eleventy + +- Tailwind CSS v2.0 / Tailwind Typography / Dark Mode + +- Create excerpts using the `` + +- Custom ReadTime filter + +- 404 page + ++ Tags page to view posts related to tag + - Use of a `tagList` collection defined in `.eleventy.js` + - `/tags` - show all available tags (excluding all and posts) as buttons (`tags.md`) + - `/tags/tag-name` - shows all posts related to that tag (`tagList.md`) + ++ Sitemap and Robots.txt + - Change site url in `_data/site.json` + ++ Shortcode to handle images + - Add image under `src/assets/img/posts` and use the asset_img short code + - `{% asset_img 'filename' 'alt_text' %}` eg. `{% asset_img 'mailbox.jpg' 'mailbox' %}` + +- Draft posts using the `published` frontmatter + ++ Posts pagination in `index.html` + - change the `size` frontmatter variable +- ESLint + ++ Bash script to create new post (based on YYYY and MM) +```bash +$ ./create new blog post +Created new post at src/posts/2021/01/new-blog-post.md +``` + + +## Running locally + +Create your blogpost under `src/posts`. I like to have mine sorted by YY/MM. + +Navigate to localhost:8080 after starting the server. +``` +npm start +``` + + +## Deployment +[]( +https://app.netlify.com/start/deploy?repository=https://github.com/kohrongying/11ty-blog-starter) + + + +On Netlify / Surge / Firebase hosting / etc hosting providers + +Build Command: `npm run build` + +Output folder: `_site` + + \ No newline at end of file diff --git a/blog-dark.png b/blog-dark.png new file mode 100644 index 0000000..fd0785d Binary files /dev/null and b/blog-dark.png differ diff --git a/blog-v2.png b/blog-v2.png new file mode 100644 index 0000000..676c76c Binary files /dev/null and b/blog-v2.png differ diff --git a/create b/create new file mode 100755 index 0000000..9a5e7e0 --- /dev/null +++ b/create @@ -0,0 +1,23 @@ +#/bin/bash + +TITLE=$@ +TITLEF=$(echo $TITLE | tr " " "-") +YEAR=$(date +"%Y") +MONTH=$(date +"%m") + +mkdir -p "src/posts/$YEAR/$MONTH" +FILENAME="src/posts/$YEAR/$MONTH/$TITLEF.md" + +cat < $FILENAME +--- +title: "$TITLE" +date: "$(date '+%Y-%m-%d')" +tags: +- +--- + + + +EOF + +echo "Created new post at $FILENAME" \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..4b22757 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "my-blog", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "npx @11ty/eleventy --serve & postcss ./tailwind.css --o _site/assets/styles/tailwind.css --watch", + "test": "echo \"Error: no test specified\" && exit 1", + "lint": "eslint .", + "lint:fix": "eslint . --fix", + "build": "npx @11ty/eleventy & postcss ./tailwind.css --o _site/assets/styles/tailwind.css" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@11ty/eleventy": ">=0.11.1", + "@11ty/eleventy-plugin-syntaxhighlight": ">=3.0.4", + "eslint": ">=7.12.1" + }, + "dependencies": { + "@tailwindcss/typography": ">=0.4.0", + "autoprefixer": ">=10.2.4", + "markdown-it-anchor": ">=7.0.1", + "postcss-cli": ">=8.3.1", + "tailwindcss": ">=2.0.2" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..83cb19c --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: [ + require(`tailwindcss`)(`./tailwind.config.js`), + require(`autoprefixer`), + ], +}; \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..babfd21 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +Sitemap: https://rongying.co/sitemap.xml + +User-agent: * +Disallow: \ No newline at end of file diff --git a/src/404.md b/src/404.md new file mode 100644 index 0000000..c90a1ba --- /dev/null +++ b/src/404.md @@ -0,0 +1,7 @@ +--- +layout: default +title: Not all who wander are lost +--- + +The page you are looking for does not seem to exist. +But thanks for dropping by. \ No newline at end of file diff --git a/src/_data/site.json b/src/_data/site.json new file mode 100644 index 0000000..c476b61 --- /dev/null +++ b/src/_data/site.json @@ -0,0 +1,9 @@ +{ + "name": "Rong Ying", + "url": "https://rongying.co", + "title": "My Blog", + "description": "Welcome to my blog", + "github": "https://github.io/kohrongying", + "twitter": "", + "linkedin": "https://www.linkedin.com/in/rongyingkoh/" +} \ No newline at end of file diff --git a/src/_includes/author.liquid b/src/_includes/author.liquid new file mode 100644 index 0000000..2452f90 --- /dev/null +++ b/src/_includes/author.liquid @@ -0,0 +1,7 @@ +
+
+
R
+ {{ site.name }} +
+

Talks about the web and almost whatever. She wants you to know this was built with 11ty and tailwind. And works even with Javascript disabled.

+
\ No newline at end of file diff --git a/src/_includes/base.liquid b/src/_includes/base.liquid new file mode 100644 index 0000000..4a09085 --- /dev/null +++ b/src/_includes/base.liquid @@ -0,0 +1,43 @@ + + + + + + + {{ site.title }} + + + + + + + + + + + + + + + {{ content }} + + + + \ No newline at end of file diff --git a/src/_includes/default.liquid b/src/_includes/default.liquid new file mode 100644 index 0000000..085355f --- /dev/null +++ b/src/_includes/default.liquid @@ -0,0 +1,11 @@ +--- +layout: main +--- + +

+ {{ title }} +

+ +{% include nav %} + +{{ content }} \ No newline at end of file diff --git a/src/_includes/footer.liquid b/src/_includes/footer.liquid new file mode 100644 index 0000000..776e110 --- /dev/null +++ b/src/_includes/footer.liquid @@ -0,0 +1,18 @@ +
+
+

+ {% if site.github != "" %} + Github + {% endif %} + + {% if site.linkedin != "" %} + · LinkedIn + {% endif %} + + {% if site.twitter != "" %} + · Twitter + {% endif %} + +

+
+
\ No newline at end of file diff --git a/src/_includes/main.liquid b/src/_includes/main.liquid new file mode 100644 index 0000000..e9a14e1 --- /dev/null +++ b/src/_includes/main.liquid @@ -0,0 +1,14 @@ +--- +layout: base +--- + +
+ +
+ + {{ content }} + +
+ +{% include footer %} +
diff --git a/src/_includes/nav.liquid b/src/_includes/nav.liquid new file mode 100644 index 0000000..49805ff --- /dev/null +++ b/src/_includes/nav.liquid @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/src/_includes/paginator.liquid b/src/_includes/paginator.liquid new file mode 100644 index 0000000..ef409a7 --- /dev/null +++ b/src/_includes/paginator.liquid @@ -0,0 +1,72 @@ + \ No newline at end of file diff --git a/src/_includes/post.liquid b/src/_includes/post.liquid new file mode 100644 index 0000000..31cb09f --- /dev/null +++ b/src/_includes/post.liquid @@ -0,0 +1,30 @@ +--- +layout: main +--- + +{% include nav %} + +

+ {{ title}} +

+ +
+ {{ date | date: "%Y-%m-%d" }} · + {{ content | readTime }} min read +
+ +
+ {% for tag in tags %} + {% if tag != "posts" %} + + + + {% endif %} + {% endfor %} +
+ +
+ {{ content }} +
+ +{% include author %} \ No newline at end of file diff --git a/src/about.md b/src/about.md new file mode 100644 index 0000000..254c8be --- /dev/null +++ b/src/about.md @@ -0,0 +1,6 @@ +--- +layout: default +title: This is me. +--- + +She/her. A software person. Singapore. \ No newline at end of file diff --git a/src/assets/img/chevron-left.svg b/src/assets/img/chevron-left.svg new file mode 100644 index 0000000..cc3b9de --- /dev/null +++ b/src/assets/img/chevron-left.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/assets/img/chevron-right.svg b/src/assets/img/chevron-right.svg new file mode 100644 index 0000000..f5d3b52 --- /dev/null +++ b/src/assets/img/chevron-right.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/assets/img/chevrons-left.svg b/src/assets/img/chevrons-left.svg new file mode 100644 index 0000000..9fc685b --- /dev/null +++ b/src/assets/img/chevrons-left.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/assets/img/favicon/apple-touch-icon.png b/src/assets/img/favicon/apple-touch-icon.png new file mode 100644 index 0000000..564b6e0 Binary files /dev/null and b/src/assets/img/favicon/apple-touch-icon.png differ diff --git a/src/assets/img/favicon/favicon-192x192.png b/src/assets/img/favicon/favicon-192x192.png new file mode 100644 index 0000000..e71d696 Binary files /dev/null and b/src/assets/img/favicon/favicon-192x192.png differ diff --git a/src/assets/img/favicon/favicon-32x32.png b/src/assets/img/favicon/favicon-32x32.png new file mode 100644 index 0000000..3aaa0ac Binary files /dev/null and b/src/assets/img/favicon/favicon-32x32.png differ diff --git a/src/assets/img/favicon/favicon-512x512.png b/src/assets/img/favicon/favicon-512x512.png new file mode 100644 index 0000000..b029315 Binary files /dev/null and b/src/assets/img/favicon/favicon-512x512.png differ diff --git a/src/assets/img/posts/mailbox.jpg b/src/assets/img/posts/mailbox.jpg new file mode 100644 index 0000000..fdeecb6 Binary files /dev/null and b/src/assets/img/posts/mailbox.jpg differ diff --git a/src/assets/styles/index.css b/src/assets/styles/index.css new file mode 100644 index 0000000..7c08700 --- /dev/null +++ b/src/assets/styles/index.css @@ -0,0 +1,4 @@ +.header-anchor { + color: grey!important; + text-decoration: none!important; +} \ No newline at end of file diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..d93cbd8 --- /dev/null +++ b/src/index.html @@ -0,0 +1,41 @@ +--- +layout: default +title: Blog
部落格 +pagination: + data: collections.posts + size: 10 + reverse: true + alias: posts +--- + +{% for post in pagination.items %} +{% if post.data.published %} +
+

+ {{ post.data.title }} + · {{ post.templateContent | readTime }} min read +

+ {{ post.date | date: "%Y-%m-%d" }} +

{{ post.data.post_excerpt }}...

+ +
+
+ {% for tag in post.data.tags %} + {% if tag != "posts" %} + + + + {% endif %} + {% endfor %} +
+ + Read this post → +
+ +
+ +{% endif %} +{% endfor %} + + +{% include paginator %} \ No newline at end of file diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..a384d9c --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,26 @@ +{ + "name": "My Blog", + "short_name": "Blog", + "icons": [ + { + "src": "/assets/img/favicon/favicon-32x32.png", + "sizes": "32x32", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/assets/img/favicon/favicon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/assets/img/favicon/favicon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#000", + "background_color": "#fff", + "display": "standalone", + "start_url": "/" +} \ No newline at end of file diff --git a/src/posts/2020/07/Flutter.md b/src/posts/2020/07/Flutter.md new file mode 100644 index 0000000..8092bb3 --- /dev/null +++ b/src/posts/2020/07/Flutter.md @@ -0,0 +1,124 @@ +--- +title: Flutter +date: 2020-07-01 +tags: +- android +- flutter +--- +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + + + +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + + +## Horizontal Rules +___ + +## Emphasis + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Strikethrough~~ + + +## Blockquotes + + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + + +## Lists + +Unordered + ++ Create a list by starting a line with `+`, `-`, or `*` ++ Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit ++ Very easy! + +Ordered + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + +1. You can use sequential numbers... +1. ...or keep all the numbers as `1.` + +Start numbering with offset: + +57. foo +1. bar + + +## Code + +Inline `code` + +Indented code + + // Some comments + line 1 of code + line 2 of code + line 3 of code + + +Block code "fences" + +``` +Sample text here... +``` + +Syntax highlighting + +``` js +var foo = function (bar) { + return bar++; +}; + +console.log(foo(5)); +``` + +## Tables + +| Option | Description | +| ------ | ----------- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +Right aligned columns + +| Option | Description | +| ------:| -----------:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + + +## Links + +[link text](http://dev.nodeca.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +Autoconverted link https://github.com/nodeca/pica (enable linkify to see) + diff --git a/src/posts/2020/07/Kotlin.md b/src/posts/2020/07/Kotlin.md new file mode 100644 index 0000000..f9ac2bb --- /dev/null +++ b/src/posts/2020/07/Kotlin.md @@ -0,0 +1,125 @@ +--- +title: Kotlin +date: 2020-07-01 +# published: false +tags: +- kotlin +- android +--- +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum + + +{% asset_img 'mailbox.jpg' 'mailbox' %} + +# h1 Heading +## h2 Heading +### h3 Heading +#### h4 Heading +##### h5 Heading +###### h6 Heading + + +## Horizontal Rules +___ + +## Emphasis + +**This is bold text** + +__This is bold text__ + +*This is italic text* + +_This is italic text_ + +~~Strikethrough~~ + + +## Blockquotes + + +> Blockquotes can also be nested... +>> ...by using additional greater-than signs right next to each other... +> > > ...or with spaces between arrows. + + +## Lists + +Unordered + ++ Create a list by starting a line with `+`, `-`, or `*` ++ Sub-lists are made by indenting 2 spaces: + - Marker character change forces new list start: + * Ac tristique libero volutpat at + + Facilisis in pretium nisl aliquet + - Nulla volutpat aliquam velit ++ Very easy! + +Ordered + +1. Lorem ipsum dolor sit amet +2. Consectetur adipiscing elit +3. Integer molestie lorem at massa + + +1. You can use sequential numbers... +1. ...or keep all the numbers as `1.` + +Start numbering with offset: + +57. foo +1. bar + + +## Code + +Inline `code` + +Indented code + + // Some comments + line 1 of code + line 2 of code + line 3 of code + + +Block code "fences" + +``` +Sample text here... +``` + +Syntax highlighting + +``` js +var foo = function (bar) { + return bar++; +}; + +console.log(foo(5)); +``` + +## Tables + +| Option | Description | +| ------ | ----------- | +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + +Right aligned columns + +| Option | Description | +| ------:| -----------:| +| data | path to data files to supply the data that will be passed into templates. | +| engine | engine to be used for processing templates. Handlebars is the default. | +| ext | extension to be used for dest files. | + + +## Links + +[link text](http://dev.nodeca.com) + +[link with title](http://nodeca.github.io/pica/demo/ "title text!") + +Autoconverted link https://github.com/nodeca/pica (enable linkify to see) diff --git a/src/posts/posts.json b/src/posts/posts.json new file mode 100644 index 0000000..7bb3b96 --- /dev/null +++ b/src/posts/posts.json @@ -0,0 +1,5 @@ +{ + "layout": "post.liquid", + "tags": ["posts"], + "published": true +} \ No newline at end of file diff --git a/src/sitemap.md b/src/sitemap.md new file mode 100644 index 0000000..9da8aeb --- /dev/null +++ b/src/sitemap.md @@ -0,0 +1,13 @@ +--- +permalink: /sitemap.xml +eleventyExcludeFromCollections: true +--- + + {% for page in collections.all %} + + {{ site.url }}{{ page.url | url }} + {{ page.date }} + {{page.data.changeFreq}} + + {% endfor %} + \ No newline at end of file diff --git a/src/tagList.md b/src/tagList.md new file mode 100644 index 0000000..1dd8736 --- /dev/null +++ b/src/tagList.md @@ -0,0 +1,22 @@ +--- +layout: default +pagination: + data: collections + size: 1 + alias: tag +permalink: /tags/{{ tag }}/ +eleventyComputed: + title: "{{ tag }}" +--- + +{% for post in collections[tag] %} +
+

+ {{ post.data.title }} +

+ {{ post.date | date: "%Y-%m-%d" }} +

{{ post.data.post_excerpt }}... + Read More +

+
+{% endfor %} diff --git a/src/tags.md b/src/tags.md new file mode 100644 index 0000000..0db677a --- /dev/null +++ b/src/tags.md @@ -0,0 +1,14 @@ +--- +layout: default +title: Tags +--- + +{% for tag in collections.tagList %} + + + + + +{% endfor %} diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..7606ab3 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,65 @@ +module.exports = { + darkMode: 'class', + purge: ['./src/**/*.md', './_includes/**/*.liquid'], + theme: { + extend: { + typography: (theme) => ({ + dark: { + css: { + color: "white", + a: { + color: "#9ECE6A", + "&:hover": { + color: "#9ECE6A", + }, + }, + h1: { + color: "white", + }, + h2: { + color: "white", + }, + h3: { + color: "white", + }, + h4: { + color: "white", + }, + h5: { + color: "white", + }, + h6: { + color: "white", + }, + th: { + color: "white", + }, + strong: { + color: "white", + }, + "blockquote p": { + color: "white", + }, + code: { + color: "white", + }, + figcaption: { + color: theme("colors.gray.500"), + }, + "::selection": { + backgroundColor: "white", + }, + }, + } + }) + }, + }, + variants: { + extend: { + typography: ['dark'] + } + }, + plugins: [ + require('@tailwindcss/typography') + ], +} \ No newline at end of file diff --git a/tailwind.css b/tailwind.css new file mode 100644 index 0000000..ede94e0 --- /dev/null +++ b/tailwind.css @@ -0,0 +1,11 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.paginator-text { + @apply text-gray-600 font-bold py-2 px-4; +} + +.post-tag { + @apply inline-block text-xs rounded-full py-2 px-4 mt-1 mr-1 bg-gray-300 dark:bg-gray-500; +} \ No newline at end of file