diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml index c780b8a6..9f625b4f 100644 --- a/.github/workflows/hugo.yml +++ b/.github/workflows/hugo.yml @@ -31,7 +31,7 @@ jobs: build: runs-on: ubuntu-latest env: - HUGO_VERSION: 0.111.3 + HUGO_VERSION: 0.127.0 steps: - name: Install Hugo CLI run: | diff --git a/.gitmodules b/.gitmodules index b2b406bf..e7d92f5e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,9 @@ -[submodule "themes/meme"] - path = themes/meme - url = https://github.com/reuixiy/hugo-theme-meme.git [submodule "themes/matomo"] path = themes/matomo url = https://github.com/holehan/hugo-components-matomo.git [submodule "themes/hugo-notice"] path = themes/hugo-notice - url = https://github.com/martignoni/hugo-notice.git \ No newline at end of file + url = https://github.com/martignoni/hugo-notice.git +[submodule "hugo-theme-stack"] + path = hugo-theme-stack + url = https://github.com/CaiJimmy/hugo-theme-stack diff --git a/assets/icons/brand-telegram.svg b/assets/icons/brand-telegram.svg new file mode 100644 index 00000000..610ad0ab --- /dev/null +++ b/assets/icons/brand-telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/brand-x.svg b/assets/icons/brand-x.svg new file mode 100644 index 00000000..0b7db395 --- /dev/null +++ b/assets/icons/brand-x.svg @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/assets/icons/brand-youtube.svg b/assets/icons/brand-youtube.svg new file mode 100644 index 00000000..58851c57 --- /dev/null +++ b/assets/icons/brand-youtube.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/assets/jsconfig.json b/assets/jsconfig.json new file mode 100644 index 00000000..d0d7a6ec --- /dev/null +++ b/assets/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "*": [ + "../themes/hugo-theme-stack/assets/*" + ] + } + } +} \ No newline at end of file diff --git a/config.toml b/config.toml deleted file mode 100644 index cfb0e26c..00000000 --- a/config.toml +++ /dev/null @@ -1,1414 +0,0 @@ -########################################## -# Site Settings - -baseURL = "https://tokenbrice.xyz/" -title = "TokenBrice - Blog" -languageCode = "en" -hasCJKLanguage = false -# Copyright information (Markdown supported) -copyright = "[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)" - -# Name of theme -theme = ["hugo-notice", "meme", "matomo"] - -# `hugo new` automatically opened text editor -newContentEditor = "typora" - -# i18n -defaultContentLanguage = "en" -defaultContentLanguageInSubdir = false - -# Pluralize titles in lists? -pluralizeListTitles = false - -# The length of text in words to show in summary -summaryLength = 42 - -# Enable Emoji emoticons support? -enableEmoji = false - -# Text to display for footnote return links -footnoteReturnLinkContents = "↩" - -# Enable `.GitInfo` object for each page? -enableGitInfo = true - -# Enable generation of `robots.txt` file? -enableRobotsTXT = true - -# Number of items per page in paginated -# lists (valid for the `posts` homepage -# layout in MemE) -paginate = 7 - -# URL related -disablePathToLower = false -relativeURLs = true -uglyURLs = false - -#language -[languages] - [languages.en] - weight = 1 - languageName = "🇺🇸 EN" - [languages.fr] - title = "TokenBrice - Blog" - weight = 2 - languageName = "🇫🇷 FR" - # homePoetry = ["Bienvenue explorateur,
J'espère que vous apprécierez votre séjour dans l'Ether
[— TokenBrice](/fr/about/),
Motivé par un but simple :
**Mettre en lumière le feu de l'Ether.**

[🇫🇷 DeFi France & 💸 BanklessFR](/fr/defifrance)
[👾 Do You Even DeFi? (EN)](/dyed/)
[🌌 Articles DeFi](/fr/categories/defi/)"] - siteDescription = "Blog personnel de TokenBrice - Finance décentralisée (DeFi), Ethereum, et développement de communautés adaptées aux réalités web3. Contenus en FR, ES & EN." - [languages.es] - title = "TokenBrice - Blog" - weight = 2 - languageName = "🇪🇸 ES" - siteDescription = "Blog personal de TokenBrice: finanzas descentralizadas (DeFi), Ethereum y desarrollo de comunidades adaptadas a las realidades de la web 3. Contenido en EN, FR y EN" - -# URL structure -[permalinks] - categories = "/categories/:slug/" - tags = "/tags/:slug/" - -# Taxonomies -[taxonomies] - category = "categories" - tag = "tags" - -# Modified date -[frontmatter] - lastmod = ["lastmod", ":git", ":fileModTime", ":default"] - -# Markdown renderer -[markup] - defaultMarkdownHandler = "goldmark" - [markup.goldmark] - [markup.goldmark.extensions] - definitionList = true - footnote = true - linkify = true - strikethrough = true - table = true - taskList = true - typographer = true - [markup.goldmark.parser] - attribute = true - autoHeadingID = true - autoHeadingIDType = "github" - [markup.goldmark.renderer] - hardWraps = false - unsafe = true - xHTML = false - [markup.highlight] - codeFences = true - guessSyntax = false - lineNos = true - lineNumbersInTable = true - noClasses = false - [markup.tableOfContents] - startLevel = 2 - endLevel = 6 - ordered = true - -# Author’s information -[author] - # Name - name = "TokenBrice" - # Email - email = "me@tokenbrice.com" - # Motto or introduction - motto = "Helping communities to shape, record and share the story of Ethereum." - # Avatar - avatar = "/img/main/tokenbrice.jpg" - # Twitter - twitter = "TokenBrice" - -# Related content -[related] - threshold = 80 - includeNewer = true - toLower = true - [[related.indices]] - name = "categories" - weight = 100 - [[related.indices]] - name = "tags" - weight = 95 - [[related.indices]] - name = "date" - weight = 10 - pattern = "2006" - -# MIME type of Atom -[mediaTypes."application/atom+xml"] - suffixes = ["xml"] - -# Custom Atom template of MemE -[outputFormats.SectionsAtom] - mediaType = "application/atom+xml" - baseName = "atom" - -# Custom RSS template of MemE -[outputFormats.SectionsRSS] - mediaType = "application/rss+xml" - baseName = "rss" - -# Hugo’s output control -[outputs] - page = ["HTML"] - home = ["HTML", "SectionsAtom", "SectionsRSS"] - section = ["HTML"] - # Taxonomy - taxonomyTerm = ["HTML"] - # Taxonomy term - taxonomy = ["HTML"] - # Note: https://github.com/gohugoio/hugo/issues/4528#issuecomment-508488859 - -# Maximum number of items in the Atom & RSS feed -[services.rss] - limit = 25 - - - -########################################## -# Menu Settings - -# MemE supports the following four menus: -# 1. main Menu bar below the header -# (center layout) or inside -# the header (flex layout) -# 2. home Links at the bottom of the -# homepage (valid for the -# `poetry` and `footage` -# homepage layout) -# 3. socials Social bar (minimal footer -# in about page) -# 4. links Link bar (minimal footer -# in about page) - -# The configuration instructions in the -# menu are as follows: -# url URL -# name Text (won’t display if it -# is left empty("") or does -# not exist) -# weight Position -# pre Type of link (internal or -# external) -# post Icon (won’t display if it -# is left empty("") or does -# not exist) -# identifier Icon’s class name -# (there are two speacial -# values for header layout -# flex: `theme-switcher`, -# `lang-switcher`) - -# sectionPagesMenu = "home" - -[menu] - ## Menu bar - # [[menu.main]] - # url = "/" - # name = "Home" - # weight = 1 - # pre = "internal" - # post = "home" - [[menu.main]] - url = "/posts/" - name = "Articles" - weight = 2 - pre = "internal" - post = "archive" - [[menu.main]] - url = "/categories/" - name = "Categories" - weight = 3 - pre = "internal" - post = "th" - [[menu.main]] - url = "/about/" - name = "About" - weight = 4 - pre = "internal" - post = "user-circle" - - [[menu.main]] - weight = 6 - identifier = "theme-switcher" - [[menu.main]] - weight = 7 - identifier = "lang-switcher" - - ## Socials - [[menu.socials]] - url = "https://github.com/TokenBrice" - name = "GitHub" - weight = 1 - pre = "external" - [[menu.socials]] - url = "https://t.me/TokenBrice" - name = "Telegram" - weight = 2 - pre = "external" - [[menu.socials]] - url = "https://twitter.com/TokenBrice" - name = "Twitter" - weight = 3 - pre = "external" - - ## Home Menu -# [[menu.home]] -# url = "/categories/defi/" -# name = "DeFi Posts" -# weight = 1 -# pre = "internal" -# post = "ethereum" -# [[menu.home]] -# url = "/categories/blockchain/" -# name = " Blockchain" -# weight = 2 -# pre = "internal" -# post = "chain" - - -## FR Menu bar -# [[languages.fr.menu.main]] -# url = "/" -# name = "Home" -# weight = 1 -# pre = "internal" -# post = "home" -[[languages.fr.menu.main]] - url = "/fr/posts/" - name = "Posts" - weight = 2 - pre = "internal" - post = "news" -[[languages.fr.menu.main]] - url = "/fr/categories/" - name = "Catégories" - weight = 3 - pre = "internal" - post = "th" -[[languages.fr.menu.main]] - url = "/fr/about/" - name = "Info" - weight = 4 - pre = "internal" - post = "user-circle" -[[languages.fr.menu.main]] - weight = 7 - identifier = "theme-switcher" -[[languages.fr.menu.main]] - weight = 8 - identifier = "lang-switcher" - - # [[languages.fr.menu.home]] - # url = "/fr/categories/defi/" - # name = "Articles DeFi" - # weight = 1 - # pre = "internal" - # post = "ethereum" - # [[languages.fr.menu.home]] - # url = "/fr/categories/blockchain/" - # name = " Blockchain" - # weight = 2 - # pre = "internal" - # post = "chain" - - -[[languages.es.menu.main]] - url = "/es/posts/" - name = "Artículos" - weight = 2 - pre = "internal" - post = "news" -[[languages.es.menu.main]] - url = "/es/categories/" - name = "Tags" - weight = 3 - pre = "internal" - post = "th" -[[languages.es.menu.main]] - url = "/es/nft/" - name = "NFT" - weight = 5 - pre = "internal" - post = "chess-knight" -[[languages.es.menu.main]] - url = "/es/about/" - name = "Info" - weight = 6 - pre = "internal" - post = "user-circle" -[[languages.es.menu.main]] - weight = 6 - identifier = "theme-switcher" -[[languages.es.menu.main]] - weight = 7 - identifier = "lang-switcher" - - -########################################## -# Theme Settings - -[params] - ###################################### - # Header - - enableHeader = true - - displayHeaderInHome = true - # Note: invalid for header layout flex - - headerBackground = "linear-gradient(90deg, #f795331a 0, #f370551a 15%, #ef4e7b1a 30%, #a166ab1a 44%, #5073b81a 58%, #1098ad1a 72%, #07b39b1a 86%, #6dba821a 100%)" - # Note: https://developer.mozilla.org/en-US/docs/Web/CSS/background - - headerLayout = "center" - # Note: center or flex - - headerFallbackWidth = "32em" - # Note: by default, MemE uses main-inner’s - # width for `headerWidth`, but in - # some pages (e.g. homepage layout - # poetry, footage), there is no - # main-inner, so you need to give - # a fallback value for this - # situation. - - # Hide menu bar and display a toggle - # on narrow screen? - enableNavToggle = true - - navHeight = "10em" - # Note: menu bar height when it’s - # toggled - - - ###################################### - # Brand Bar (inside header) - - # Use SVG? - siteBrandSVG = true - # If true, put your SVG in the `SVG.toml` - # file and configure the following options. - # Unit: px - siteBrandSVGWidth = 300 - siteBrandSVGHeight = 100 - siteBrandSVGFill = "#cfcbd4" - # If false, your site title will be - # used as the default and displayed as - # text. The font size and font color - # can be configured below. The font - # family can be configured in typography - # section at the bottom of this file. - # Unit: em - siteBrandFontSize = 1 - siteBrandFontColor = "var(--color-contrast-high)" - - - ###################################### - # Menu Bar - - enableMenu = true - # Note: invalid for header layout flex - - displayMenuInHome = true - # Note: invalid for header layout flex - - # Highlight current menu item by section? - activeInSection = true - # Note: if true, the menu item in the - # post page will be highlighted - # also if that post’s section is - # the `url` of that menu item - - - ###################################### - # Homepage Layout - - # For homepage layout, MemE has the - # following four different types: - # 1. poetry A few lines of verse - # 2. footage With fullscreen background videos - # 3. posts List of post’s summary - # 4. page Normal page/post - - homeLayout = "posts" - - ## Poetry - # Verse (Markdown supported) - # {{< relref path=\"/content/about/_index.md\" >}} - homePoetry = ["Welcome traveler,

I hope you'll appreciate your stay in the Ether
[— TokenBrice](/about/),
Driven by one simple goal:
**To shine a light on the Etherial fire.**

[🌌 DeFi Stories](categories/defi/)
[🇫🇷 DeFi France](defifrance)
[👾 Do You Even DeFi?](/dyed/)"] - # Padding of links at the bottom - # Unit: em - homeLinksPadding = 1 - - ## Footage - homePoster = "" - homeVideoWebm = "" - homeVideoMp4 = "" - homeLogo = "" - homeLogoLink = "" - homeTitle = "" - homeMotto = "" - homeDescription = "" - homeKeywords = "" - homeLinksDelimiter = "" - - - ###################################### - # Site Info - - siteLogo = "/img/main/logo.png" - # Note: used for JSON-LD, Open Graph - - siteDescription = "Decentralised Finance (DeFi), Ethereum & building communties in the web3 world. Personal blog of TokenBrice. Content, in EN, ES & FR." - # Note: used for HTML head meta, JSON-LD, - # Open Graph, Atom, RSS - - siteCreatedTime = "2020-05-02T20:17:43+00:00" - # ATTENTION: keep this format, change - # the number - - siteTwitter = "TokenBrice" - # Note: used for Twitter Cards - - - ###################################### - # Category By - - # MemE supports category by: - # 1. sections - # 2. categories - # The sections is based on the site’s - # `content` directory structure; the - # categories is based on the post’s - # Front Matter. First of all, category - # means tree structure (nested, with - # sub-category). To achieve it, Hexo - # uses the second method, while Hugo - # uses the first method. Due to the - # different design philosophy, the - # difference between Hexo and Hugo has - # been made. Therefore, this option - # was designed here to be user friendly - # to those who come from Hexo. But note - # that the second method cannot be - # implemented perfectly in Hugo. I - # recommended you adapt to Hugo’s design - # philosophy if you want to keep the - # tree organization structure of your - # posts. - - categoryBy = "categories" - # ATTENTION: If you set it to `sections`, - # be sure to delete `categories` - # in `taxonomies` at the top - # of this file. Otherwise, - # the categories page will - # be invalid. Also, you need - # to create a new - # `content/categories/_index.md` - # file by yourself. - - - ###################################### - # Categories Page - - # Enable tree structure layout? - enableTree = true - # ATTENTION: This option cannot be - # disabled if you set - # `categoryBy` to `sections` - - # Display title of posts? - displayPosts = true - - # Display count of posts under each - # category? - displayPostsCount = true - - - ###################################### - # Tags Page - - enableTagCloud = true - - fontUnit = "em" - largestFontSize = 2.5 - smallestFontSize = 1 - - - ###################################### - # List Page - - listWidth = 50 - # Note: you can leave it empty("") to - # fallback to the default value: 42 - # Unit: em - - displayListTitle = true - - listDateFormat = "January 2" - # ATTENTION: be sure to follow the - # specified format - # https://gohugo.io/functions/format/ - - listDatePosition = "right" - # Note: left or right - - # Separate the list by month? - groupByMonth = true - - # Enable Chinese zodiac? - chineseZodiac = true - - # Translate the year? (valid for title) - i18nYear = true - # Translate the month? (valid for title) - i18nMonth = true - - - ###################################### - # Taxonomy List Page - - # Note: for categories page, you can - # set `enableTree` to false to - # get a normal taxonomy list - # page; for tags page, you can - # set `enableTagCloud` to false - # to get a normal taxonomy list - # page. - - # Display count of posts in each - # taxonomy term? - displayTaxonomyTermCount = true - - - ###################################### - # Atom & RSS - - # Include full content? - includeContent = true - # Note: If false, only the summary of - # the post will be included. The - # summary, Hugo automatically - # takes the first 70 words (you - # can customize this via - # `summaryLength`) of your content - # as its summary by default. - # Alternatively, you may use the - # (with no whitespace) - # summary divider to split summary - # manually. Or use the `summary` - # variable in post’s Front - # Matter to assign it manually. - # The priority of them: assign - # manually > split manually > - # split automatically. Additionally, - # `description` in post’s Front - # Matter has a higher priority - # than assign manually in the - # custom Atom & RSS template of - # MemE. - - - ###################################### - # Dark Mode - - enableDarkMode = true - - defaultTheme = "light" - # Note: light or dark - - hideThemeToggle = false - hideThemeToggleInHome = false - # Note: If dark mode is enabled and - # theme toggle is hidden, your - # readers may still read your - # blog in dark mode if the - # reader’s system is set to dark - # mode. Similarly, if dark mode - # is enabled and is set to the - # default theme, your readers - # may still read your blog in - # light mode, even if you have - # hidden the theme toggle. - - - ###################################### - # Web App - - # Note: go to https://realfavicongenerator.net/ - # to generate related icons and - # files, unzip after downloading, - # and keep only android-chrome-512x512.png, - # apple-touch-icon.png, mstile-150x150.png, - # safari-pinned-tab.svg, favicon.ico, - # site.webmanifest these files, - # delete the rest. Then move - # these files to the ~/blog/static/icons/ - # directory, move favicon.ico, - # site.webmanifest to the ~/blog/static/ - # directory, and finally rename - # site.webmanifest to manifest.json, - # and check and modify related - # content (the path of the icons). - - themeColor = "#fff" - themeColorDark = "#16171d" - safariMaskColor = "#2a6df4" - msApplicationTileColor = "#fff" - - - ###################################### - # HTML Head Meta, SEO & Social Discovery - - jsonLD = true - openGraph = true - twitterCards = true - # ATTENTION: If you set twitterCards - # to `true`, be sure to - # enable openGraph also. - # Otherwise, the Twitter - # Cards info will be - # incomplete. - - autoDetectImages = true - # Note: It is recommended to enable it. - # Otherwise, you must manually - # specify `images` in post’s - # Front Matter or links you - # shared on social networks or - # APPs will not be able to - # display a summary view with a - # large image. - - - ###################################### - # Service Worker - - # Note: render only in production - # environment - - enableServiceWorker = false - # Note: need third-party support, see - # https://io-oi.me/tech/pwa-via-workbox/ - - - ###################################### - # KaTeX (chemical equation supported) - - enableKaTeX = false - # Note: *global settings* - # `katex` in post’s Front Matter - # has a higher priority than here - - - ###################################### - # MathJax (chemical equation supported) - - enableMathJax = false - # Note: *global settings* - # `mathjax` in post’s Front Matter - # has a higher priority than here - - disableMathJaxMenu = false - - - ###################################### - # Mermaid (https://github.com/mermaid-js/mermaid) - - enableMermaid = false - # Note: *global settings* - # `mermaid` in post’s Front Matter - # has a higher priority than here - - - ###################################### - # Comments - - # Note: render only in production - # environment - - enableComments = false - # Note: *global settings* - # `comments` in post’s Front Matter - # has a higher priority than here - - ## Disqus - enableDisqus = false - disqusShortname = "" - - ## Valine - enableValine = false - valineAppId = "" - valineAppKey = "" - valinePlaceholder = "Just go go" - valineNotify = false - valineVerify = false - valinePath = "" - valineAvatar = "mm" - valineMeta = ["nick", "mail", "link"] - valinePageSize = 10 - valineLang = "en" - valineVisitor = false - valineHighlight = true - avatarForce = false - valineRecordIP = false - valineServerURLs = "" - # Note: https://valine.js.org/ - - ## Utterances - enableUtterances = false - utterancesRepo = "" - utterancesIssueTerm = "pathname" - utterancesTheme = "github-light" - utterancesThemeDark = "photon-dark" - utterancesLabel = "" - # Note: https://utteranc.es/ - - - ###################################### - # Google Analytics - - # Note: render only in production - # environment - - enableGoogleAnalytics = false - - trackingCodeType = "gtag" - # Note: gtag or analytics - - trackingID = "" - - - ###################################### - # Google Site Verification - - googleSiteVerification = "" - - - ###################################### - # Google AdSense - - # Note: render only in production - # environment - - googleAdClient = "" - - ## Auto Ads - enableGoogleAutoAds = false - - ## Ad Units - enableGoogleAdUnits = false - googleAdSlot = "" - - - ###################################### - # Post Settings - - # The color change duration of the - # hyperlink (in seconds) - duration = 0.5 - - # Primary color of light mode - primaryColorLight = "220, 90%, 56%" - # Primary color of dark mode - primaryColorDark = "201, 65%, 62%" - # ATTENTION: only HSL color values ​​are - # supported - - # The content width of the post - postWidth = 50 - # Note: you can leave it empty("") to - # fallback to the default value: 42 - # Unit: em - - # Is the post original? - original = true - # Note: will affect the author and - # copyright information of the - # post - # *global settings* - # `original` in post’s Front Matter - # has a higher priority than here - - - ###################################### - # Post Description - - displayPostDescription = true - - - ###################################### - # Post Meta Info - - enablePostMeta = true - # Note: *global settings* - # `meta` in post’s Front Matter - # has a higher priority than here - - enablePostMetaInHome = true - # Note: valid for the `posts` and - # `page` homepage layout only - - postMetaDateFormat = "2006.1.2" - # ATTENTION: be sure to follow the - # specified format - # https://gohugo.io/functions/format/ - - displayPublishedDate = true - publishedDateIcon = "calendar-alt" - - displayModifiedDate = true - modifiedDateIcon = "calendar-check" - - displayExpiredDate = true - expiredDateIcon = "calendar-times" - - displayCategory = true - categoryIcon = "folder" - categoryDelimiter = "/" - - displayWordCount = true - wordCountIcon = "pencil-alt" - - displayReadingTime = true - readingTimeIcon = "clock" - - displayBusuanziPagePV = false - busuanziPagePVIcon = "eye" - # Note: render only in production - # environment - # Homepage is not supported yet - # https://busuanzi.ibruce.info/ - - - ###################################### - # Markdown Related - - # Open external links in a new tab? - hrefTargetBlank = true - - - ###################################### - # Table of Contents - - enableTOC = false - # Note: *global settings* - # `toc` in post’s Front Matter - # has a higher priority than here - - displayTOCTitle = true - - displayTOCNum = true - # Note: *global settings* - # `tocNum` in post’s Front Matter - # has a higher priority than here - - linkHeadingsToTOC = true - - - ###################################### - # Headings Anchor - - enableHeadingsAnchor = true - - # Level range of headings - headingsOpt = "1-6" - # Note: regex format, default value - # is 1-6, which is 1|2|3|4|5|6, - # which is h1 to h6. - - anchorSymbol = "#" - # Note: the anchorIcon has a higher - # priority than anchorSybol - # Default: § - - anchorIcon = "link" - # Note: you can leave it empty("") to - # fallback to the anchorSymbol - - enableAnchorLink = true - - enableAnchorAutoHide = true - - - ###################################### - # Caption - - enableCaption = true - - captionPrefix = "◎ " - - - ###################################### - # Image Hosting - - # Note: render only in production - # environment - # - # only support absolute URLs - # relative to root, e.g. - # /images/meme.jpg - # (~/blog/static/images/meme.jpg) - - enableImageHost = false - - imageHostURL = "https://example.com/" - - # Replace the image link in the HTML - # head meta also? - headAlso = false - - - ###################################### - # Video Hosting - - # Note: render only in production - # environment - # - # only support absolute URLs - # relative to root, e.g. - # /videos/meme.mp4 - # - # and the HTML code you add must - # start with `