Blogkit - A unified blogging engine built with Next.js

Overview

Blogkit (beta)

Blogkit is a unified blog engine inspired by Sairin.

Notion Example

Get started with starter templates

Template Description
blogkit-notion-starter Notion database
blogkit-yuque-starter Yuque repo
blogkit-strapi-starter Strapi CMS

Themes

Theme Description
blogkit-theme-minimal Minimal theme

Configuration

blogkit.config.js

// with ts intellisense
import { defineConfig } from 'blogkit'

export default defineConfig({
  siteConfig: {
    title: 'MyBlog', // required
    author: '',
    url: '',
  },
  theme: {},
  request: {},
})

Details to see types.ts, but more recommend to see blogkit-example.

Development

For full example see blogkit-example.

Integrate with custom service

Set the request in blogkit.config.ts.

This is how blogkit-notion provided.

Theme

TODO, if you still, you could see the source code of blogkit-theme-minimal.

Q

Should I redeploy the Vercel project after my post updated?

No.

How long will my post update?

Every 1 minute.

License

MIT © 2nthony

Comments
  • feat(strapi): add strapi

    feat(strapi): add strapi

    add strapi support (not sure whether you need it)

    it's a really simple version, maybe should take more support when blogkit updated. (configuring with plugin)

    and this version must use fields in strapi: title, content, excerpt

    thx.

    opened by colmugx 7
  • add example

    add example

    the example in root.

    It shuold be a quite simple, otherwise should guide to starter templates.

    example/
    - reques.ts
    - theme/Home.tsx
    - theme/Post.tsx
    - blogkit.config.ts
    
    documentation 
    opened by 2nthony 3
  • [notion] markdown hyperlink enhancement

    [notion] markdown hyperlink enhancement

    https://github.com/2nthony/blogkit/blob/36858ff64a13508d85fd33110ccc4499675c71d0/packages/blogkit-notion/src/index.ts#L76-L82

    if a hyperlink is matched in post list, then parse it to in-site link, not outside(notion) link.

    opened by 2nthony 0
  • config file enhancement

    config file enhancement

    maybe should take more support when blogkit updated. (configuring with plugin) #27

    // pseudo code
    type BlogkitConfig = {
      request: Request | ((config) => Request)
    }
    
    enhancement 
    opened by 2nthony 0
  • refactor: rss

    refactor: rss

    rss should move back to core:

    export class Blogkit {
      getFeeds(): Promise<FeedItem[]> {}
    
      rssHandler = async (req, res) => {
        const feed = new Feed({...})
        const feedItems = await this.getFeeds()
    
        // loop add feed item
    
        res.send(feed.atom1())
      }
    }
    

    then in request:

    defineConfig({
      request: {
        // ...
        getFeeds() {
          return Promise.resolve([{...}])
        }
      }
    })
    
    breaking 
    opened by 2nthony 0
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • package.json (npm)
    • packages/blogkit-notion/package.json (npm)
    • packages/blogkit-strapi/package.json (npm)
    • packages/blogkit-theme-minimal/package.json (npm)
    • packages/blogkit-yuque/package.json (npm)
    • packages/core/package.json (npm)

    Configuration

    🔡 Renovate has detected a custom config for this PR. Feel free to ask for help if you have any doubts and would like it reviewed.

    Important: Now that this branch is edited, Renovate can't rebase it from the base branch any more. If you make changes to the base branch that could impact this onboarding PR, please merge them manually.

    What to Expect

    With your current configuration, Renovate will create 8 Pull Requests:

    chore(deps): update pnpm to v6.35.1
    • Schedule: ["at any time"]
    • Branch name: renovate/pnpm-6.x
    • Merge into: main
    • Upgrade pnpm to 6.35.1
    fix(deps): update dependency axios to ^0.27.0
    • Schedule: ["at any time"]
    • Branch name: renovate/axios-0.x
    • Merge into: main
    • Upgrade axios to ^0.27.0
    chore(deps): update dependency @​types/react to v18
    • Schedule: ["at any time"]
    • Branch name: renovate/react-18.x
    • Merge into: main
    • Upgrade @types/react to ^18.0.0
    chore(deps): update dependency next to v13
    • Schedule: ["at any time"]
    • Branch name: renovate/major-nextjs-monorepo
    • Merge into: main
    • Upgrade next to ^13.0.0
    chore(deps): update pnpm to v7
    • Schedule: ["at any time"]
    • Branch name: renovate/pnpm-7.x
    • Merge into: main
    • Upgrade pnpm to 7.16.1
    chore(deps): update react monorepo to v18 (major)
    • Schedule: ["at any time"]
    • Branch name: renovate/major-react-monorepo
    • Merge into: main
    • Upgrade react to ^18.0.0
    • Upgrade react-dom to ^18.0.0
    fix(deps): update dependency @​notionhq/client to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/notionhq-client-2.x
    • Merge into: main
    • Upgrade @notionhq/client to ^2.0.0
    fix(deps): update dependency axios to v1
    • Schedule: ["at any time"]
    • Branch name: renovate/axios-1.x
    • Merge into: main
    • Upgrade axios to ^1.0.0

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Imagine of major release

    Imagine of major release

    template(starter) = theme

    the theme and template(starter) should be together, which means is a theme is a template(starter).

    Therefore, the template will become a basic next.js project. I am very clear that the theme should be separate from blogkit config file.

    The starter should use yarn, the main reason is Vercel uses yarn.

    reduce threshold

    use js in template, not ts. (core sure ts)

    breaking

    remove theme field in blogkit.config.js, reason see above.

    getHomePageStaticProps -> getPostListStaticProps getPostPageStaticProps -> getPostStaticProps


    setting the theme in config file makes extending pages or features hard.

    breaking major 
    opened by 2nthony 0
Owner
2nthony
Looking for a Job
2nthony
A Technical Blogging Website that utilizes Notion as a CMS for ease of modification with the help of the notion-API & whose content has been rendered with next-js and react-notion-x

GDSC MCE Blogs This repo is what GDSC MCE uses to power their blogging website gdsc-mce-blogs. It uses Notion as a CMS, fetching content from Notion a

null 7 Dec 16, 2022
LogTure - A minimal designed, fully customizable, and extensible modern personal blogging framework, built with Nextjs.

LogTure - A minimal designed, fully customizable, and extensible modern personal blogging framework, built with Nextjs.

Sam Zhang 14 Aug 26, 2022
Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics.

Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics. Includes tags/categories support and extensive features for code blocks such as live preview, line numbers, and line highlighting.

Priya Chakraborty 0 Jan 29, 2022
Markdown Blogging, Without Setup or Signup

You write. We do the rest. ?? Memos.pub Memos.pub publishes Markdown files instantly without any setup. If you have a public GitHub repo with Markdown

Thien Do 108 Dec 11, 2022
Markdown Blogging, Without Setup or Signup

You write. We do the rest. ?? Memos.pub Memos.pub publishes Markdown files instantly without any setup. If you have a public GitHub repo with Markdown

Thien Do 77 Apr 27, 2022
A tiny, fast and fun static site generator for quick blogging

1POST A tiny, fast and fun static site generator for quick blogging. 1POST is written entirely in NodeJS and has no dependencies. You can install as a

Felippe Regazio 141 Dec 5, 2022
Unified-myst is a monorepo containing packages for using MyST

unified-myst (IN-DEVELOPMENT) unified-myst is a monorepo containing packages for using MyST (Markedly Structured Text), within the unified ecosystem.

Executable Books 5 Apr 14, 2022
Utilities for parsing and manipulating LaTeX ASTs with the Unified.js framework

unified-latex Monorepo for @unified-latex packages. These packages provide a JS/TypeScript interface for creating, manipulating, and printing LaTeX Ab

Jason Siefken 29 Dec 27, 2022
A unified and lightweight web application framework for multiple platforms.

Handlers.js Handlers.js is a unified and lightweight web application framework for multiple platforms. import handlerJS from "handlers.js"; const App

186526 7 Jul 26, 2022
Unified JavaScript logging system. KISS, light and library free.

Logger.js Logger.js is a JavaScript ES6 module that offers a unified console output across Firefox and Chromium based browsers. It handles standard er

Arthur Beaulieu 1 Oct 1, 2020
Incredible drastically simplifies creation of developer video content. It offers a unified workflow to storyboard, record, collaborate and produce the video.

?? Introduction Incredible drastically simplifies creation of developer video content. It offers a unified workflow to storyboard, record, collaborate

Incredible 113 Dec 6, 2022
The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

介绍 项目集成了工作流引擎、报表引擎和组织机构权限管理后台,可以应用于OA、HR、CRM、PM等系统开发。配合使用tlv8 ide可以快速实现业务系统开发、测试、部署。 后台采用Spring MVC架构简单方便,前端使用流行的layui界面美观大方。 采用组件开发技术,提高系统的灵活性和可扩展性;采

Qian Chen 38 Dec 27, 2022
A personal semantic search engine capable of surfacing relevant bookmarks, journal entries, notes, blogs, contacts, and more, built on an efficient document embedding algorithm and Monocle's personal search index.

Revery ?? Revery is a semantic search engine that operates on my Monocle search index. While Revery lets me search through the same database of tens o

Linus Lee 215 Dec 30, 2022
Chappe - 🧑‍💻 Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine.

Chappe Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine. Chappe is a Developer Do

Valerian Saliou 146 Jan 1, 2023
🧑‍💻 Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine.

Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine. Chappe is a Developer Docs buil

Crisp (OSS) 146 Jan 1, 2023
😂 is a self-hostable blog engine built on the tech that powers christine.website

?? ?? is a blog engine powered by Deno. ?? has no canonical pronunciation, and users are not encouraged to come up with one. ?? is and always will be

Xe Iaso 25 Sep 4, 2022
🖼️ Image proxy for Next.js. Makes it possible to use dynamic domains in next/image component.

Next.js Image Proxy Image proxy for Next.js. Makes it possible to use dynamic domains in next/image component. ❔ Motivation This library makes it poss

Blazity 30 Dec 1, 2022
next-graphql-server is a library for building production-grade GraphQL servers using Next.js with API Routes

next-graphql-server next-graphql-server is an easy to use Next.js library for creating performant GraphQL endpoints on top of Next.js API Routes. Star

Jakub Neander 82 Nov 21, 2022
💻 A simple Create Next App template to start your projects with Next.js, TypeScript, ESLint, Prettier and other tools.

⚡ Next Typescript Template ⚡ A simple Create Next App template to start your projects with Next.js, TypeScript, ESLint, Prettier and other tools. Quic

João Gabriel 13 Nov 23, 2022