diff --git a/content/about.md b/content/about.md index 4a36395..0736907 100644 --- a/content/about.md +++ b/content/about.md @@ -38,6 +38,7 @@ I am passionate about learning new skills and staying updated with the latest tr {{< raw >}}
+
diff --git a/content/posts/kubernetes-node/index.md b/content/posts/kubernetes-node/index.md index 4e1842b..75250e1 100644 --- a/content/posts/kubernetes-node/index.md +++ b/content/posts/kubernetes-node/index.md @@ -5,8 +5,8 @@ date: 2024-05-10T12:05:51+05:30 slug: draft: false author: - name: Niksihora - link: + name: Nikhil Sihora + link: https://www.linkedin.com/in/nik-sihora/ email: avatar: description: @@ -34,30 +34,42 @@ message: repost: enable: true url: - -# See details front matter: https://fixit.lruihao.cn/documentation/content-management/introduction/#front-matter --- + +- Kubernetes is an open-source **container orchestration** tool developed by Google. +- It helps us manage containerized applications in different deployment environments. + +## Container Orchestration + +- The automated deployment and management of containers is called **container orchestration**. +- Containers act as perfect hosts for micro-services (running independently). +- The rise of micro-services architecture led to applications using 1000s of containers that need to be smartly managed. +- Container orchestration offers: + - **High Availability** (no downtime) + - **Horizontal Scalability** + - **Disaster Recovery** + - **And so much more..** + # Kubernetes Node -- A physical or virtual machine on which Kubernetes is installed +- A physical or virtual machine on which Kubernetes is installed. - **Nodes are cluster scoped. They are not scoped within a namespace.** - When you install Kubernetes on a node, the following components are installed. Some of them are used in worker nodes and the rest are used in master nodes. - - API Server + - Kube API Server - `etcd` Service - Kubelet Service - - Container Runtime - - Controller - - Scheduler + - Container Runtime (Docker Engine, CRI-O, containerd) + - Kube Controller + - Kube Scheduler - A **cluster** is a collection of nodes grouped together ## Worker Nodes - ![worker-node](/posts/kubernetes-node/worker-node.png) -- These nodes do the actual work so they need to have more resources -- Each worker node has multiple pods running on it -- 3 processes must be installed on every worker node - - **Container Runtime** (eg. docker) +- These nodes do the actual work so they need to have more resources. +- Each worker node can have multiple pods running on it. +- 3 processes must be installed on every worker node. + - **Container Runtime** (eg. Docker Engine, CRI-O, containerd) - **Kubelet** - process of Kubernetes - starts pods and runs containers inside them @@ -65,40 +77,33 @@ repost: - **Kubeproxy** - process of Kubernetes - forwards the requests to pods intelligently - - Image - - Kubeproxy forwards requests to the DB pod running on the same node to minimize network overhead. + - Example: Kubeproxy forwards requests to the DB pod running on the same node to minimize network overhead. +![kube-proxy](/posts/kubernetes-node/kube-proxy.png) - ![kube-proxy](/posts/kubernetes-node/kube-proxy.png) - - ## Master Nodes - ![master-node](/posts/kubernetes-node/master-node.png) - Control the cluster state & manage worker nodes -- Need less resources as they don't do the actual work +- Need less resources as they typically only run core components of kubernetes - Multi-master setup is often used for fault tolerance - 4 processes run on every master node - - **API Server** - - User interacts with the cluster via the API server using a client (Kubernetes Dashboard, CLI, or Kubernetes API) - - Cluster gateway (acts as the entry point into the cluster) - - Can be used for authentication - + - **Kube API Server** + - User interacts with the cluster via the Kube API server using a client (Kubernetes Dashboard, CLI, or Kubernetes API) + - Cluster gateway (acts as the entry point into the cluster) + - Can be used for authentication ![kube-apiserver](/posts/kubernetes-node/kube-apiserver.png) - - **Scheduler** - - Decides the node where the new pod should be scheduled and sends a request to the Kubelet to start a pod. - + - **Kube Scheduler** + - Decides the node where the new pod should be scheduled and sends a request to the Kubelet to start a pod. ![kube-scheduler](/posts/kubernetes-node/kube-scheduler.png) - - **Controller** - - Detects state changes like crashing of pods - - If a pod dies, it requests scheduler to schedule starting up of a new pod - + - **Kube Controller** + - Detects state changes like crashing of pods + - If a pod dies, it requests scheduler to schedule starting up of a new pod ![kube-controller](/posts/kubernetes-node/kube-controller.png) - - **etcd** - - Key-value store of the cluster state (also known as cluster brain) - - Cluster changes get stored in the etcd - - In multi-master configuration, etcd is a distributed key-value store - - Application data is not stored in the etcd \ No newline at end of file + - **etcd** + - Key-value store of the cluster state (also known as cluster brain) + - Cluster changes get stored in the etcd + - In multi-master configuration, etcd is a distributed key-value store + - Application data is not stored in the etcd \ No newline at end of file diff --git a/content/posts/kubernetes-pod/index.md b/content/posts/kubernetes-pod/index.md new file mode 100644 index 0000000..d607587 --- /dev/null +++ b/content/posts/kubernetes-pod/index.md @@ -0,0 +1,104 @@ +--- +weight: 1 +title: Kubernetes Pod +date: 2024-06-14T16:27:15+05:30 +type: posts +author: + name: Nikhil Sihora + link: https://www.linkedin.com/in/nik-sihora/ +description: +resources: + - name: featured-image + src: kubernetes.png +tags: + - kubernetes +categories: + - kubernetes +lightgallery: true +reward: false +toc: + auto: false +--- + + +- Kubernetes doesn’t run containers directly on the nodes. Every container is encapsulated by a pod. +- Smallest unit of computing Kubernetes. +- A pod is a single instance of an application. If another instance of the application needs to be deployed, another pod is deployed with the containerized application running inside pod. +- Pods are epheremeral resources, meaning that Pods can be terminated at any point and then restarted on another node within our Kubernetes cluster. +- Creates a running environment over the container so that we only interact with the Kubernetes layer. This allows us to replace the container technology like Docker. +- **Each pod gets an internal IP address** for communicating with each other (virtual network created by K8). +- If a pod is restarted (maybe after the application running on it crashed), its IP address may change. + +![kubernetes-pod](/posts/kubernetes-pod/kubernetes-pod.png) + +{{< admonition type=tip title="" open=true >}} + +⛔ Sometimes we need to have a helper container for the application container. In that case, we can run both containers inside the same pod. This way both containers share the same storage and network and can reference each other as `localhost`. + +Without using Pods, making a setup like this would be difficult as we need to manage attaching the helper containers to the application containers and kill them if the application container goes down. + +Although, most use cases of pods revolve around single containers, it provides flexibility to add a helper container in the future as the application evolves. +![kubernetes-pod-multi-container](/posts/kubernetes-pod/kubernetes-pod-multi-container.png) + +{{< /admonition >}} + +# Simple Config for a Pod + +```yml +apiVersion: v1 +kind: Pod +metadata: + labels: + name: webserver +spec: + containers: + - name: httpd + image: httpd:latest +``` + +- `apiVersion` Which version of the Kubernetes API we're using to create this object. You can read more about API versioning in Kubernetes [here](https://kubernetes.io/docs/reference/using-api/#api-versioning). + +- `kind` This defines what kind of Kubernetes object we want to create. + +- `metadata` This is data that helps us uniquely identify the object that we want to create. Here we can provide a name for our app, as well as apply labels to our object. + +- `spec` This defines the state that we want or our object. The format that we use for spec. For our Pod file, we have provided information about the containers that we want to host on our Pod. + +To see what else we can define in our Pod YAML file, this [documentation from Kubernetes](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec) will help you. + +- With kubectl, we can create a Pod using our YAML definition using below command: + +```bash +kubectl apply -f pod_defination.yaml +``` + +We can list all of our Pods using below command: + +```bash +kubectl get pods +``` + +#### Restart Policy + +The default behavior of K8s is to restart a pod if it terminates. This is desirable for long running containers like web applications or databases. But, this is not desirable for short-lived containers such as a container to process an image or run analytics. + +`restartPolicy` allows us to specify when K8s should restart the pod. + +- `Always` - restart the pod if it goes down (default) +- `Never` - never restart the pod +- `OnFailure` - restart the pod only if the container inside failed (returned non zero exit code after execution) + +# Config of `restartPolicy` usage + +```yml +apiVersion: v1 +kind: Pod +metadata: + labels: + name: process +spec: + containers: + - name: analytics + image: analytics + restartPolicy: Never +``` \ No newline at end of file diff --git a/content/posts/kubernetes-pod/kubenetes-pod-multi-contntainer.png b/content/posts/kubernetes-pod/kubenetes-pod-multi-contntainer.png new file mode 100644 index 0000000..a114a59 Binary files /dev/null and b/content/posts/kubernetes-pod/kubenetes-pod-multi-contntainer.png differ diff --git a/content/posts/kubernetes-pod/kubenetes-pod.png b/content/posts/kubernetes-pod/kubenetes-pod.png new file mode 100644 index 0000000..76a2814 Binary files /dev/null and b/content/posts/kubernetes-pod/kubenetes-pod.png differ diff --git a/content/posts/kubernetes-pod/kubernetes.png b/content/posts/kubernetes-pod/kubernetes.png new file mode 100644 index 0000000..25439a6 Binary files /dev/null and b/content/posts/kubernetes-pod/kubernetes.png differ diff --git a/hugo.toml b/hugo.toml index 57e91d2..ad26c68 100644 --- a/hugo.toml +++ b/hugo.toml @@ -1,4 +1,1013 @@ -baseURL = 'https://example.org/' -languageCode = 'en-us' title = 'Niksihora' theme = 'FixIt' +baseURL = "https://itbaba.org" +defaultContentLanguage = "en" +languageCode = "en" +languageName = "English" +hasCJKLanguage = false +paginate = 12 +copyright = "Niksihora" +enableRobotsTXT = true +enableGitInfo = true +enableEmoji = true + +[menu] + [[menu.main]] + identifier = "about" + parent = "" + pre = "" + post = "" + name = "About" + url = "/about/" + title = "About" + weight = 1 + [menu.main.params] + class = "" + draft = false + icon = "fa-solid fa-user-ninja" + type = "" + +[related] + includeNewer = false + threshold = 80 + toLower = false +[[related.indices]] + applyFilter = false + cardinalityThreshold = 0 + name = 'keywords' + pattern = '' + toLower = false + type = 'basic' + weight = 100 +[[related.indices]] + applyFilter = false + cardinalityThreshold = 0 + name = 'date' + pattern = '' + toLower = false + type = 'basic' + weight = 10 +[[related.indices]] + applyFilter = false + cardinalityThreshold = 0 + name = 'tags' + pattern = '' + toLower = false + type = 'basic' + weight = 80 +[[related.indices]] + applyFilter = false + name = 'fragmentrefs' + type = 'fragments' + weight = 80 + +[module] + [module.hugoVersion] + extended = true + min = "0.112.0" + +[markup] + [markup.highlight] + codeFences = true + lineNos = true + lineNumbersInTable = true + noClasses = false + guessSyntax = true + [markup.goldmark] + [markup.goldmark.extensions] + definitionList = true + footnote = true + linkify = true + strikethrough = true + table = true + taskList = true + typographer = true + [markup.goldmark.renderer] + unsafe = true + [markup.tableOfContents] + ordered = false + startLevel = 2 + endLevel = 6 + +[sitemap] + changefreq = "weekly" + filename = "sitemap.xml" + priority = 0.5 + +[Permalinks] + posts = "posts/:slugorfilename" + +[privacy] + [privacy.twitter] + enableDNT = true + [privacy.youtube] + privacyEnhanced = true + +[mediaTypes] + [mediaTypes."text/markdown"] + suffixes = ["md"] + [mediaTypes."text/plain"] + suffixes = ["txt"] + +[outputFormats] + [outputFormats.MarkDown] + mediaType = "text/markdown" + isPlainText = true + isHTML = false + [outputFormats.archives] + path = "archives" + baseName = "index" + mediaType = "text/html" + isPlainText = false + isHTML = true + permalinkable = true + [outputFormats.offline] + path = "offline" + baseName = "index" + mediaType = "text/html" + isPlainText = false + isHTML = true + permalinkable = true + [outputFormats.README] + baseName = "readme" + mediaType = "text/markdown" + isPlainText = true + isHTML = false + [outputFormats.baidu_urls] + baseName = "baidu_urls" + mediaType = "text/plain" + isPlainText = true + isHTML = false + +# ------------------------------------------------------------------------------------- +# Customizing Output Formats +# See: https://gohugo.io/templates/output-formats/#customizing-output-formats +# ------------------------------------------------------------------------------------- + +# Options to make hugo output files, the optional values are below: +# home: ["HTML", "RSS", "JSON", "archives", "offline", "README", "baidu_urls"] +# page: ["HTML", "MarkDown"] +# section: ["HTML", "RSS"] +# taxonomy: ["HTML", "RSS"] +# term: ["HTML", "RSS"] +[outputs] + home = ["HTML", "RSS", "JSON", "archives"] + page = ["HTML", "MarkDown"] + section = ["HTML", "RSS"] + taxonomy = ["HTML"] + term = ["HTML", "RSS"] + +# ------------------------------------------------------------------------------------- +# Taxonomies Configuration +# See: https://gohugo.io/content-management/taxonomies/#configure-taxonomies +# ------------------------------------------------------------------------------------- + +[taxonomies] + category = "categories" + tag = "tags" + collection = "collections" + +# ------------------------------------------------------------------------------------- +# Theme Core Configuration +# See: https://fixit.lruihao.cn/documentation/basics/#theme-configuration +# ------------------------------------------------------------------------------------- + +[params] + # FixIt 0.2.15 | CHANGED FixIt theme version + version = "0.3.X" # e.g. "0.2.X", "0.2.15", "v0.2.15" etc. + # site description + description = "" + # site keywords + keywords = [] + # site default theme ["light", "dark", "auto"] + defaultTheme = "auto" + # which hash function used for SRI, when empty, no SRI is used + # ["sha256", "sha384", "sha512", "md5"] + fingerprint = "" + # NEW date format + dateFormat = "2006-01-02" + # website images for Open Graph and Twitter Cards + images = [] + # FixIt 0.2.12 | NEW enable PWA + enablePWA = false + # FixIt 0.2.14 | NEW whether to add external Icon for external links automatically + externalIcon = false + # FixIt 0.3.0 | NEW whether to reverse the order of the navigation menu + navigationReverse = false + # FixIt 0.3.0 | NEW whether to add site title to the title of every page + # remember to set up your site title in `hugo.toml` (e.g. title = "title") + withSiteTitle = true + # FixIt 0.3.0 | NEW title delimiter when the site title is be added to the title of every page + titleDelimiter = "-" + # FixIt 0.3.0 | NEW whether to add site subtitle to the title of index page + # remember to set up your site subtitle by `params.header.subtitle.name` + indexWithSubtitle = false + # FixIt 0.2.14 | NEW FixIt will, by default, inject a theme meta tag in the HTML head on the home page only. + # You can turn it off, but we would really appreciate if you don’t, as this is a good way to watch FixIt's popularity on the rise. + disableThemeInject = false + + # Author Configuration + [params.author] + name = "Nikhil Sihora" + email = "iam@itbaba.org" + link = "itbaba.org" + avatar = "" + + # FixIt 0.3.0 | NEW public Git repository information only then enableGitInfo is true + [params.gitInfo] + # e.g. "https://github.com/hugo-fixit/docs" + repo = "https://github.com/niksihora/niksihora.github.io" + branch = "main" + # the content directory path relative to the root of the repository + dir = "content" + # the issue template for reporting issue of the posts + # available template params: {title} {URL} {sourceURL} + issueTpl = "title=[BUG]%20{title}&body=|Field|Value|%0A|-|-|%0A|Title|{title}|%0A|URL|{URL}|%0A|Filename|{sourceURL}|" + + # App icon config + [params.app] + # optional site title override for the app when added to an iOS home screen or Android launcher + title = "Niksihora" + # whether to omit favicon resource links + noFavicon = false + # modern SVG favicon to use in place of older style .png and .ico files + svgFavicon = "" + # Safari mask icon color + iconColor = "#5bbad5" + # Windows v8-10 tile color + tileColor = "#da532c" + # FixIt 0.2.12 | CHANGED Android browser theme color + [params.app.themeColor] + light = "#f8f8f8" + dark = "#252627" + + # Search config + [params.search] + enable = true + # type of search engine ["algolia", "fuse"] + type = "fuse" + # max index length of the chunked content + contentLength = 4000 + # placeholder of the search bar + placeholder = "" + # max number of results length + maxResultLength = 10 + # snippet length of the result + snippetLength = 30 + # HTML tag name of the highlight part in results + highlightTag = "em" + # whether to use the absolute URL based on the baseURL in search index + absoluteURL = false + [params.search.algolia] + index = "" + appID = "" + searchKey = "" + [params.search.fuse] + # FixIt 0.2.17 | NEW https://fusejs.io/api/options.html + isCaseSensitive = false + minMatchCharLength = 2 + findAllMatches = true + location = 0 + threshold = 0.3 + distance = 100 + ignoreLocation = true + useExtendedSearch = true + ignoreFieldNorm = true + + # Header config + [params.header] + # FixIt 0.2.13 | CHANGED desktop header mode ["sticky", "normal", "auto"] + desktopMode = "sticky" + # FixIt 0.2.13 | CHANGED mobile header mode ["sticky", "normal", "auto"] + mobileMode = "auto" + # Header title config + [params.header.title] + # URL of the LOGO + logo = "" + # title name + name = "" + # you can add extra information before the name (HTML format is supported), such as icons + pre = "" + # you can add extra information after the name (HTML format is supported), such as icons + post = "" + # whether to use typeit animation for title name + typeit = false + # FixIt 0.2.12 | NEW Header subtitle config + [params.header.subtitle] + # subtitle name + name = "" + # whether to use typeit animation for subtitle name + typeit = false + + # FixIt 0.2.18 | NEW Breadcrumb config + [params.breadcrumb] + enable = false + sticky = false + showHome = false + + # Footer config + [params.footer] + enable = true + # FixIt 0.2.17 | CHANGED Custom content (HTML format is supported) + # For advanced use, see parameter `params.customFilePath.footer` + custom = "" + # whether to show copyright info + copyright = true + # whether to show the author + author = true + # Site creation year + since = "" + # FixIt 0.2.12 | NEW Public network security only in China (HTML format is supported) + gov = "" + # ICP info only in China (HTML format is supported) + icp = "" + # license info (HTML format is supported) + license = "" + # FixIt 0.3.0 | NEW whether to show Hugo and theme info + [params.footer.powered] + enable = true + hugoLogo = true + themeLogo = true + # FixIt 0.2.17 | CHANGED Site creation time + [params.footer.siteTime] + enable = false + animate = true + icon = "fa-solid fa-heartbeat" + pre = "" + value = "" # e.g. "2021-12-18T16:15:22+08:00" + # FixIt 0.2.17 | NEW footer lines order, optional values: ["first", 0, 1, 2, 3, 4, 5, "last"] + [params.footer.order] + powered = 0 + copyright = 0 + statistics = 0 + visitor = 0 + beian = 0 + + # FixIt 0.3.0 | NEW Archives page config (all pages of posts type) + [params.archives] + # special amount of posts in archives page + paginate = 20 + # date format (month and day) + dateFormat = "01-02" + + # Section page config (all pages in section) + [params.section] + # special amount of pages in each section page + paginate = 20 + # date format (month and day) + dateFormat = "01-02" + # amount of RSS pages + rss = 10 + # FixIt 0.2.13 | NEW recently updated pages config + # TODO refactor to support archives, section, taxonomy and term + [params.section.recentlyUpdated] + enable = false + rss = false + days = 30 + maxCount = 10 + + # List (category or tag) page config + [params.list] + # special amount of posts in each list page + paginate = 20 + # date format (month and day) + dateFormat = "01-02" + # amount of RSS pages + rss = 10 + + # FixIt 0.2.17 | NEW TagCloud config for tags page + [params.tagcloud] + enable = false + min = 14 # Minimum font size in px + max = 32 # Maximum font size in px + peakCount = 10 # Maximum count of posts per tag + orderby = "name" # Order of tags, optional values: ["name", "count"] + + # Home page config + [params.home] + # amount of RSS pages + rss = 10 + # Home page profile + [params.home.profile] + enable = true + # Gravatar Email for preferred avatar in home page + gravatarEmail = "iam@itbaba.org" + # URL of avatar shown in home page + avatarURL = "" + # FixIt 0.2.17 | NEW identifier of avatar menu link + avatarMenu = "" + # title shown in home page (HTML format is supported) + title = "Hey there! I'm Nikhil Sihora" + # subtitle shown in home page + subtitle = "Let's dive into the world of Linux together!" + # whether to use typeit animation for subtitle + typeit = true + # whether to show social links + social = true + # disclaimer (HTML format is supported) + disclaimer = "" + # Home page posts + [params.home.posts] + enable = true + # special amount of posts in each home posts page + paginate = 6 + + # FixIt 0.2.16 | CHANGED Social config about the author + [params.social] + GitHub = "niksihora" + Linkedin = "nik-sihora" + Twitter = "" + Instagram = "" + Facebook = "" + Telegram = "" + Medium = "" + Gitlab = "" + Youtubelegacy = "" + Youtubecustom = "" + Youtubechannel = "" + Tumblr = "" + Quora = "" + Keybase = "" + Pinterest = "" + Reddit = "" + Codepen = "" + FreeCodeCamp = "" + Bitbucket = "" + Stackoverflow = "" + Weibo = "" + Odnoklassniki = "" + VK = "" + Flickr = "" + Xing = "" + Snapchat = "" + Soundcloud = "" + Spotify = "" + Bandcamp = "" + Paypal = "" + Fivehundredpx = "" + Mix = "" + Goodreads = "" + Lastfm = "" + Foursquare = "" + Hackernews = "" + Kickstarter = "" + Patreon = "" + Steam = "" + Twitch = "" + Strava = "" + Skype = "" + Whatsapp = "" + Zhihu = "" + Douban = "" + Angellist = "" + Slidershare = "" + Jsfiddle = "" + Deviantart = "" + Behance = "" + Dribbble = "" + Wordpress = "" + Vine = "" + Googlescholar = "" + Researchgate = "" + Mastodon = "" + Thingiverse = "" + Devto = "" + Gitea = "" + XMPP = "" + Matrix = "" + Bilibili = "" + ORCID = "" + Liberapay = "" + Ko-Fi = "" + BuyMeaCoffee = "" + Linktree = "" + QQ = "" + QQGroup = "" # https://qun.qq.com/join.html + Diaspora = "" + CSDN = "" + Discord = "" + DiscordInvite = "" + Lichess = "" + Pleroma = "" + Kaggle = "" + MediaWiki= "" + Plume = "" + HackTheBox = "" + RootMe = "" + Feishu = "" + TryHackMe = "" + Douyin = "" + TikTok = "" + Phone = "" + Email = "iam@itbaba.com" + RSS = false + + # Page config + [params.page] + # FixIt 0.2.18 | NEW whether to enable the author's avatar of the post + authorAvatar = true + # whether to hide a page from home page + hiddenFromHomePage = false + # whether to hide a page from search results + hiddenFromSearch = false + # FixIt 0.3.0 | NEW whether to hide a page from RSS feed + hiddenFromRss = false + # FixIt 0.3.0 | NEW whether to hide a page from related posts + hiddenFromRelated = false + # whether to enable twemoji + twemoji = false + # whether to enable lightgallery + # FixIt 0.2.18 | CHANGED if set to "force", images in the content will be forced to shown as the gallery. + lightgallery = false + # whether to enable the ruby extended syntax + ruby = true + # whether to enable the fraction extended syntax + fraction = true + # whether to enable the fontawesome extended syntax + fontawesome = true + # license info (HTML format is supported) + license = 'CC BY-NC-SA 4.0' + # whether to show link to Raw Markdown content of the post + linkToMarkdown = true + # FixIt 0.3.0 | NEW whether to show link to view source code of the post + linkToSource = true + # FixIt 0.3.0 | NEW whether to show link to edit the post + linkToEdit = true + # FixIt 0.3.0 | NEW whether to show link to report issue for the post + linkToReport = true + # whether to show the full text content in RSS + rssFullText = false + # FixIt 0.2.13 | NEW Page style ["narrow", "normal", "wide", ...] + pageStyle = "normal" + # FixIt 0.2.17 | CHANGED Auto Bookmark Support + # If true, save the reading progress when closing the page. + autoBookmark = false + # FixIt 0.2.17 | NEW whether to enable wordCount + wordCount = true + # FixIt 0.2.17 | NEW whether to enable readingTime + readingTime = true + # FixIt 0.2.17 | NEW end of post flag + endFlag = "" + # FixIt 0.2.18 | NEW whether to enable instant.page + instantPage = false + # FixIt 0.3.0 | NEW whether to enable collection list at the sidebar + collectionList = false + # FixIt 0.3.0 | NEW whether to enable collection navigation at the end of the post + collectionNavigation = false + + # FixIt 0.2.15 | NEW Repost config + [params.page.repost] + enable = true + url = "" + # Table of the contents config + [params.page.toc] + # whether to enable the table of the contents + enable = true + # whether to keep the static table of the contents in front of the post + keepStatic = false + # whether to make the table of the contents in the sidebar automatically collapsed + auto = true + # FixIt 0.2.13 | NEW position of TOC ["left", "right"] + position = "right" + # FixIt 0.2.13 | NEW Display a message at the beginning of an article to warn the reader that its content might be expired + [params.page.expirationReminder] + enable = false + # Display the reminder if the last modified time is more than 90 days ago + reminder = 90 + # Display warning if the last modified time is more than 180 days ago + warning = 180 + # If the article expires, close the comment or not + closeComment = false + # FixIt 0.3.0 | NEW page heading config + [params.page.heading] + # used with `markup.tableOfContents.ordered` parameter + [params.page.heading.number] + # whether to enable auto heading numbering + enable = false + # FixIt 0.3.3 | NEW only enable in main section pages (default is posts) + onlyMainSection = true + [params.page.heading.number.format] + h1 = "{title}" + h2 = "{h2} {title}" + h3 = "{h2}.{h3} {title}" + h4 = "{h2}.{h3}.{h4} {title}" + h5 = "{h2}.{h3}.{h4}.{h5} {title}" + h6 = "{h2}.{h3}.{h4}.{h5}.{h6} {title}" + # FixIt 0.2.16 | CHANGED KaTeX mathematical formulas (https://katex.org) + [params.page.math] + enable = true + # default inline delimiter is $ ... $ and \( ... \) + inlineLeftDelimiter = "" + inlineRightDelimiter = "" + # default block delimiter is $$ ... $$, \[ ... \], \begin{equation} ... \end{equation} and some other functions + blockLeftDelimiter = "" + blockRightDelimiter = "" + # KaTeX extension copy_tex + copyTex = true + # KaTeX extension mhchem + mhchem = true + # Code config + [params.page.code] + # whether to show the copy button of the code block + copy = true + # FixIt 0.2.13 | NEW whether to show the edit button of the code block + edit = true + # the maximum number of lines of displayed code by default + maxShownLines = 20 + # Mapbox GL JS config (https://docs.mapbox.com/mapbox-gl-js) + [params.page.mapbox] + # access token of Mapbox GL JS + accessToken = "" + # style for the light theme + lightStyle = "mapbox://styles/mapbox/light-v9" + # style for the dark theme + darkStyle = "mapbox://styles/mapbox/dark-v9" + # whether to add NavigationControl + navigation = true + # whether to add GeolocateControl + geolocate = true + # whether to add ScaleControl + scale = true + # whether to add FullscreenControl + fullscreen = true + # FixIt 0.3.0 | NEW [Experimental] cache remote images locally, see: https://github.com/hugo-fixit/FixIt/pull/362 + [params.page.cacheRemoteImages] + enable = false + # replace remote image url with local image url (place in public/images/remote/) + replace = false + # FixIt 0.3.0 | NEW Related content config (https://gohugo.io/content-management/related/) + [params.page.related] + enable = false + count = 5 + # FixIt 0.2.17 | NEW Donate (Sponsor) settings + [params.page.reward] + enable = false + animation = false + # position relative to post footer, optional values: ["before", "after"] + position = "after" + # comment = "Buy me a coffee" + # FixIt 0.2.18 | NEW display mode of QR code images, optional values: ["static", "fixed"], default: `static` + mode = "static" + [params.page.reward.ways] + # wechatpay = "/images/wechatpay.png" + # alipay = "/images/alipay.png" + # paypal = "/images/paypal.png" + # bitcoin = "/images/bitcoin.png" + # social share links in post page + [params.page.share] + enable = true + Twitter = true + Facebook = true + Linkedin = true + Whatsapp = true + Pinterest = false + Tumblr = false + HackerNews = false + Reddit = true + VK = false + Buffer = false + Xing = false + Line = false + Instapaper = false + Pocket = false + Flipboard = false + Weibo = false + Myspace = false + Blogger = false + Baidu = false + Odnoklassniki = false + Evernote = false + Skype = false + Trello = false + Mix = false + # FixIt 0.2.15 | CHANGED Comment config + [params.page.comment] + enable = false + # FixIt 0.2.13 | NEW Artalk comment config (https://artalk.js.org/) + [params.page.comment.artalk] + enable = false + server = "https://yourdomain" + site = "默认站点" + # FixIt 0.3.3 | NEW whether use backend configuration + useBackendConf = false + placeholder = "" + noComment = "" + sendBtn = "" + editorTravel = true + flatMode = "auto" + # FixIt 0.2.17 | CHANGED enable lightgallery support + lightgallery = false + locale = "" # FixIt 0.2.15 | NEW + # FixIt 0.2.18 | NEW + emoticons = "" + nestMax = 2 + nestSort = "DATE_ASC" # ["DATE_ASC", "DATE_DESC", "VOTE_UP_DESC"] + vote = true + voteDown = false + uaBadge = true + listSort = true + imgUpload = true + preview = true + versionCheck = true + # Disqus comment config (https://disqus.com) + [params.page.comment.disqus] + enable = false + # Disqus shortname to use Disqus in posts + shortname = "" + # Gitalk comment config (https://github.com/gitalk/gitalk) + [params.page.comment.gitalk] + enable = false + owner = "" + repo = "" + clientId = "" + clientSecret = "" + # Valine comment config (https://github.com/xCss/Valine) + [params.page.comment.valine] + enable = false + appId = "" + appKey = "" + placeholder = "" + avatar = "mp" + meta = "" + requiredFields = "" + pageSize = 10 + lang = "" + visitor = true + recordIP = true + highlight = true + enableQQ = false + serverURLs = "" + # emoji data file name, default is "google.yml" + # ["apple.yml", "google.yml", "facebook.yml", "twitter.yml"] + # located in "themes/FixIt/assets/lib/valine/emoji/" directory + # you can store your own data files in the same path under your project: + # "assets/lib/valine/emoji/" + emoji = "" + commentCount = true # FixIt 0.2.13 | NEW + # FixIt 0.2.16 | CHANGED Waline comment config (https://waline.js.org) + [params.page.comment.waline] + enable = false + serverURL = "" + pageview = false # FixIt 0.2.15 | NEW + emoji = ["//unpkg.com/@waline/emojis@1.1.0/weibo"] + meta = ["nick", "mail", "link"] + requiredMeta = [] + login = "enable" + wordLimit = 0 + pageSize = 10 + imageUploader = false # FixIt 0.2.15 | NEW + highlighter = false # FixIt 0.2.15 | NEW + comment = false # FixIt 0.2.15 | NEW + texRenderer = false # FixIt 0.2.16 | NEW + search = false # FixIt 0.2.16 | NEW + recaptchaV3Key = "" # FixIt 0.2.16 | NEW + reaction = false # FixIt 0.2.18 | NEW + # Facebook comment config (https://developers.facebook.com/docs/plugins/comments) + [params.page.comment.facebook] + enable = false + width = "100%" + numPosts = 10 + appId = "" + languageCode = "" + # Telegram comments config (https://comments.app) + [params.page.comment.telegram] + enable = false + siteID = "" + limit = 5 + height = "" + color = "" + colorful = true + dislikes = false + outlined = false + # Commento comment config (https://commento.io) + [params.page.comment.commento] + enable = false + # Utterances comment config (https://utteranc.es) + [params.page.comment.utterances] + enable = false + # owner/repo + repo = "" + issueTerm = "pathname" + label = "" + lightTheme = "github-light" + darkTheme = "github-dark" + # FixIt 0.2.13 | NEW Twikoo comment config (https://twikoo.js.org/) + [params.page.comment.twikoo] + enable = false + envId = "" + region = "" + path = "" + visitor = true + commentCount = true + # FixIt 0.2.17 | CHANGED enable lightgallery support + lightgallery = false + # FixIt 0.2.17 | NEW enable Katex support + katex = false + # FixIt 0.2.14 | NEW Giscus comments config + [params.page.comment.giscus] + enable = false + repo = "" + repoId = "" + category = "" + categoryId = "" + mapping = "" + strict = "0" # FixIt NEW | 0.2.18 + term = "" + reactionsEnabled = "1" + emitMetadata = "0" + inputPosition = "bottom" # ["top", "bottom"] + lightTheme = "light" + darkTheme = "dark" + lazyLoad = true + # Third-party library config + [params.page.library] + [params.page.library.css] + # someCSS = "some.css" + # located in "assets/" + # Or + # someCSS = "https://cdn.example.com/some.css" + [params.page.library.js] + # someJavascript = "some.js" + # located in "assets/" + # Or + # someJavascript = "https://cdn.example.com/some.js" + # Page SEO config + [params.page.seo] + # image URL + images = [] + # Publisher info + [params.page.seo.publisher] + name = "" + logoUrl = "" + + # TypeIt config + [params.typeit] + # typing speed between each step (measured in milliseconds) + speed = 50 + # blinking speed of the cursor (measured in milliseconds) + cursorSpeed = 1000 + # character used for the cursor (HTML format is supported) + cursorChar = "|" + # cursor duration after typing finishing (measured in milliseconds, "-1" means unlimited) + duration = -1 + # FixIt 0.2.18 | NEW whether your strings will continuously loop after completing + loop = false + + # FixIt 0.2.15 | NEW Mermaid config + [params.mermaid] + # For values, see https://mermaid.js.org/config/theming.html#available-themes + themes = ["default", "dark"] + + # FixIt 0.2.12 | NEW PanguJS config + [params.pangu] + # For Chinese writing + enable = false + selector = "article" # FixIt 0.2.17 | NEW + + # FixIt 0.2.12 | NEW Watermark config + # Detail config see https://github.com/Lruihao/watermark#readme + [params.watermark] + enable = false + # watermark's text (HTML format is supported) + content = "" + # watermark's transparency + opacity = 0.1 + # watermark's width. unit: px + width = 150 + # watermark's height. unit: px + height = 20 + # row spacing of watermarks. unit: px + rowSpacing = 60 + # col spacing of watermarks. unit: px + colSpacing = 30 + # watermark's tangent angle. unit: deg + rotate = 15 + # watermark's fontSize. unit: rem + fontSize = 0.85 + # FixIt 0.2.13 | NEW watermark's fontFamily + fontFamily = "inherit" + + # FixIt 0.2.12 | NEW Busuanzi count + [params.ibruce] + enable = false + # Enable in post meta + enablePost = false + + # Site verification code config for Google/Bing/Yandex/Pinterest/Baidu/360/Sogou + [params.verification] + google = "" + bing = "" + yandex = "" + pinterest = "" + baidu = "" + so = "" + sogou = "" + + # Site SEO config + [params.seo] + # image URL + image = "" + # thumbnail URL + thumbnailUrl = "" + + # Analytics config + [params.analytics] + enable = true + # Google Analytics + [params.analytics.google] + id = "G-1J85VNNPNZ" + # whether to anonymize IP + anonymizeIP = true + # Fathom Analytics + [params.analytics.fathom] + id = "" + # server url for your tracker if you're self hosting + server = "" + + # Cookie consent config + [params.cookieconsent] + enable = true + # text strings used for Cookie consent banner + [params.cookieconsent.content] + message = "" + dismiss = "" + link = "" + + # CDN config for third-party library files + [params.cdn] + # CDN data file name, disabled by default ["jsdelivr.yml", "unpkg.yml", ...] + # located in "themes/FixIt/assets/data/cdn/" directory + # you can store your own data files in the same path under your project: "assets/data/cdn/" + data = "" + + # Compatibility config + [params.compatibility] + # whether to use Polyfill.io to be compatible with older browsers + polyfill = false + # whether to use object-fit-images to be compatible with older browsers + objectFit = false + + # FixIt 0.2.14 | NEW GitHub banner in the top-right or top-left corner + [params.githubCorner] + enable = true + permalink = "https://github.com/niksihora" + title = "View source on GitHub" + position = "right" # ["left", "right"] + + # FixIt 0.2.14 | NEW Gravatar config + [params.gravatar] + # FixIt 0.2.18 | NEW Depends on the author's email, if the author's email is not set, the local avatar will be used + enable = false + # Gravatar host, default: "www.gravatar.com" + host = "www.gravatar.com" # ["cn.gravatar.com", "gravatar.loli.net", ...] + style = "" # ["", "mp", "identicon", "monsterid", "wavatar", "retro", "blank", "robohash"] + + # FixIt 0.2.16 | NEW Back to top + [params.backToTop] + enable = true + # Scroll percent label in b2t button + scrollpercent = false + + # FixIt 0.2.16 | NEW Reading progress bar + [params.readingProgress] + enable = false + # Available values: ["left", "right"] + start = "left" + # Available values: ["top", "bottom"] + position = "top" + reversed = false + light = "" + dark = "" + height = "2px" + + # FixIt 0.2.17 | NEW Progress bar in the top during page loading. + # For more information: https://github.com/CodeByZach/pace + [params.pace] + enable = false + # All available colors: + # ["black", "blue", "green", "orange", "pink", "purple", "red", "silver", "white", "yellow"] + color = "blue" + # All available themes: + # ["barber-shop", "big-counter", "bounce", "center-atom", "center-circle", "center-radar", "center-simple", + # "corner-indicator", "fill-left", "flash", "flat-top", "loading-bar", "mac-osx", "material", "minimal"] + theme = "minimal" + + # FixIt 0.2.17 | NEW Define custom file paths + # Create your custom files in site directory `layouts/partials/custom` and uncomment needed files below + [params.customFilePath] + # aside = "custom/aside.html" + # profile = "custom/profile.html" + # footer = "custom/footer.html" + + # FixIt 0.2.15 | NEW Developer options + [params.dev] + enable = false + # Check for updates + c4u = false + # Please do not expose to public! + githubToken = "" + # Mobile Devtools config + [params.dev.mDevtools] + enable = false + # "vConsole", "eruda" supported + type = "vConsole" diff --git a/themes/FixIt/archetypes/posts.md b/themes/FixIt/archetypes/posts.md index 231b1da..936062b 100644 --- a/themes/FixIt/archetypes/posts.md +++ b/themes/FixIt/archetypes/posts.md @@ -5,8 +5,8 @@ date: {{ .Date }} slug: {{ substr .File.UniqueID 0 7 }} draft: true author: - name: - link: + name: Nikhil Sihora + link: https://www.linkedin.com/in/nik-sihora/ email: avatar: description: diff --git a/themes/FixIt/demo/content/posts/first_post.md b/themes/FixIt/demo/content/posts/first_post.md deleted file mode 100644 index 27c150a..0000000 --- a/themes/FixIt/demo/content/posts/first_post.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: My First Post -date: 2023-02-20T20:14:22+08:00 -draft: false ---- - -A blog (a truncation of "weblog") is an informational website published on the World Wide Web consisting of discrete, often informal diary-style text entries (posts). Posts are typically displayed in reverse chronological order so that the most recent post appears first, at the top of the web page. Until 2009, blogs were usually the work of a single individual,[citation needed] occasionally of a small group, and often covered a single subject or topic. In the 2010s, "multi-author blogs" (MABs) emerged, featuring the writing of multiple authors and sometimes professionally edited. MABs from newspapers, other media outlets, universities, think tanks, advocacy groups, and similar institutions account for an increasing quantity of blog traffic. The rise of Twitter and other "microblogging" systems helps integrate MABs and single-author blogs into the news media. Blog can also be used as a verb, meaning to maintain or add content to a blog. diff --git a/themes/FixIt/demo/hugo.toml b/themes/FixIt/demo/hugo.toml deleted file mode 100644 index 8fb1b08..0000000 --- a/themes/FixIt/demo/hugo.toml +++ /dev/null @@ -1,55 +0,0 @@ -# ------------------------------------------------------------------------------------- -# The following is a necessary configuration for the FixIt theme. -# ------------------------------------------------------------------------------------- - -title = "My Hugo FixIt Site" -baseURL = "http://example.org/" -# Change the default theme to be use when building the site with Hugo -# theme = "FixIt" - -[markup] - # Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting) - [markup.highlight] - ########## necessary configurations ########## - # https://github.com/hugo-fixit/FixIt/issues/43 - codeFences = true - lineNos = true - lineNumbersInTable = true - noClasses = false - ########## necessary configurations ########## - guessSyntax = true - # Goldmark is from Hugo 0.60 the default library used for Markdown - [markup.goldmark] - [markup.goldmark.extensions] - definitionList = true - footnote = true - linkify = true - strikethrough = true - table = true - taskList = true - typographer = true - [markup.goldmark.renderer] - # whether to use HTML tags directly in the document - unsafe = true - # Table Of Contents settings - [markup.tableOfContents] - ordered = false - startLevel = 2 - endLevel = 6 - -[outputs] - home = ["HTML", "RSS", "JSON", "archives"] - page = ["HTML", "MarkDown"] - section = ["HTML", "RSS"] - taxonomy = ["HTML"] - term = ["HTML", "RSS"] - -# ------------------------------------------------------------------------------------- -# Theme Core Configuration -# See: https://fixit.lruihao.cn/documentation/basics/#theme-configuration -# ------------------------------------------------------------------------------------- - -[params] - # FixIt theme version - version = "0.3.X" # e.g. "0.2.X", "0.2.15", "v0.2.15" etc. - # ... diff --git a/themes/FixIt/hugo.toml b/themes/FixIt/hugo.toml index 637df16..66407cc 100644 --- a/themes/FixIt/hugo.toml +++ b/themes/FixIt/hugo.toml @@ -1,5 +1,5 @@ title = "Niksihora" -baseURL = "http://localhost:1313" +baseURL = "https://itbaba.org" defaultContentLanguage = "en" languageCode = "en" languageName = "English" @@ -612,7 +612,7 @@ enableEmoji = true # FixIt 0.2.13 | NEW whether to show the edit button of the code block edit = true # the maximum number of lines of displayed code by default - maxShownLines = 10 + maxShownLines = 20 # Mapbox GL JS config (https://docs.mapbox.com/mapbox-gl-js) [params.page.mapbox] # access token of Mapbox GL JS