GithubHelp home page GithubHelp logo

kumalee / astro-ink Goto Github PK

View Code? Open in Web Editor NEW

This project forked from one-aalam/astro-ink

0.0 1.0 0.0 11.88 MB

Crisp, minimal, personal blog theme for Astro

Home Page: https://astro-ink.vercel.app

License: MIT License

JavaScript 11.97% TypeScript 10.64% CSS 2.28% Roff 2.37% Svelte 15.92% Astro 46.42% MDX 10.40%

astro-ink's Introduction


Astro Ink is a minimal theme created to serve minimalistic markdown-based blog needs. It ships with almost all the basic Astro components that you might need while creating light-weight, performant, personal blogs, that focus on shipping less Javascript by default.



Astro Banner

It's hugely inspired by Hugo's Ink theme and strives to remain light, while providing the basis for a beautiful, minimal blog.

Features

  • Minimal, Crisp, Markdown-Blog Ready always updated to Astro's latest (currently 2.x release) under the hood.
  • Svelte Ready - In its effort to remain light-weight, performant, and more approachable from Astro's POV, Svelte is used for interactive components like the theme switcher
  • Modular - The structure is highly modular, with components doing just one job, and one job well.
  • Astro 2.0 Content Collection + Dynamic Pages - It's ready with Next.js like dynamic pages, to support a tag-based classification system with paginated results, all configurable
  • Dark Mode & Color Codes - It supports dark mode, and 6+ color modes that's selected using tailwind.config.js. You can pass THEME_KEY with the dev or build script/commands ex: THEME_KEY=purpleheart astro build/dev to change the color theme being used. All the available themes can be found in tailwind.theme.config.js. To customize the blog section, add any of the Tailwind Typography's prose-{color} classes as referred here
  • Netlify CMS - Add/Edit/Update all the posts in the /blog directory by visiting your-site.netlify.com/admin ex: astro-ink.netlify.app/admin with your Netlify credentials. It needs Netlify Identity(https://app.netlify.com/sites/your-site/settings/identity#registration ) and Git Gateway(https://app.netlify.com/sites/your-site/settings/identity#services) enabled.
  • Future Posts(with Github Actions) - Create posts in the /src/drafts directory with a future date in the YYYY-MM-DD format, and let a specially crafted Github Action take care of auto-publishing it on your specified date. You can configure the check interval in Github Action.
  • Client-Side Search - Allow your users get to your blog posts quickly with client-side search feat. Lunr.js
  • View counter feat. Redis/Upstash Redis - Configure your Redis host, place it's connection URL in your hosting provider's console (Vercel, Netlify, etc.) or in a .env file(local development), un-comment the connection code here and deploy. Your site's powered with a dynamic views counter. See .env.example to understand the different environment values you need to configure.
  • Media Page with YT channel support - Easily show your YT channel content on the media page by just putting your channel id in config file's ytChannelId constant. Optionally, disable the image thumbnails from your YT channel's video listing by setting USE_MEDIA_THUMBNAIL to false.
  • Author Cards - Easily add post based or site-wide Author cards, that include a Twitter follow button by setting USE_AUTHOR_CARD to true inside config file.
  • Themed image overlay - You can optionally enable overlays, that can add a nice themed gradient on top of your post images by setting USE_POST_IMG_OVERLAY to true inside config file.

How to start?

Just clone this template, and start working from your clone. You have all the common NPM commands at your disposal like dev, build, etc. Refer package.json to see a list of all the available commands.

Note: Use npx degit one-aalam/astro-ink to clone the template without any of the git history

Note: This template genrates server (SSR ready) output by default. If you want static builds

  • change output to static from server in astro.config.js
  • remove adapter: vercel()
  • remove the views counter API
  • set USE_VIEW_STATS to false inside config.ts

Note: Before running npm run dev for the very first time -

  • create a .env file by running mv .env.example .env (if you're on a Linux distro or Mac)
  • set the SITE_URI variable as SITE_URI=http://localhost:4321 (where 4321 is the port at which your project is running)

Built with Astro Ink

know a site built with Astro Ink? Let me know on Twitter

Wanna learn Astro while building Ink?

This theme was initially built with first an alpha, and then a beta version of the Astro Framework. If you're just starting with Astro, you can actually learn Astro while building this very theme by following a series of blogs I've written that teaches you Astro ground-up!

Head over to aalam.in/blog and know

astro-ink's People

Contributors

one-aalam avatar schebet avatar mlaurel avatar esh-g avatar joshswooft avatar mtdowner avatar mukhtharcm avatar tobiaswild avatar manooog avatar outofeastgate avatar adie avatar geeteshpillarplus avatar j700070 avatar upholdjd avatar merwinpoulose avatar misbahansori avatar njacobs5074 avatar bbdevin avatar devkomdev avatar fahaik avatar github-actions[bot] avatar airidase avatar matdexir avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.