Giter Club home page Giter Club logo

karngyan / karngyan.com Goto Github PK

View Code? Open in Web Editor NEW
333.0 4.0 118.0 2.39 MB

Dark themed, SEO friendly: Nuxt Content + TailwindCSS + Firebase + i18n + RSS2 based SPA for procrastinating developers to quickly spin up their own kickass blog and showcase their projects.

Home Page: https://template.karngyan.com

License: MIT License

Vue 72.01% JavaScript 27.84% CSS 0.06% Shell 0.10%
blog portfolio website template developer projects firebase showcase-website comments likes

karngyan.com's Introduction


Logo

Netlify Status

template.karngyan.com

Dark themed, SEO friendly: Nuxt Content + TailwindCSS + Firebase + i18n based SPA for procrastinating developers to quickly spin up their own kickass blog and showcase their projects.

Product Name Screen Shot

Visit: template.karngyan.com to see all feature enabled version of this template.

Table of Contents
  1. Instructions to make it your own
  2. Other Deployment Options
  3. Contributing
  4. Awesome Forks
  5. License
  6. Contact

Instructions to make it your own

Recommended [more like easiest and quickest way]

  1. Fork the project.
  2. Clone your copy and create your own branch out of it.
# replace <username> with your username
git clone [email protected]:<username>/karngyan.com.git
git checkout -b website
  1. Choose your favorite editor and open the project.
  2. Local development setup:
# install node <= 14 and yarn (highly recommended)
$ npm install --global yarn

# cd into your project and install the dependencies
$ yarn install

# run the dev server
$ yarn dev

# open localhost:3000

Page might not load right now, you can set firebase.enabled = false in karngyan.config.js for now. Read along.

  1. Edit karngyan.config.js to your liking. You can turn on and off sections/pages by changing the enabled value for respective objects.
    • You can add your images to static directory. It matches to root when deployed.
    • Update the strings object accordingly.
  2. To enable comments and likes on blog posts and project posts, we use Firebase. If you don't need that, set firebase.enabled = false in karngyan.config.js, and move to the next step. Otherwise follow these:
    • Create a firebase project.
    • Create a web app and get the firebase config object. (You can follow this video)
    • Enable Authorization (Google Provider supported as of now)
    • Enable Firestore
    • Set the following cloud firestore rules, so that your database is write protected:
      rules_version = '2';
      service cloud.firestore {
        match /databases/{database}/documents {
          match /likes/{id} {
            allow write: if request.auth != null;
            allow read: if true;
          }
          match /comments/{id} {
            allow write: if request.auth != null && 
              request.resourse.data.text.size() > 0 &&
              request.resource.data.slug.size() > 0;
            allow read: if true;
          }
        }
      }
      
    • This actually does open a security loophole of open reads and will increase your firebase bills for too many reads.
    • Only if you'll be testing locally
      • Create a copy of .env.example -> .env and add values from config object.
  3. Deploy to netlify using the following config:
    • Repository: Your forked repository
    • Branch: website
    • Publish Directory: dist
    • Build Command: yarn generate
    • Don't forget to add all the environment variables if you have enabled firebase.
  4. Write your blogs in content/posts and projects in content/projects in markdown or html. There's a couple of samples that come with the template.
  5. Add to staging, Commit and Push.

The code is yours, edit whatever you feel like. Don't forget to star the repository if you liked it.

This project uses nuxt content, you can read about it here

You can also set up forestry to never open code and use a cool editor. I'll add instructions to use that later.

Other Deployment Options

My own website karngyan.com is actually deployed on AWS in an S3 bucket, with Cloudfront. But that comes with a few caveats to configure and maintain. Anyways the gulpfile.js to deploy to AWS is committed with the project if you feel like you want to check it out.

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Awesome Forks Awesome

Raise a PR when your website's up to add you here.

Find your alphabetical position, or raise a PR to automate this.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Karn - @gyankarn - [email protected]

For detailed explanation on how things work, check out Nuxt.js docs.

karngyan.com's People

Contributors

ankurdubey521 avatar hacheraw avatar karngyan avatar klaudioz avatar madhavkauntia avatar sarthakgupta072 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

karngyan.com's Issues

Resume Page Revamp [Config must be backward compatible]

Idea
PDF Readers affect page loads. Some people do not prefer rendering the entire PDF in the resume page.

Expected solution
A complete revamp of the Resume page. There's not much thought given to the UI as of now. But a good starting point would be Linkedin home Page in dark mode. Or check out the resume tab on https://peerlist.io/karngyan

Also, I'd like to keep the download resume button somewhere on the page as well.

Additional context
The karngyan.config.js should be backward compatible with minimum changes.

Show reveal.js presentation in projects

Is your feature request related to a problem? Please describe.
I'd like to able to show a presentation in the browser for my projects. Example

Describe the solution you'd like
Implementing revealjs-vue. It's not very updated so it's necessary to test it first.

Additional context
Maybe it's too heavy or too complex to implement or it's not giving a real value.

Add plausible for analytics

Is your feature request related to a problem? Please describe.
Google Analytics is evil.

Describe the solution you'd like
I followed this guide. It looks easy to do but when I check the source of my website I can't see Plausible add it to my head

Describe alternatives you've considered
I didn't find more.

Additional context
This is what I did, after running https://debbie.codes/blog/nuxt-analytics/:

Screen Shot 2021-06-18 at 2 57 51 PM

Screen Shot 2021-06-18 at 2 57 38 PM

Empty section addition

Is your feature request related to a problem? Please describe.
I'd like to have an empty section to add new stuff from zero. It can be disabled by default.

Describe the solution you'd like
With simple code, anybody will be able to use it to create more sections as desired.

Additional context
On my website I was able to "duplicate" buyMeACoffee section to add one linked to my Polywork site, but it's out of my knowledge.

Nuxt markdown content gives 404 while hosted on github pages

Describe the bug
I started experimenting a bit, using your framework, and I came to the idea of hosting it on GitHub pages. For this I used the following workflow as documented on the site of Nuxt. This all went well, and it was easy to set up. Once everything was set up, I came to the conclusion that the Nuxt content route mapping does not work and that it always displays a 404 not found error when loading direct Nuxt markdown content via a URL.

I don't know if this is normal behavior on the github side but I thought you might know more about it since, you have focused deeply on development and working with Nuxt content.

To Reproduce
Steps to reproduce the behavior:

  • Clone the repo and then push it to a repo with the following naming convention username.github.io and since you didn't make any changes to the repo don't forget to set the Firebase to false in the config.
  • Create a new .yml file in the .github/workflow folder as described
  • When created, push the changes to the github test repo
  • In your GitHub repo, go to settings -> pages and change the course branch to gh-pages
  • After that, click on the link indicated in a green alert box
  • When the site has loaded correctly click on projects then click on any project doesn't matter which one
  • As you can see, the content loads correctly and everything is fine
  • Now reload the page as you can see you get a 404 not found error message while you would expect the content to load again

GitHub actions workflow file as given:

name: cd

on: [push, pull_request]

jobs:
  cd:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        os: [ubuntu-latest]
        node: [14]

    steps:
      - name: Checkout ๐Ÿ›Ž๏ธ
        uses: actions/checkout@master

      - name: Setup node env ๐Ÿ”ง
        uses: actions/[email protected]
        with:
          node-version: ${{ matrix.node }}

      - name: Install dependencies ๐Ÿ”ง
        run: yarn

      - name: Generate ๐Ÿ”ง
        run: yarn generate

      - name: Deploy ๐Ÿš€
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist

Expected behavior
The Nuxt content should also load after a refresh of the whole page.

Recommendations header point to linkedin home page instead of user's linkedin page

Describe the bug
Recommendations section header point to LinkedIn home page.

Expected behavior
If user has entered the linkedin user name i.e. social.linkedin in karngyan.config.js, the recommendations header should redirect to user's linkedin page. Otherwise, no links should be present.

Additional context
If you're running the project for the first time, you can disable firebase in karngyan.config.js for easier development.

Add an image to a blog entry

Is your feature request related to a problem? Please describe.
Putting a folder in ./content/posts which images break the blog.

Describe the solution you'd like
I just would like to see how to add an image in any of the posts already created.

Describe alternatives you've considered
I have a hexo blog. Porting the .md was easy but the folder with the name of the post containing images failed.

Amazing job BTW

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.