[{"content":"","externalUrl":"https://n9o.xyz","permalink":"/users/0-e8b2eb823290677fbba3390d5cef2c35/","section":"Users","summary":"","title":"n9o.xyz","type":"users"},{"content":" Blowfish is packed with tons of features. The original aim of Blowfish was to develop a theme that was simple and lightweight. The theme is a fork of Congo and expands its initial vision.\nTailwind CSS 3.0 # Tailwind CSS is at the heart of Blowfish and this release contains the very latest Tailwind CSS version 3. It brings with it performance optimisations and support for some great new CSS features.\nMultilingual support # A highly requested feature, Blowfish is now multilingual! If you publish your content in multiple languages, the site will be built with all the translations available.\n🇬🇧 🇩🇪 🇫🇷 🇪🇸 🇨🇳 🇧🇷 🇹🇷 🇧🇩 Thanks to submissions from the community, Blowfish has already been translated into thirty-two languages with more to be added over time. By the way, pull requests for new languages are always welcome!\nRTL language support # One of the benefits of the new Tailwind and Multilingual features is the ability to add RTL language support. When enabled, the entire site will reflow content from right-to-left. Every element in the theme has been restyled to ensure it looks great in this mode which aids authors who wish to generate content in RTL languages.\nRTL is controlled on a per-language basis so you can mix and match both RTL and LTR content in your projects and the theme will respond accordingly.\nAutomatic image resizing # A big change in Blowfish 2.0 is the addition of automatic image resizing. Using the power of Hugo Pipes, images in Markdown content are now automatically scaled to different output sizes. These are then presented using HTML srcset attributes enabling optimised file sizes to be served to your site visitors.\n\u0026lt;!-- Markdown: ![My image](image.jpg) --\u0026gt; \u0026lt;img srcset=\u0026#34; /image_320x0_resize_q75_box.jpg 320w, /image_635x0_resize_q75_box.jpg 635w, /image_1024x0_resize_q75_box.jpg 1024w\u0026#34; src=\u0026#34;/image_635x0_resize_q75_box.jpg\u0026#34; alt=\u0026#34;My image\u0026#34; /\u0026gt; Best of all there\u0026rsquo;s nothing you need to change! Simply insert standard Markdown image syntax and let the theme do the rest. If you want a little more control, the figure shortcode has been completely rewritten to provide the same resizing benefits.\nSite search # Powered by Fuse.js, site search allows visitors to quickly and easily find your content. All searches are performed client-side meaning there\u0026rsquo;s nothing to configure on the server and queries are performed super fast. Simply enable the feature in your site configuration and you\u0026rsquo;re all set. Oh, and it also supports full keyboard navigation!\nTables of contents # A highly requested feature, Blowfish now supports tables of contents on article pages. You can see it in action on this page. The contents are fully responsive and will adjust to take advantage of the space available at different screen resolutions.\nAvailable on a global or per article basis, the table of contents can be fully customised using standard Hugo configuration values, allowing you to adjust the behaviour to suit your project.\nAccessibility improvements # From adding ARIA descriptions to more items or simply adjusting the contrast of certain text elements, this release is the most accessible yet.\nVersion 2 also introduces \u0026ldquo;skip to content\u0026rdquo; and \u0026ldquo;scroll to top\u0026rdquo; links that enable quick navigation. There\u0026rsquo;s also keyboard shortcuts for enabling items like search without reaching for the mouse.\nThe new image resizing features also provide full control over alt and title elements enabling an accessible experience for all visitors.\nA whole lot more # There\u0026rsquo;s countless other features to explore. From being able to display taxonomies on articles and list pages, to using the new headline author parameter to customise your homepage. There\u0026rsquo;s also improved JSON-LD structured data which further optimises SEO performance.\n","externalUrl":null,"permalink":"/docs/welcome/","section":"Documentation","summary":" Blowfish is packed with tons of features. The original aim of Blowfish was to develop a theme that was simple and lightweight. The theme is a fork of Congo and expands its initial vision.\n","title":"Welcome to Blowfish","type":"docs"},{"content":"Simply follow the standard Hugo Quick Start procedure to get up and running quickly.\nDetailed installation instructions can be found below. Instructions for updating the theme are also available.\nInstallation # These instructions will get you up and running using Hugo and Blowfish from a completely blank state. Most of the dependencies mentioned in this guide can be installed using the package manager of choice for your platform.\nInstall Hugo # If you haven\u0026rsquo;t used Hugo before, you will need to install it onto your local machine. You can check if it\u0026rsquo;s already installed by running the command hugo version.\nMake sure you are using Hugo version 0.141.0 or later as the theme takes advantage of some of the latest Hugo features. You can find detailed installation instructions for your platform in the Hugo docs.\nBlowfish Tools (recommended) # We just launched a new CLI tool to help you get started with Blowfish. It will create a new Hugo project, install the theme and set up the theme configuration files for you. It\u0026rsquo;s still in beta so please report any issues you find.\nInstall the CLI tool globally using npm (or other package manager):\nnpx blowfish-tools or\nnpm i -g blowfish-tools Then run the command blowfish-tools to start an interactive run which will guide you through creation and configuration use-cases.\nblowfish-tools You can also run the command blowfish-tools new to create a new Hugo project and install the theme in one go. Check the CLI help for more information.\nblowfish-tools new mynewsite Here\u0026rsquo;s a quick video of how fast it is to get started with Blowfish using the CLI tool:\nInstall without CLI # Create a new site # Run the command hugo new site mywebsite to create a new Hugo site in a directory named mywebsite.\nNote that you can name the project directory whatever you choose, but the instructions below will assume it\u0026rsquo;s named mywebsite. If you use a different name, be sure to substitute it accordingly.\nDownload the Blowfish theme # There several different ways to install the Blowfish theme into your Hugo website. From easiest to most difficult to install and maintain, they are:\nGit submodule (recommended) Hugo module Manual file copy If you\u0026rsquo;re unsure, choose the Git submodule method.\nInstall using git # This method is the quickest and easiest for keeping the theme up-to-date. Besides Hugo and Go, you\u0026rsquo;ll also need to ensure you have Git installed on your local machine.\nChange into the directory for your Hugo website (that you created above), initialise a new git repository and add Blowfish as a submodule.\ncd mywebsite git init git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish Then continue to set up the theme configuration files.\nInstall using Hugo # For this method you\u0026rsquo;ll use Hugo to manage your themes. Hugo uses Go to initialise and manage modules so you need to ensure you have go installed before proceeding.\nDownload and install Go. You can check if it\u0026rsquo;s already installed by using the command go version.\nMake sure you are using Go version 1.12 or later as Hugo requires this for modules to work correctly. From your Hugo project directory (that you created above), initialise modules for your website:\n# If you\u0026#39;re managing your project on GitHub hugo mod init github.com/\u0026lt;username\u0026gt;/\u0026lt;repo-name\u0026gt; # If you\u0026#39;re managing your project locally hugo mod init my-project Add the theme to your configuration by creating a new file config/_default/module.toml and adding the following:\n[[imports]] disable = false path = \u0026#34;github.com/nunocoracao/blowfish/v2\u0026#34; Start your server using hugo server and the theme will be downloaded automatically.\nContinue to set up the theme configuration files.\nInstall manually # Download the latest release of the theme source code.\nDownload from Github Extract the archive, rename the folder to blowfish and move it to the themes/ directory inside your Hugo project\u0026rsquo;s root folder.\nContinue to set up the theme configuration files.\nSet up theme configuration files # In the root folder of your website, delete the hugo.toml file that was generated by Hugo. Copy the *.toml config files from the theme into your config/_default/ folder. This will ensure you have all the correct theme settings and will enable you to easily customise the theme to your needs.\nNote: You should not overwrite the module.toml file if one already exists in your project! Depending on how you installed the theme you will find the theme config files in different places:\nHugo Modules: In the Hugo cache directory, or download a copy from GitHub Git submodule or Manual install: themes/blowfish/config/_default Once you\u0026rsquo;ve copied the files, your config folder should look like this:\nconfig/_default/ ├─ hugo.toml ├─ languages.en.toml ├─ markup.toml ├─ menus.en.toml ├─ module.toml # if you installed using Hugo Modules └─ params.toml Important: If you didn\u0026rsquo;t use Hugo Modules to install Blowfish, you must add the line theme = \u0026quot;blowfish\u0026quot; to the top of your hugo.toml file. Next steps # The basic Blowfish installation is now complete. Continue to the Getting Started section to learn more about configuring the theme.\nInstalling updates # From time to time there will be new releases posted that apply fixes and add new functionality to the theme. In order to take advantage of these changes, you will need to update the theme files on your website.\nHow you go about this will depend on the installation method you chose when the theme was originally installed. Instructions for each method can be found below.\nGit submodule Hugo module Manual file copy Update using git # Git submodules can be updated using the git command. Simply execute the following command and the latest version of the theme will be downloaded into your local repository:\ngit submodule update --remote --merge Once the submodule has been updated, rebuild your site and check everything works as expected.\nUpdate using Hugo # Hugo makes updating modules super easy. Simply change into your project directory and execute the following command:\nhugo mod get -u Hugo will automatically update any modules that are required for your project. It does this by inspecting your module.toml and go.mod files. If you have any issues with the update, check to ensure these files are still configured correctly.\nThen simply rebuild your site and check everything works as expected.\nUpdate manually # Updating Blowfish manually requires you to download the latest copy of the theme and replace the old version in your project.\nNote that any local customisations you have made to the theme files will be lost during this process. Download the latest release of the theme source code.\nDownload from Github Extract the archive, rename the folder to blowfish and move it to the themes/ directory inside your Hugo project\u0026rsquo;s root folder. You will need to overwrite the existing directory to replace all the theme files.\nRebuild your site and check everything works as expected.\n","externalUrl":null,"permalink":"/docs/installation/","section":"Documentation","summary":"Simply follow the standard Hugo Quick Start procedure to get up and running quickly.\nDetailed installation instructions can be found below. Instructions for updating the theme are also available.\nInstallation # These instructions will get you up and running using Hugo and Blowfish from a completely blank state. Most of the dependencies mentioned in this guide can be installed using the package manager of choice for your platform.\n","title":"Installation","type":"docs"},{"content":"","externalUrl":"https://madoke.org/","permalink":"/users/1-96d3e57dcc931de55cc23a825d40be2c/","section":"Users","summary":"","title":"madoke.org","type":"users"},{"content":"","externalUrl":"https://code-chimp.com","permalink":"/users/2-4bc0917e04c4859cedb32a48bff27846/","section":"Users","summary":"","title":"code-chimp.com","type":"users"},{"content":" This section assumes you have already installed the Blowfish theme. We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:\nnpx blowfish-tools The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.\nBasic configuration # Before creating any content, there are a few things you should set for a new installation. Starting in the hugo.toml file, set the baseURL and languageCode parameters. The languageCode should be set to the main language that you will be using to author your content.\n# config/_default/hugo.toml baseURL = \u0026#34;https://your_domain.com/\u0026#34; languageCode = \u0026#34;en\u0026#34; The next step is to configure the language settings. Although Blowfish supports multilingual setups, for now, just configure the main language.\nLocate the languages.en.toml file in the config folder. If your main language is English you can use this file as is. Otherwise, rename it so that it includes the correct language code in the filename. For example, for French, rename the file to languages.fr.toml.\nNote that the language code in the language config filename should match the languageCode setting in hugo.toml. # config/_default/languages.en.toml title = \u0026#34;My awesome website\u0026#34; [params.author] name = \u0026#34;My name\u0026#34; image = \u0026#34;img/author.jpg\u0026#34; headline = \u0026#34;A generally awesome human\u0026#34; bio = \u0026#34;A little bit about me\u0026#34; links = [ { twitter = \u0026#34;https://twitter.com/username\u0026#34; } ] The [params.author] configuration determines how the author information is displayed on the website. The image should be placed in the site\u0026rsquo;s assets/ folder. Links will be displayed in the order they are listed.\nIf you need extra detail, further information about each of these configuration options, is covered in the Configuration section.\nColour schemes # Blowfish ships with a number of colour schemes out of the box. You can try out the built-in schemes below:\nautumn avocado bloody blowfish congo fire forest github marvel neon noir one-light princess slate terminal # config/_default/params.toml colorScheme = \u0026#34;blowfish\u0026#34; Each colour scheme in Blowfish is built upon a three-colour palette that is used consistently throughout the theme. Each of these main colours is based on the ten-shade colour palettes included in Tailwind CSS.\nAlthough these are the default schemes, you can also create your own. Refer to the Advanced Customisation section for details.\nOrganising content # By default, Blowfish doesn\u0026rsquo;t force you to use a particular content type. In doing so you are free to define your content as you wish. You might prefer pages for a static site, posts for a blog, or projects for a portfolio.\nHere\u0026rsquo;s a quick overview of a basic Blowfish project. All content is placed within the content folder:\n. ├── assets │ └── img │ └── author.jpg ├── config │ └── _default ├── content │ ├── _index.md │ ├── about.md │ └── posts │ ├── _index.md │ ├── first-post.md │ └── another-post │ ├── aardvark.jpg │ └── index.md └── themes └── blowfish It\u0026rsquo;s important to have a firm grasp of how Hugo expects content to be organised as the theme is designed to take full advantage of Hugo page bundles. Be sure to read the official Hugo docs for more information.\nBlowfish is also flexible when it comes to taxonomies. Some people prefer to use tags and categories to group their content, others prefer to use topics.\nHugo defaults to using posts, tags and categories out of the box and this will work fine if that\u0026rsquo;s what you want. If you wish to customise this, however, you can do so by creating a taxonomies.toml configuration file:\n# config/_default/taxonomies.toml topic = \u0026#34;topics\u0026#34; This will replace the default tags and categories with topics. Refer to the Hugo Taxonomy docs for more information on naming taxonomies.\nWhen you create a new taxonomy, you will need to adjust the navigation links on the website to point to the correct sections, which is covered below.\nMenus # Blowfish has two menus that can be customised to suit the content and layout of your site. The main menu appears in the site header and the footer menu appears at the bottom of the page just above the copyright notice.\nBoth menus are configured in the menus.en.toml file. Similarly to the languages config file, if you wish to use another language, rename this file and replace en with the language code you wish to use.\n# config/_default/menus.toml [[main]] name = \u0026#34;Blog\u0026#34; pageRef = \u0026#34;posts\u0026#34; weight = 10 [[main]] name = \u0026#34;Topics\u0026#34; pageRef = \u0026#34;topics\u0026#34; weight = 20 [[main]] pre = \u0026#34;github\u0026#34; name = \u0026#34;GitHub\u0026#34; url = \u0026#34;https://github.com/nunocoracao/blowfish\u0026#34; weight = 30 [[main]] identifier = \u0026#34;github2\u0026#34; pre = \u0026#34;github\u0026#34; url = \u0026#34;https://github.com/nunocoracao/blowfish\u0026#34; weight = 40 [[footer]] name = \u0026#34;Privacy\u0026#34; url = \u0026#34;https://external-link\u0026#34; The name parameter specifies the text that is used in the menu link. You can also optionally provide a title which fills the HTML title attribute for the link.\nThe pageRef parameter allows you to easily reference Hugo content pages and taxonomies. It is the quickest way to configure the menu as you can simply refer to any Hugo content item and it will automatically build the correct link. To link to external URLs, the url parameter can be used.\nThe pre parameter allows you to place an icon from Blowfish\u0026rsquo;s icon set on the menu entry. This parameter can be used with name parameter or by itself. If you want to use multiple menu entries with just icons please set the identifierparameter otherwise Hugo will default to the naming tag as the id and probably not display all the menu entries.\nMenu links will be sorted from lowest to highest weight, and then alphabetically by name.\nBoth menus are completely optional and can be commented out if not required. Use the template provided in the file as a guide.\nNested menus # The theme also supports nested menus. In order to use them you just need to define a parent entry in menu.toml and its sub-menus using the parent parameter to reference the parent. All properties can be used for sub-menus. pageRef and url can also be used in the parent entry. Nested menus are only available in the main menu not for the footer.\n# config/_default/menus.toml [[main]] name = \u0026#34;Parent\u0026#34; weight = 20 [[main]] name = \u0026#34;sub-menu 1\u0026#34; parent = \u0026#34;Parent\u0026#34; pageRef = \u0026#34;samples\u0026#34; weight = 20 [[main]] name = \u0026#34;sub-menu 2\u0026#34; parent = \u0026#34;Parent\u0026#34; pageRef = \u0026#34;samples\u0026#34; weight = 20 [[main]] name = \u0026#34;sub-menu 3\u0026#34; parent = \u0026#34;Parent\u0026#34; pre = \u0026#34;github\u0026#34; pageRef = \u0026#34;samples\u0026#34; weight = 20 Sub-Navigation menu # Additionally, you can also configure a sub-navigation menu. Just define new menu entries as subnavigation in menus.toml. This will render a second line with sub-categories below the main header menu.\n# config/_default/menus.toml [[subnavigation]] name = \u0026#34;An interesting topic\u0026#34; pageRef = \u0026#34;tags/interesting-topic\u0026#34; weight = 10 [[subnavigation]] name = \u0026#34;My Awesome Category\u0026#34; pageRef = \u0026#34;categories/awesome\u0026#34; weight = 20 The default name is the pageRef title cased.\nThumbnails \u0026amp; Backgrounds # Blowfish was built so it would be easy to add visual support to your articles. If you\u0026rsquo;re familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend .png or .jpg) that starts with feature* inside your article folder. And that\u0026rsquo;s it, Blowfish will then be able to both use the image as a thumbnail within your website as well as for oEmbed cards across social platforms.\nHere is also a guide with more info and a sample if you want to see how you can do it.\nAdditionally, Blowfish also supports background hero images in articles and lists. In order to use a different image than the featured one, add an image file in which the name starts with background*.\nDetailed configuration # The steps above are the bare minimum configuration. If you now run hugo server you will be presented with a blank Blowfish website. Detailed configuration is covered in the Configuration section.\n","externalUrl":null,"permalink":"/docs/getting-started/","section":"Documentation","summary":" This section assumes you have already installed the Blowfish theme. We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:\n","title":"Getting Started","type":"docs"},{"content":"Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.\nThe theme ships with a default configuration that gets you up and running with a basic blog or static website.\nWe just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using:\nnpx blowfish-tools Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.\nThe default theme configuration is documented in each file so you can freely adjust the settings to meet your needs.\nAs outlined in the installation instructions, you should adjust your theme configuration by modifying the files in the config/_default/ folder of your Hugo project and delete the hugo.toml file in your project root. Site configuration # Standard Hugo configuration variables are respected throughout the theme, however there are some specific things that should be configured for the best experience.\nThe site configuration is managed through the config/_default/hugo.toml file. The table below outlines all the settings that the Blowfish takes advantage of.\nNote that the variable names provided in this table use dot notation to simplify the TOML data structure (ie. outputs.home refers to [outputs] home).\nName Default Description theme \u0026quot;blowfish\u0026quot; When using Hugo Modules this config value should be removed. For all other installation types, this must be set to blowfish for the theme to function. baseURL Not set The URL to the root of the website. defaultContentLanguage \u0026quot;en\u0026quot; This value determines the default language of theme components and content. Refer to the language and i18n section below for supported language codes. enableRobotsTXT true When enabled, a robots.txt file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made robots.txt, set to false and place your file in the static directory. For complete control, you may provide a custom layout to generate this file. pagination.pagerSize 10 The number of articles listed on each page of the article listing. summaryLength 0 The number of words that are used to generate the article summary when one is not provided in the front matter. A value of 0 will use the first sentence. This value has no effect when summaries are hidden. outputs.home [\u0026quot;HTML\u0026quot;, \u0026quot;RSS\u0026quot;, \u0026quot;JSON\u0026quot;] The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly. permalinks Not set Refer to the Hugo docs for permalink configuration. taxonomies Not set Refer to the Organising content section for taxonomy configuration. Thumbnails # Blowfish was built so it would be easy to add visual support to your articles. If you\u0026rsquo;re familiar with Hugo article structure, you just need to place an image file (almost all formats are supported but we recommend .png or .jpg) that starts with feature* inside your article folder. And that\u0026rsquo;s it, Blowfish will then able to both use the image as a thumbnail within your website as well as for oEmbed cards across social platforms.\nHere is also a guide with more info and a sample if you want to see how you can do it.\nLanguage and i18n # Blowfish is optimised for full multilingual websites and theme assets are translated into several languages out of the box. The language configuration allows you to generate multiple versions of your content to provide a customised experience to your visitors in their native language.\nThe theme currently supports the following languages by default:\nLanguage Code Arabic ar Basque eu Bulgarian bg Bengali bn Catalan ca Czech cs German de English en Esperanto eo Spanish (Spain) es Finnish fi French fr Galician gl Hebrew he Croatian hr Hungarian hu Indonesian id Italian it Japanese ja Korean ko Dutch nl Persian fa Polish pl Portuguese (Brazil) pt-br Portuguese (Portugal) pt-pt Romanian ro Russian ru Thai th Turkish tr Vietnamese vi Simplified Chinese (China) zh-cn Traditional Chinese (Taiwan) zh-tw The default translations can be overridden by creating a custom file in i18n/[code].yaml that contains the translation strings. You can also use this method to add new languages. If you\u0026rsquo;d like to share a new translation with the community, please open a pull request.\nConfiguration # In order to be as flexible as possible, a language configuration file needs to be created for each language on the website. By default Blowfish includes an English language configuration at config/_default/languages.en.toml.\nThe default file can be used as a template to create additional languages, or renamed if you wish to author your website in a language other than English. Simply name the file using the format languages.[language-code].toml.\nNote: Ensure the defaultContentLanguage parameter in the site configuration matches the language code in your language config filename. Global # Name Default Description languageCode \u0026quot;en\u0026quot; The Hugo language code for this file. It can be a top-level language (ie. en) or a sub-variant (ie. en-au) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the isoCode parameter which is case-sensitive. languageName \u0026quot;English\u0026quot; The name of the language. weight 1 The weight determines the order of languages when building multilingual sites. title \u0026quot;Blowfish\u0026quot; The title of the website. This will be displayed in the site header and footer. Params # Name Default Description params.displayName \u0026quot;EN\u0026quot; The name used when the language appears on the website. params.isoCode \u0026quot;en\u0026quot; The ISO language code for HTML metadata purposes. It can be a top-level language (ie. en) or a sub-variant (ie. en-AU). params.rtl false Whether or not this is a RTL language. Set to true to reflow content from right-to-left. Blowfish fully supports using RTL and LTR languages at the same time and will dynamically adjust to both. params.dateFormat \u0026quot;2 January 2006\u0026quot; How dates are formatted in this language. Refer to the Hugo docs for acceptable formats. params.logo Not set The relative path to the site logo file within the assets/ folder. The logo file should be provided at 2x resolution and supports any image dimensions. params.secondaryLogo Not set The relative path to the secondary site logo file within the assets/ folder. The logo file should be provided at 2x resolution and supports any image dimensions. This should have an inverted/contrasting colour scheme to logo. If set, this logo will be shown when users toggle from the defaultAppearance mode. params.description Not set The website description. This will be used in the site metadata. params.copyright Not set A Markdown string for the site footer copyright message can include the placeholder { year } to dynamically insert the current year. If none is provided, Blowfish will automatically generate a copyright string using the site title. Author # Name Default Description params.author.name Not set The author\u0026rsquo;s name. This will be displayed in article footers, and on the homepage when the profile layout is used. params.author.email Not set The author\u0026rsquo;s email. This will be used if the reply-via-email functionality is enabled. params.author.image Not set Path to the image file of the author. The image should be a 1:1 aspect ratio. The image can be placed in the site\u0026rsquo;s assets/ folder or can be external url. params.author.imageQuality 96 The author\u0026rsquo;s image file will be treated as a \u0026ldquo;high quality\u0026rdquo; image to minimize artifacts on the front page. Value range 1-100. params.author.headline Not set A Markdown string containing the author\u0026rsquo;s headline. It will be displayed on the profile homepage under the author\u0026rsquo;s name. params.author.bio Not set A Markdown string containing the author\u0026rsquo;s bio. It will be displayed in article footers. params.author.links Not set The links to display alongside the author\u0026rsquo;s details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in assets/icons/. Menus # Blowfish also supports language-specific menu configurations. Menu config files follow the same naming format as the languages file. Simply provide the language code in the file name to tell Hugo which language the file relates to.\nMenu config files are named with the format menus.[language-code].toml. Always ensure that the language code used in the menus configuration matches the languages configuration.\nThe Getting Started section explains more about the structure of this file. You can also refer to the Hugo menu docs for more configuration examples.\nTheme parameters # Blowfish provides a large number of configuration parameters that control how the theme functions. The table below outlines every available parameter in the config/_default/params.toml file.\nMany of the article defaults here can be overridden on a per article basis by specifying it in the front matter. Refer to the Front Matter section for further details.\nGlobal # Name Default Description colorScheme \u0026quot;blowfish\u0026quot; The theme colour scheme to use. Valid values are blowfish (default), avocado, fire, ocean, forest, princess, neon, bloody, terminal, marvel, noir, autumn, congo, slate, github, and one-light. Refer to the Colour Schemes section for more details. defaultAppearance \u0026quot;light\u0026quot; The default theme appearance, either light or dark. autoSwitchAppearance true Whether the theme appearance automatically switches based upon the visitor\u0026rsquo;s operating system preference. Set to false to force the site to always use the defaultAppearance. enableA11y false Whether to enable the accessibility toggle button. enableSearch false Whether site search is enabled. Set to true to enable search functionality. Note that the search feature depends on the outputs.home setting in the site configuration being set correctly. enableCodeCopy false Whether copy-to-clipboard buttons are enabled for \u0026lt;code\u0026gt; blocks. The highlight.noClasses parameter must be set to false for code copy to function correctly. Read more about other configuration files below. enableStructuredBreadcrumbs false Whether to add BreadcrumbList for SEO. Do NOT enable this if your content path does not match the URL, i.e., complex URL setting. enableStyledScrollbar true Whether to enable styled scrollbar via tailwind-scrollbar. Set to false to use the browser\u0026rsquo;s default scrollbar styling. replyByEmail false Whether the reply-by-email link is enabled after post. The params.author.email parameter in config/_default/languages.en.toml must be set. forgejoDefaultServer Not set The default server parameter for the forgejo shortcode. giteaDefaultServer Not set The default server parameter for the gitea shortcode. mainSections Not set The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. showViews Not set Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. showLikes Not set Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. robots Not set String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to Google\u0026rsquo;s docs for valid values. disableImageZoom false Disables image zoom feature across all the images in the site. disableImageOptimization false Disables image resize and optimization features across all the images in the site, except images using markdown syntax (![](image.jpg)) disableImageOptimizationMD false Disables image resize and optimization features only for images using markdown syntax (![](image.jpg)). backgroundImageWidth 1200 Width (in pixels) to scale background images to. disableTextInHeader false Disables text in header, useful for logo based headers. defaultBackgroundImage Not set Default background image for both background homepage layout and background hero style defaultFeaturedImage Not set Default background image for all featured images across articles, will be overridden by a local featured image. defaultSocialImage Not set Default image for social media sharing (Open Graph and Twitter). Will be overridden by a local feature image. hotlinkFeatureImage false Hotlink external images in article feature images and article cards. Those images will not be processed by Hugo. imagePosition Not set Sets the position of the default image using object-position attribute. Valid values are as specified in the MDN documentation. highlightCurrentMenuArea Not set Marks menu entries in the main menu when selected smartTOC Not set Activate smart Table of Contents, items in view will be highlighted. smartTOCHideUnfocusedChildren Not set When smart Table of Contents is turned on, this will hide deeper levels of the table when they are not in focus. fingerprintAlgorithm \u0026quot;sha512\u0026quot; Hash algorithm for CSS/JS file fingerprinting to prevent browser caching issues. Valid values are sha512 (default), sha384, sha256. Header # Name Default Description header.layout \u0026quot;basic\u0026quot; Defines the header for the entire site, supported values are basic, fixed, fixed-fill, and fixed-fill-blur. Footer # Name Default Description footer.showMenu true Show/hide the footer menu, which can be configured in the [[footer]] section of the config/_default/menus.en.toml file. footer.showCopyright true Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the copyright parameter in the languages configuration. footer.showThemeAttribution true Whether or not to show the \u0026ldquo;powered by\u0026rdquo; theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). footer.showAppearanceSwitcher false Whether or not to show the appearance switcher in the site footer. The browser\u0026rsquo;s local storage is used to persist the visitor\u0026rsquo;s preference. footer.showScrollToTop true When set to true the scroll to top arrow is displayed. Homepage # Name Default Description homepage.layout \u0026quot;profile\u0026quot; The layout of the homepage. Valid values are page, profile, hero, card, background, or custom. When set to custom, you must provide your own layout by creating a /layouts/partials/home/custom.html file. Refer to the Homepage Layout section for more details. homepage.homepageImage Not set Image to be used in hero and card layouts. Can be set as local image from asset directory or external image url. Refer to the Homepage Layout section for more details. homepage.showRecent false Whether or not to display the recent articles list on the homepage. homepage.showRecentItems 5 How many articles to display if showRecent is true. If variable is set to 0 or if it isn\u0026rsquo;t defined the system will default to 5 articles. homepage.showMoreLink false Whether or not to display a show more link at the end of your posts that takes the user to a predefined place. homepage.showMoreLinkDest /posts The destination of the show more button. homepage.cardView false Display recent articles as a gallery of cards. homepage.cardViewScreenWidth false Enhance the width of the recent articles card gallery to take the full width available. homepage.layoutBackgroundBlur false Makes the background image in the homepage layout blur with the scroll homepage.disableHeroImageFilter false Whether to apply an image filter on the homepage background. Article # Name Default Description article.showDate true Whether or not article dates are displayed. article.showViews false Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. article.showLikes false Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. article.showDateOnlyInArticle false Show date within article even if not displayed in article listings/cards. article.showDateUpdated false Whether or not the dates articles were updated are displayed. article.showAuthor true Whether or not the author box is displayed in the article footer. article.showAuthorBottom false Author boxes are displayed at the bottom of each page instead of the top. article.showHero false Whether the thumbnail image will be shown as a hero image within each article page. article.heroStyle Not set Style to display the hero image, valid options are: basic, big, background, thumbAndBackground. Effective only if article.showHero = true. article.layoutBackgroundBlur true Makes the background image in the background article heroStyle blur with the scroll. Only used when heroStyle equals background or thumbAndBackground. article.layoutBackgroundHeaderSpace true Add space between the header and the body. Only used when heroStyle equals background. article.showBreadcrumbs false Whether or not breadcrumbs are displayed in the article header. article.showDraftLabel true Whether or not the draft indicator is shown next to articles when site is built with --buildDrafts. article.showEdit false Whether or not the link to edit the article content should be displayed. article.editURL Not set When article.showEdit is active, the URL for the edit link. article.editAppendPath true When article.showEdit is active, whether or not the path to the current article should be appended to the URL set at article.editURL. article.seriesOpened false Whether or not the series module will be displayed open by default or not. article.showHeadingAnchors true Whether or not heading anchor links are displayed alongside headings within articles. article.showPagination true Whether or not the next/previous article links are displayed in the article footer. article.invertPagination false Whether or not to flip the direction of the next/previous article links. article.showReadingTime true Whether or not article reading times are displayed. article.showTableOfContents false Whether or not the table of contents is displayed on articles. article.showRelatedContent false Display related content for each post. Might required additional configuration to your hugo.toml. Please check the theme hugo.toml if you want to enable this feature and copy all the relevant related entries. Also check Hugo\u0026rsquo;s docs on related content. article.relatedContentLimit 3 Limit of related articles to display if showRelatedContent is turned on. article.showTaxonomies false Whether or not all the taxonomies related to this article are displayed. article.showCategories true Whether or not the category taxonomies are displayed. Requires showTaxonomies to be true. article.showTags true Whether or not the tag taxonomies are displayed. Requires showTaxonomies to be true. article.showCategoriesInSecondaryColor false This will make the category taxonomy badges to show in a secondary color, so the user can better distinguish between categories and tags. Requires showTaxonomies to be true. article.showAuthorsBadges false Whether the authors taxonomies are are displayed in the article or list header. This requires the setup of multiple authors and the authors taxonomy. Check this page for more details on how to configure that feature. article.showWordCount false Whether or not article word counts are displayed. article.showComments false Whether or not the comments partial is included after the article footer. article.sharingLinks Not set Which sharing links to display at the end of each article. When not provided, or set to false no links will be displayed. Available values are: \u0026ldquo;bluesky\u0026rdquo;, \u0026ldquo;email\u0026rdquo;, \u0026ldquo;facebook\u0026rdquo;, \u0026ldquo;line\u0026rdquo;, \u0026ldquo;linkedin\u0026rdquo;, \u0026ldquo;mastodon\u0026rdquo;, \u0026ldquo;pinterest\u0026rdquo;, \u0026ldquo;reddit\u0026rdquo;, \u0026ldquo;telegram\u0026rdquo;, \u0026ldquo;twitter\u0026rdquo;, and \u0026ldquo;whatsapp\u0026rdquo; article.showZenMode false Flag to activate Zen Mode reading feature for articles. article.externalLinkForceNewTab true Should external links in markdown open in a new tab. List # Name Default Description list.showHero false Whether the thumbnail image will be shown as a hero image within each list page. list.heroStyle Not set Style to display the hero image, valid options are: basic, big, background, thumbAndBackground. Effective only if list.showHero = true. list.layoutBackgroundBlur true Makes the background image in the background list heroStyle blur with the scroll. Only used when heroStyle equals background or thumbAndBackground. list.layoutBackgroundHeaderSpace true Add space between the header and the body. Only used when heroStyle equals background. list.showBreadcrumbs false Whether or not breadcrumbs are displayed in the header on list pages. list.showTableOfContents false Whether or not the table of contents is displayed on list pages. list.showSummary false Whether or not article summaries are displayed on list pages. If a summary is not provided in the front matter, one will be auto generated using the summaryLength parameter in the site configuration. list.showViews false Whether or not list views are displayed. This requires firebase integrations to be enabled, look below. list.showLikes false Whether or not list likes are displayed. This requires firebase integrations to be enabled, look below. list.showCards false Whether or not each article is displayed as a card or as simple inline text. list.orderByWeight false Whether or not articles are sorted by weights. list.groupByYear true Whether or not articles are grouped by year on list pages. list.cardView false Display lists as a gallery of cards. list.cardViewScreenWidth false Enhance the width of card galleries in lists to take the full width available. list.constrainItemsWidth false Limit item width to prose to increase readability. Useful when no feature images are available. list.showTableOfContents false Whether or not the table of contents is displayed on articles. Sitemap # Name Default Description sitemap.excludedKinds [\u0026quot;taxonomy\u0026quot;, \u0026quot;term\u0026quot;] Kinds of content that should be excluded from the generated /sitemap.xml file. Refer to the Hugo docs for acceptable values. Taxonomy # Name Default Description taxonomy.showTermCount true Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. taxonomy.showHero false Whether the thumbnail image will be shown as a hero image within each taxonomy page. taxonomy.heroStyle Not set Style to display the hero image, valid options are: basic, big, background, thumbAndBackground. Effective only if taxonomy.showHero = true. taxonomy.layoutBackgroundBlur true Makes the background image in the background taxonomy heroStyle blur with the scroll. Only used when heroStyle equals background or thumbAndBackground. taxonomy.layoutBackgroundHeaderSpace true Add space between the header and the body. Only used when heroStyle equals background. taxonomy.showBreadcrumbs false Whether or not breadcrumbs are displayed in the taxonomy header. taxonomy.showViews false Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. taxonomy.showLikes false Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. taxonomy.showTableOfContents false Whether or not the table of contents is displayed on taxonomies. taxonomy.cardView false Display lists as a gallery of cards. Term # Name Default Description term.showHero false Whether the thumbnail image will be shown as a hero image within each term page. term.heroStyle Not set Style to display the hero image, valid options are: basic, big, background, thumbAndBackground. Effective only if term.showHero = true. term.layoutBackgroundBlur true Makes the background image in the background term heroStyle blur with the scroll. Only used when heroStyle equals background or thumbAndBackground. term.layoutBackgroundHeaderSpace true Add space between the header and the body. Only used when heroStyle equals background. term.showBreadcrumbs false Whether or not breadcrumbs are displayed in the term header. term.showViews false Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. term.showLikes false Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. term.showTableOfContents false Whether or not the table of contents is displayed on terms. term.groupByYear false Whether or not articles are grouped by year on term pages. term.cardView false Display lists as a gallery of cards. term.cardViewScreenWidth false Enhance the width of card galleries in lists to take the full width available. Firebase # Name Default Description firebase.apiKey Not set Firebase apiKey, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.authDomain Not set Firebase authDomain, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.projectId Not set Firebase projectId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.storageBucket Not set Firebase storageBucket, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.messagingSenderId Not set Firebase messagingSenderId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.appId Not set Firebase appId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. firebase.measurementId Not set Firebase measurementId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish. Fathom Analytics # Name Default Description fathomAnalytics.site Not set The site code generated by Fathom Analytics for the website. Refer to the Analytics docs for more details. fathomAnalytics.domain Not set If using a custom domain with Fathom Analytics, provide it here to serve script.js from the custom domain. Umami Analytics # Name Default Description umamiAnalytics.websiteid Not set The site code generated by Umami Analytics for the website. Refer to the Analytics docs for more details. umamiAnalytics.domain Not set If using a custom domain with Umami Analytics, provide it here to serve script.js from the custom domain. umamiAnalytics.dataDomains Not set If you want the tracker to only run on specific domains, provide it for your tracker script. This is a comma delimited list of domain names. Such as \u0026ldquo;yoursite.com,yoursite2.com\u0026rdquo;. umamiAnalytics.scriptName script.js The name of the script.js used for anti-ad-blocking is configured by the environment variable TRACKER_SCRIPT_NAME umamiAnalytics.enableTrackEvent true When set to true track event will add automatically. If you do not want to add track event, set it to false. Seline Analytics # Name Default Description selineAnalytics.token Not set The token generated by Seline Analytics for the website. Refer to the Analytics docs for more details. selineAnalytics.enableTrackEvent true When set to true track event will add automatically. If you do not want to add track event, set it to false. BuyMeACoffee # Name Default Description buymeacoffee.identifier Not set The identifier to the target buymeacoffee account. buymeacoffee.globalWidget Not set Activate the global buymeacoffee widget. buymeacoffee.globalWidgetMessage Not set Message what will be displayed the first time a new user lands on the site. buymeacoffee.globalWidgetColor #FFDD00 Widget color in hex format. buymeacoffee.globalWidgetPosition Not set Position of the widget, i.e. \u0026ldquo;left\u0026rdquo; or \u0026ldquo;right\u0026rdquo; Verifications # Name Default Description verification.google Not set The site verification string provided by Google to be included in the site metadata. verification.bing Not set The site verification string provided by Bing to be included in the site metadata. verification.pinterest Not set The site verification string provided by Pinterest to be included in the site metadata. verification.yandex Not set The site verification string provided by Yandex to be included in the site metadata. verification.fediverse Not set The fediverse handle to include in the site metadata. Include the server domain in the username, e.g. @you@instanceaddress.tld. RSSNext # Name Default Description rssnext.feedId Not set The rss feedId string provided by RSSNext/Follow to be included in the rss.xml, which can helps to claim rss feed as your own. rssnext.userId Not set The rss userId string provided by RSSNext/Follow to be included in the rss.xml, which can helps to claim rss feed as your own. Advertisement # Name Default Description advertisement.adsense Not set Your Google AdSense Publisher ID (e.g. ca-pub-1234567890abcdef). Set this parameter to enable AdSense ads on your site. Other configuration files # The theme also includes a markup.toml configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.\nAlways ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to function incorrectly and could result in unintended behaviour.\n","externalUrl":null,"permalink":"/docs/configuration/","section":"Documentation","summary":"Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.\nThe theme ships with a default configuration that gets you up and running with a basic blog or static website.\n","title":"Configuration","type":"docs"},{"content":"","externalUrl":"https://mucahitkurtlar.github.io","permalink":"/users/3-9d028495840ad385e6cb3ccf051dca22/","section":"Users","summary":"","title":"mucahitkurtlar.github.io","type":"users"},{"content":"","externalUrl":"https://brendanwallace.github.io","permalink":"/users/4-64ef36564d497eed256b9f4c56b1184e/","section":"Users","summary":"","title":"brendanwallace.github.io","type":"users"},{"content":"Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.\nThe layout of the homepage is controlled by the homepage.layout setting in the params.toml configuration file. Additionally, all layouts have the option to include a listing of recent articles.\nProfile layout # The default layout is the profile layout, which is great for personal websites and blogs. It puts the author\u0026rsquo;s details front and centre by providing an image and links to social profiles.\nThe author information is provided in the languages configuration file. Refer to the Getting Started and Language Configuration sections for parameter details.\nAdditionally, any Markdown content that is provided in the homepage content will be placed below the author profile. This allows extra flexibility for displaying a bio or other custom content using shortcodes.\nTo enable the Profile layout, set homepage.layout = \u0026quot;profile\u0026quot; in the params.toml configuration file.\nPage layout # The page layout is simply a normal content page that displays your Markdown content. It\u0026rsquo;s great for static websites and provides a lot of flexibility.\nTo enable the Page layout, set homepage.layout = \u0026quot;page\u0026quot; in the params.toml configuration file.\nHero layout # The hero layout brings together ideas from the profile and card layouts. This one not only displays information on the author of the site but it also loads your markdown beneath it.\nTo enable the Hero layout, set homepage.layout = \u0026quot;hero\u0026quot; and homepage.homepageImage in the params.toml configuration file.\nBackground layout # The background layout is a more smooth version of the hero layout. As in the Hero layout, this one also displays both information on the author of the site and loads your markdown beneath it.\nTo enable the Background layout, set homepage.layout = \u0026quot;background\u0026quot; and homepage.homepageImage in the params.toml configuration file.\nCard layout # The card layout is an extension of the page layout. It provides the same level of flexibility by also displaying your markdown content and adds a card image to display visual content.\nTo enable the Card layout, set homepage.layout = \u0026quot;card\u0026quot; and homepage.homepageImage in the params.toml configuration file.\nCustom layout # If the built-in homepage layouts aren\u0026rsquo;t sufficient for your needs, you have the option to provide your own custom layout. This allows you to have total control over the page content and essentially gives you a blank slate to work with.\nTo enable the Custom layout, set homepage.layout = \u0026quot;custom\u0026quot; in the params.toml configuration file.\nWith the configuration value set, create a new custom.html file and place it in layouts/partials/home/custom.html. Now whatever is in the custom.html file will be placed in the content area of the site homepage. You may use whatever HTML, Tailwind, or Hugo templating functions you wish to define your layout.\nTo include recent articles on the custom layout, use the recent-articles/main.html partial.\nAs an example, the homepage on this site uses the custom layout to allow toggling between the profile and page layouts. Visit the GitHub repo to see how it works.\nRecent articles # All homepage layouts have the option of displaying recent articles below the main page content. To enable this, simply set the homepage.showRecent setting to true in the params.toml configuration file.\nThe articles listed in this section are derived from the mainSections setting which allows for whatever content types you are using on your website. For instance, if you had content sections for posts and projects you could set this setting to [\u0026quot;posts\u0026quot;, \u0026quot;projects\u0026quot;] and all the articles in these two sections would be used to populate the recent list. The theme expects this setting to be an array so if you only use one section for all your content, you should set this accordingly: [\u0026quot;blog\u0026quot;].\nThumbnails # Blowfish was built so it would be easy to add visual support to your articles. If you\u0026rsquo;re familiar with Hugo article structure, you just need to place an image file (almost all formats are supported bue we recommend .png or .jpg) that starts with feature* inside your article folder. And that\u0026rsquo;s it, Blowfish will then able to both use the image as a thumbnail within your website as well as for oEmbed cards across social platforms.\nHere is a guide with more info and a sample if you want to see an example.\nCard Gallery # Blowfish also supports displaying the standard lists of articles as card galleries. You can config this both for the recent section in the homepage and for lists of articles across your website. For homepage you can use homepage.cardView and homepage.cardViewScreenWidth; and for lists use list.cardView and list.cardViewScreenWidth. Check the Configuration docs for more details, and the homepage for a live demo.\n","externalUrl":null,"permalink":"/docs/homepage-layout/","section":"Documentation","summary":"Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.\n","title":"Homepage Layout","type":"docs"},{"content":"","externalUrl":"https://pmnxis.github.io","permalink":"/users/5-5bf94b5c1e0c4a40d81816df85e1444f/","section":"Users","summary":"","title":"pmnxis.github.io","type":"users"},{"content":"In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality.\nAlert # alert outputs its contents as a stylised message box within your article. It\u0026rsquo;s useful for drawing attention to important information that you don\u0026rsquo;t want the reader to miss.\nParameter Description icon Optional. the icon to display on the left side.\nDefault: triangle-exclamation (Check out the icon shortcode for more details on using icons.) iconColor Optional. the color for the icon in basic CSS style.\nCan be either hex values (#FFFFFF) or color names (white)\nBy default chosen based on the current color theme . cardColor Optional. the color for the card background in basic CSS style.\nCan be either hex values (#FFFFFF) or color names (white)\nBy default chosen based on the current color theme . textColor Optional. the color for the text in basic CSS style.\nCan be either hex values (#FFFFFF) or color names (white)\nBy default chosen based on the current color theme . The input is written in Markdown so you can format it however you please.\nExample 1: No params\n{{\u0026lt; alert \u0026gt;}} **Warning!** This action is destructive! {{\u0026lt; /alert \u0026gt;}} Warning! This action is destructive! Example 2: Unnamed param\n{{\u0026lt; alert \u0026#34;twitter\u0026#34; \u0026gt;}} Don\u0026#39;t forget to [follow me](https://twitter.com/nunocoracao) on Twitter. {{\u0026lt; /alert \u0026gt;}} Don\u0026rsquo;t forget to follow me on Twitter. Example 3: Named params\n{{\u0026lt; alert icon=\u0026#34;fire\u0026#34; cardColor=\u0026#34;#e63946\u0026#34; iconColor=\u0026#34;#1d3557\u0026#34; textColor=\u0026#34;#f1faee\u0026#34; \u0026gt;}} This is an error! {{\u0026lt; /alert \u0026gt;}} This is an error! Admonition # Admonitions allow you to insert eye-catching callout boxes in your content.\nAdmonitions serve a similar purpose as the alert shortcode but are implemented via Hugo render hooks. The key difference is syntax: admonitions use Markdown syntax, making them more portable across different platforms, whereas shortcodes are specific to Hugo. The syntax resembles GitHub alerts:\n\u0026gt; [!TIP] \u0026gt; A Tip type admonition. \u0026gt; [!TIP]+ Custom Title + Custom Icon \u0026gt; A collapsible admonition with custom title. {icon=\u0026#34;twitter\u0026#34;} Tip A Tip type admonition.\nCustom Title + Custom Icon A collapsible admonition with custom title.\nThe alert sign (+ or -) is optional to control whether the admonition is folded or not. Note that alert sign is only compatible in Obsidian.\nSupported types Valid admonition types include GitHub alert types and Obsidian callout types. The types are case-insensitive.\nGitHub types: NOTE, TIP, IMPORTANT, WARNING, CAUTION\nObsidian types: note, abstract, info, todo, tip, success, question, warning, failure, danger, bug, example, quote\nCustomize admonition See the admonition customization guide.\nAccordion # accordion creates a collapsible set of panels. Use the accordionItem sub-shortcode to define each item. You can control whether multiple items can be open at the same time using the mode parameter.\nParameter Description mode Optional. collapse (single open) or open (multiple open). Defaults to collapse. separated Optional. true to show each item as a separate card. Defaults to false (joined list). accordionItem parameters:\nParameter Description title Required. Title shown in the item header. open Optional. Set to true to have the item open by default. header Optional. Alias for title, kept for compatibility with other shortcodes. icon Optional. Icon name to display before the title. align Optional. Align text within the item: left, center, right Example 1: mode=\u0026quot;open\u0026quot; (multiple items can be open) + separated=true\n{{\u0026lt; accordion mode=\u0026#34;open\u0026#34; separated=true \u0026gt;}} {{\u0026lt; accordionItem title=\u0026#34;Markdown example\u0026#34; icon=\u0026#34;code\u0026#34; open=true \u0026gt;}} This item demonstrates Markdown rendering: - **Bold text** - Lists - `inline code` {{\u0026lt; /accordionItem \u0026gt;}} {{\u0026lt; accordionItem title=\u0026#34;Shortcode example\u0026#34; md=false \u0026gt;}} This item demonstrates shortcode rendering with \u0026lt;code\u0026gt;md=false\u0026lt;/code\u0026gt;: {{\u0026lt; alert \u0026gt;}}This is an inline alert.{{\u0026lt; /alert \u0026gt;}} {{\u0026lt; /accordionItem \u0026gt;}} {{\u0026lt; /accordion \u0026gt;}} Markdown example This item demonstrates Markdown rendering:\nBold text Lists inline code Shortcode example This item demonstrates shortcode rendering with md=false: This is an inline alert. Example 2: mode=\u0026quot;collapse\u0026quot; (only one item open at a time)\n{{\u0026lt; accordion mode=\u0026#34;collapse\u0026#34; \u0026gt;}} {{\u0026lt; accordionItem title=\u0026#34;First item\u0026#34; open=true \u0026gt;}} This item uses Markdown with a short list: 1. One 2. Two 3. Three {{\u0026lt; /accordionItem \u0026gt;}} {{\u0026lt; accordionItem title=\u0026#34;Second item\u0026#34; md=false \u0026gt;}} This item includes another shortcode: {{\u0026lt; badge \u0026gt;}}Tip{{\u0026lt; /badge \u0026gt;}} {{\u0026lt; /accordionItem \u0026gt;}} {{\u0026lt; /accordion \u0026gt;}} First item This item uses Markdown with a short list:\nOne Two Three Second item This item includes another shortcode: Tip Article # Article will embed a single article into a markdown file. The link to the file should be the .RelPermalink of the file to be embedded. Note that the shortcode will not display anything if it\u0026rsquo;s referencing it\u0026rsquo;s parent. Note: if you are running your website in a subfolder like Blowfish (i.e. /blowfish/) please include that path in the link.\nParameter Description link Required. the .RelPermalink to the target article. showSummary Optional. A boolean value indicating whether to show the article summary. If not set, the site\u0026rsquo;s default configuration will be used. compactSummary Optional. A boolean value indicating whether to display the summary in compact mode. Default to false. Example:\n{{\u0026lt; article link=\u0026#34;/docs/welcome/\u0026#34; showSummary=true compactSummary=true \u0026gt;}} Welcome to Blowfish 3 mins\u0026middot; loading New Docs Blowfish is packed with tons of features. The original aim of Blowfish was to develop a theme that was simple and lightweight. The theme is a fork of Congo and expands its initial vision. Badge # badge outputs a styled badge component which is useful for displaying metadata.\nExample:\n{{\u0026lt; badge \u0026gt;}} New article! {{\u0026lt; /badge \u0026gt;}} New article! Button # button outputs a styled button component which can be used to highlight a primary action. It has three optional variables href, target and rel which can be used to specify the URL, target and relation of the link.\nExample:\n{{\u0026lt; button href=\u0026#34;#button\u0026#34; target=\u0026#34;_self\u0026#34; \u0026gt;}} Call to action {{\u0026lt; /button \u0026gt;}} Call to action Carousel # carousel is used to showcase multiple images in an interactive and visually appealing way. This allows a user to slide through multiple images while only taking up the vertical space of a single one. All images are displayed using the full width of the parent component and the aspect ratio you set with a default of 16:9.\nParameter Description images Required. A regex string to match image names or URLs. captions Optional. A list of key:caption pairs. Keys can be image filenames (for local images) or full URLs (for remote images). Captions support Markdown. aspectRatio Optional. The aspect ratio for the carousel. It is set to 16-9 by default. interval Optional. The interval for the auto-scrooling, specified in milliseconds. Defaults to 2000 (2s) Captions are matched by key. For local images, use the filename (e.g. 01.jpg). For remote images, use the full URL.\nExample 1: 16:9 aspect ratio and verbose list of images\n{{\u0026lt; carousel images=\u0026#34;{https://cdn.pixabay.com/photo/2016/12/11/12/02/mountains-1899264_960_720.jpg,gallery/03.jpg,gallery/01.jpg,gallery/02.jpg,gallery/04.jpg}\u0026#34; \u0026gt;}} Previous Next Example 2: 21:9 aspect ratio and regex-ed list of images\n{{\u0026lt; carousel images=\u0026#34;gallery/*\u0026#34; aspectRatio=\u0026#34;21-9\u0026#34; interval=\u0026#34;2500\u0026#34; \u0026gt;}} Previous Next Example 3: Add captions\n{{\u0026lt; carousel images=\u0026#34;gallery/*\u0026#34; captions=\u0026#34;{01.jpg:First image with *formatting*,02.jpg:Second image with a [link](https://example.com)}\u0026#34; \u0026gt;}} First image with formatting Second image with a link \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; Previous Next Chart # chart uses the Chart.js library to embed charts into articles using simple structured data. It supports a number of different chart styles and everything can be configured from within the shortcode. Simply provide the chart parameters between the shortcode tags and Chart.js will do the rest.\nRefer to the official Chart.js docs for details on syntax and supported chart types.\nExample:\n{{\u0026lt; chart \u0026gt;}} type: \u0026#39;bar\u0026#39;, data: { labels: [\u0026#39;Tomato\u0026#39;, \u0026#39;Blueberry\u0026#39;, \u0026#39;Banana\u0026#39;, \u0026#39;Lime\u0026#39;, \u0026#39;Orange\u0026#39;], datasets: [{ label: \u0026#39;# of votes\u0026#39;, data: [12, 19, 3, 5, 3], }] } {{\u0026lt; /chart \u0026gt;}} You can see some additional Chart.js examples on the charts samples page.\nCode Importer # This shortcode is for importing code from external sources easily without copying and pasting.\nParameter Description url Required URL to an externally hosted code file. type Code type used for syntax highlighting. startLine Optional The line number to start the import from. endLine Optional The line number to end the import at. Example:\n{{\u0026lt; codeimporter url=\u0026#34;https://raw.githubusercontent.com/nunocoracao/blowfish/main/layouts/shortcodes/mdimporter.html\u0026#34; type=\u0026#34;go\u0026#34; \u0026gt;}} {{ $url := .Get \u0026#34;url\u0026#34; }} {{ with resources.GetRemote (urls.Parse $url) }} {{ .Content | markdownify }} {{ else }} {{ warnf \u0026#34;mdimporter shortcode: unable to fetch %q: %s\u0026#34; $url .Position }} {{ end }} {{\u0026lt; codeimporter url=\u0026#34;https://raw.githubusercontent.com/nunocoracao/blowfish/main/config/_default/hugo.toml\u0026#34; type=\u0026#34;toml\u0026#34; startLine=\u0026#34;11\u0026#34; endLine=\u0026#34;18\u0026#34; \u0026gt;}} enableRobotsTXT = true summaryLength = 0 buildDrafts = false buildFuture = false enableEmoji = true Codeberg Card # codeberg allows you to quickly link a Codeberg repository via the Codeberg API, providing real-time updates on stats such as stars and forks.\nParameter Description repo [String] codeberg repo in the format of username/repo Example 1:\n{{\u0026lt; codeberg repo=\u0026#34;forgejo/forgejo\u0026#34; \u0026gt;}} \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e forgejo/forgejo Beyond coding. We forge. Go 3888 675 Email # Creates an obfuscated mailto link:\n{{\u0026lt; email email=\u0026#34;mailto:hello@test.com\u0026#34; text=\u0026#34;text\u0026#34; subject=\u0026#34;Reply to awesome article\u0026#34; \u0026gt;}} text Figure # Blowfish includes a figure shortcode for adding images to content. The shortcode replaces the base Hugo functionality in order to provide additional performance benefits.\nWhen a provided image is a page resource, it will be optimised using Hugo Pipes and scaled in order to provide images appropriate to different device resolutions. If a static asset or URL to an external image is provided, it will be included as-is without any image processing by Hugo.\nThe figure shortcode accepts six parameters:\nParameter Description src Required. The local path/filename or URL of the image. When providing a path and filename, the theme will attempt to locate the image using the following lookup order: Firstly, as a page resource bundled with the page; then an asset in the assets/ directory; then finally, a static image in the static/ directory. alt Alternative text description for the image. caption Markdown for the image caption, which will be displayed below the image. class Additional CSS classes to apply to the image. figureClass Additional CSS classes to apply to the \u0026lt;figure\u0026gt; wrapper. Useful for galleries. href URL that the image should be linked to. target The target attribute for the href URL. nozoom nozoom=true disables the image \u0026ldquo;zoom\u0026rdquo; functionality. This is most useful in combination with a href link. default Special parameter to revert to default Hugo figure behaviour. Simply provide default=true and then use normal Hugo shortcode syntax. Blowfish also supports automatic conversion of images included using standard Markdown syntax. Simply use the following format and the theme will handle the rest:\n![Alt text](image.jpg \u0026#34;Image caption\u0026#34;) Example:\n{{\u0026lt; figure src=\u0026#34;abstract.jpg\u0026#34; alt=\u0026#34;Abstract purple artwork\u0026#34; caption=\u0026#34;Photo by [Jr Korpa](https://unsplash.com/@jrkorpa) on [Unsplash](https://unsplash.com/)\u0026#34; \u0026gt;}} \u0026lt;!-- OR --\u0026gt; ![Abstract purple artwork](abstract.jpg \u0026#34;Photo by [Jr Korpa](https://unsplash.com/@jrkorpa) on [Unsplash](https://unsplash.com/)\u0026#34;) Photo by Jr Korpa on Unsplash Forgejo Card # forgejo allows you to quickly link a Forgejo repository via the forgejo API, providing real-time updates on stats such as stars and forks.\nParameter Description repo [String] forgejo repo in the format of username/repo server [String] server URL like https://v11.next.forgejo.org Example 1:\n{{\u0026lt; forgejo server=\u0026#34;https://v11.next.forgejo.org\u0026#34; repo=\u0026#34;a/mastodon\u0026#34; \u0026gt;}} a/mastodon Your self-hosted, globally interconnected microblogging community Ruby 0 0 Gallery # gallery allows you to showcase multiple images at once, in a responsive manner with more varied and interesting layouts.\nIn order to add images to the gallery, use img tags for each image and add class=\u0026quot;grid-wXX\u0026quot; in order for the gallery to be able to identify the column width for each image. The widths available by default start at 10% and go all the way to 100% in 5% increments. For example, to set the width to 65%, set the class to grid-w65. Additionally, widths for 33% and 66% are also available in order to build galleries with 3 cols. You can also leverage tailwind\u0026rsquo;s responsive indicators to have a reponsive grid.\nIf you need captions, you can use the figure shortcode inside the gallery. When doing so, set the grid width on the figure using figureClass, and use caption for the text.\nExample 1: normal gallery\n{{\u0026lt; gallery \u0026gt;}} \u0026lt;img src=\u0026#34;gallery/01.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/02.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/03.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/04.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/05.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/06.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/07.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; {{\u0026lt; /gallery \u0026gt;}} Example 2: responsive gallery\n{{\u0026lt; gallery \u0026gt;}} \u0026lt;img src=\u0026#34;gallery/01.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/02.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/03.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/04.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/05.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/06.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/07.jpg\u0026#34; class=\u0026#34;grid-w50 md:grid-w33 xl:grid-w25\u0026#34; /\u0026gt; {{\u0026lt; /gallery \u0026gt;}} Example 3: gallery with captions (using figure)\n{{\u0026lt; gallery \u0026gt;}} {{\u0026lt; figure src=\u0026#34;gallery/01.jpg\u0026#34; alt=\u0026#34;Gallery image 1\u0026#34; caption=\u0026#34;First caption\u0026#34; figureClass=\u0026#34;grid-w33\u0026#34; \u0026gt;}} {{\u0026lt; figure src=\u0026#34;gallery/02.jpg\u0026#34; alt=\u0026#34;Gallery image 2\u0026#34; caption=\u0026#34;Second caption\u0026#34; figureClass=\u0026#34;grid-w33\u0026#34; \u0026gt;}} {{\u0026lt; figure src=\u0026#34;gallery/03.jpg\u0026#34; alt=\u0026#34;Gallery image 3\u0026#34; caption=\u0026#34;Third caption\u0026#34; figureClass=\u0026#34;grid-w33\u0026#34; \u0026gt;}} {{\u0026lt; /gallery \u0026gt;}} First caption Second caption Third caption Gist # gist shortcode allows you to embed a GitHub Gist directly into your content by specifying the Gist user, ID, and optionally a specific file.\nParameter Description [0] [String] GitHub username [1] [String] Gist ID [2] (optional) [String] Filename within the Gist to embed (optional) Example 1: Embed entire Gist\n{{\u0026lt; gist \u0026#34;octocat\u0026#34; \u0026#34;6cad326836d38bd3a7ae\u0026#34; \u0026gt;}} Example 2: Embed specific file from Gist\n{{\u0026lt; gist \u0026#34;rauchg\u0026#34; \u0026#34;2052694\u0026#34; \u0026#34;README.md\u0026#34; \u0026gt;}} Gitea Card # gitea allows you to quickly link a Gitea repository via the gitea API, providing real-time updates on stats such as stars and forks.\nParameter Description repo [String] gitea repo in the format of username/repo server [String] server URL like https://git.fsfe.org Example 1:\n{{\u0026lt; gitea server=\u0026#34;https://git.fsfe.org\u0026#34; repo=\u0026#34;FSFE/fsfe-website\u0026#34; \u0026gt;}} FSFE/fsfe-website Source files of fsfe.org, pdfreaders.org, freeyourandroid.org, ilovefs.org, drm.info, and test.fsfe.org. Contribute: https://fsfe.org/contribute/web/ HTML 33 93 GitHub Card # github allows you to quickly link a github repository, all while showing and updating in realtime stats about it, such as the number of stars and forks it has.\nParameter Description repo [String] github repo in the format of username/repo showThumbnail Optional [boolean] display a thumbnail for the repository Example 1:\n{{\u0026lt; github repo=\u0026#34;nunocoracao/blowfish\u0026#34; showThumbnail=true \u0026gt;}} nunocoracao/blowfish Personal Website \u0026amp; Blog Theme for Hugo HTML 2655 696 GitLab Card # gitlab allows you to quickly link a GitLab Project (GitLab\u0026rsquo;s jargon for repo). It displays realtime stats about it, such as the number of stars and forks it has. Unlike github it can\u0026rsquo;t display the main programming language of a project. Finally, custom GitLab instance URL can be provided, as long as the api/v4/projects/ endpoint is available, making this shortcode compatible with most self-hosted / enterprise deployments.\nParameter Description projectID [String] gitlab numeric ProjectID baseURL [String] optional gitlab instance URL, default is https://gitlab.com/ Example 1:\n{{\u0026lt; gitlab projectID=\u0026#34;278964\u0026#34; \u0026gt;}} GitLab.org / GitLab GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider. 5943 11963 Hugging Face Card # huggingface allows you to quickly link a Hugging Face model or dataset, displaying real-time information such as the number of likes and downloads, along with type and description.\nParameter Description model [String] Hugging Face model in the format of username/model dataset [String] Hugging Face dataset in the format of username/dataset Note: Use either model or dataset parameter, not both.\nExample 1 (Model):\n{{\u0026lt; huggingface model=\u0026#34;google-bert/bert-base-uncased\u0026#34; \u0026gt;}} google-bert/bert-base-uncased fill-mask 2584 6.8133004e\u0026#43;07 Example 2 (Dataset):\n{{\u0026lt; huggingface dataset=\u0026#34;stanfordnlp/imdb\u0026#34; \u0026gt;}} stanfordnlp/imdb Large Movie Review Dataset. This is a dataset for binary sentiment classification containing substantially more data than previous benchmark datasets. We provide a set of 25,000 highly polar movie reviews for training, and 25,000 for testing. There is additional unlabeled data for use as well. Supported Tasks and Leaderboards More Information Needed Languages More Information Needed Dataset Structure… See the full description on the dataset page: https://huggingface.co/datasets/stanfordnlp/imdb. dataset 361 114373 Icon # icon outputs an SVG icon and takes the icon name as its only parameter. The icon is scaled to match the current text size.\nExample:\n{{\u0026lt; icon \u0026#34;github\u0026#34; \u0026gt;}} Output: Icons are populated using Hugo pipelines which makes them very flexible. Blowfish includes a number of built-in icons for social, links and other purposes. Check the icon samples page for a full list of supported icons.\nCustom icons can be added by providing your own icon assets in the assets/icons/ directory of your project. The icon can then be referenced in the shortcode by using the SVG filename without the .svg extension.\nIcons can also be used in partials by calling the icon partial.\nKaTeX # The katex shortcode can be used to add mathematical expressions to article content using the KaTeX package. Refer to the online reference of supported TeX functions for the available syntax.\nTo include mathematical expressions in an article, simply place the shortcode anywhere with the content. It only needs to be included once per article and KaTeX will automatically render any markup on that page. Both inline and block notation are supported.\nInline notation can be generated by wrapping the expression in \\( and \\) delimiters. Alternatively, block notation can be generated using $$ delimiters.\nExample:\n{{\u0026lt; katex \u0026gt;}} \\(f(a,b,c) = (a^2+b^2+c^2)^3\\) \\(f(a,b,c) = (a^2+b^2+c^2)^3\\)\nCheck out the mathematical notation samples page for more examples.\nKeyword # The keyword component can be used to visually highlight certain important words or phrases, e.g. professional skills etc. The keywordList shortcode can be used to group together multiple keyword items. Each item can have the following properties.\nParameter Description icon Optional icon to be used in the keyword The input is written in Markdown so you can format it however you please.\nExample1 :\n{{\u0026lt; keyword \u0026gt;}} *Super* skill {{\u0026lt; /keyword \u0026gt;}} Super skill Example2 :\n{{\u0026lt; keywordList \u0026gt;}} {{\u0026lt; keyword icon=\u0026#34;github\u0026#34; \u0026gt;}} Lorem ipsum dolor. {{\u0026lt; /keyword \u0026gt;}} {{\u0026lt; keyword icon=\u0026#34;code\u0026#34; \u0026gt;}} **Important** skill {{\u0026lt; /keyword \u0026gt;}} {{\u0026lt; /keywordList \u0026gt;}} {{\u0026lt; keyword \u0026gt;}} *Standalone* skill {{\u0026lt; /keyword \u0026gt;}} Lorem ipsum dolor Important skill Standalone skill Lead # lead is used to bring emphasis to the start of an article. It can be used to style an introduction, or to call out an important piece of information. Simply wrap any Markdown content in the lead shortcode.\nExample:\n{{\u0026lt; lead \u0026gt;}} When life gives you lemons, make lemonade. {{\u0026lt; /lead \u0026gt;}} When life gives you lemons, make lemonade. List # List will display a list of recent articles. This shortcode requires a limit value to constraint the list. Additionally, it supports a where and a value in order to filter articles by their parameters. Note that this shortcode will not display its parent page but it will count for the limit value.\nParameter Description limit Required. the number of recent articles to display. title Optional title for the list, default is Recent cardView Optional card view enabled for the list, default is false where The variable to be used for the query of articles e.g. Type value The value that will need to match the parameter defined in where for the query of articles e.g. for where == Type a valid value could be sample The where and value values are used in the following query where .Site.RegularPages $where $value in the code of the shortcode. Check Hugo docs to learn more about which parameters are available to use. Example #1:\n{{\u0026lt; list limit=2 \u0026gt;}} Recent n9o.xyz \u0026#8599; \u0026#8598; Personal Site Theme Author Welcome to Blowfish 3 mins\u0026middot; loading New Docs Example #2:\n{{\u0026lt; list title=\u0026#34;Samples\u0026#34; cardView=true limit=6 where=\u0026#34;Type\u0026#34; value=\u0026#34;sample\u0026#34; \u0026gt;}} Samples Multiple Authors 1 min\u0026middot; loading Nuno Coração ,\u0026nbsp; Dummy Second Author Authors Sample Thumbnails 1 min\u0026middot; loading Thumbnail Sample Icons 2 mins\u0026middot; loading Icons Sample Shortcodes Markdown 3 mins\u0026middot; loading Markdown Css Html Sample Rich Content 1 min\u0026middot; loading Shortcodes Privacy Sample Gist Twitter Youtube Vimeo Placeholder Text Updated: 24 January 2022\u0026middot;2 mins\u0026middot; loading Markdown Text Sample Latin LTR/RTL # ltr and rtl allows you to mix your contents. Many RTL language users want to include parts of the content in LTR. Using this shortcode will let you do so, and by leveraging % as the outer-most dilemeter in the shortcode Hugo shortcodes, any markdown inside will be rendered normally.\nExample:\n- This is an markdown list. - Its per default a LTR direction {{% rtl %}} - هذه القائمة باللغة العربية - من اليمين الى اليسار {{% /rtl %}} This is an markdown list. Its per default a LTR direction هذه القائمة باللغة العربية من اليمين الى اليسار Markdown Importer # This shortcode allows you to import markdown files from external sources. This is useful for including content from other repositories or websites without having to copy and paste the content.\nParameter Description url Required URL to an externally hosted markdown file. Example:\n{{\u0026lt; mdimporter url=\u0026#34;https://raw.githubusercontent.com/nunocoracao/nunocoracao/master/README.md\u0026#34; \u0026gt;}} Hi there 👋 # 🧠 Principal PM @ Docker (AI, agents, infra) · Creator of Watchfire and Blowfish · Ex-founder · Mentor \u0026amp; advisor\n🔥 Creator and maintainer of Watchfire @ watchfire.io - repo\n🐡 Creator and maintainer of Blowfish @ blowfish.page - repo\n🐳 Principal Product Manager @ Docker - working on cagent\n📚 mentoring @ mentorcruise\n🚀 Personal blog - n9o.xyz\nMermaid # mermaid allows you to draw detailed diagrams and visualisations using text. It uses Mermaid under the hood and supports a wide variety of diagrams, charts and other output formats.\nSimply write your Mermaid syntax within the mermaid shortcode and let the plugin do the rest.\nRefer to the official Mermaid docs for details on syntax and supported diagram types.\nExample:\n{{\u0026lt; mermaid \u0026gt;}} graph LR; A[Lemons]--\u0026gt;B[Lemonade]; B--\u0026gt;C[Profit] {{\u0026lt; /mermaid \u0026gt;}} graph LR; A[Lemons]--\u003eB[Lemonade]; B--\u003eC[Profit] You can see some additional Mermaid examples on the diagrams and flowcharts samples page.\nSwatches # swatches outputs a set of up to three different colors to showcase color elements like a color palette. This shortcode takes the HEX codes of each color and creates the visual elements for each.\nExample\n{{\u0026lt; swatches \u0026#34;#64748b\u0026#34; \u0026#34;#3b82f6\u0026#34; \u0026#34;#06b6d4\u0026#34; \u0026gt;}} Output Tabs # The tabs shortcode is commonly used to present different variants of a particular step. For example, it can be used to show how to install VS Code on different platforms.\nParameter Description group Optional. Group name for synchronized tab switching. All tabs with the same group name will switch together. default Optional. Label of the tab to be active by default. If not set, the first tab will be active. label Required. The text label displayed on the tab button. icon Optional. Icon name to display before the label. md Optional. Render tab content as Markdown (default true). Set md=false to allow nested shortcodes inside tab content. Example 1: Basic Usage\n{{\u0026lt; tabs \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Windows\u0026#34; \u0026gt;}} Install using Chocolatey: ```pwsh choco install vscode.install ``` or install using WinGet ```pwsh winget install -e --id Microsoft.VisualStudioCode ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;macOS\u0026#34; \u0026gt;}} ```bash brew install --cask visual-studio-code ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Linux\u0026#34; md=false \u0026gt;}} {{\u0026lt; alert \u0026gt;}}See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).{{\u0026lt; /alert \u0026gt;}} {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; /tabs \u0026gt;}} Output\nWindows macOS Linux Install using Chocolatey:\nchoco install vscode.install or install using WinGet\nwinget install -e --id Microsoft.VisualStudioCode brew install --cask visual-studio-code See documentation. Example 2: With Group, Default, and Icon\n{{\u0026lt; tabs group=\u0026#34;lang\u0026#34; default=\u0026#34;Python\u0026#34; \u0026gt;}} {{\u0026lt; tab label=\u0026#34;JavaScript\u0026#34; icon=\u0026#34;code\u0026#34; \u0026gt;}} ```javascript console.log(\u0026#34;Hello\u0026#34;); ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Python\u0026#34; icon=\u0026#34;sun\u0026#34; \u0026gt;}} ```python print(\u0026#34;Hello\u0026#34;) ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Go\u0026#34; icon=\u0026#34;moon\u0026#34; \u0026gt;}} ```go fmt.Println(\u0026#34;Hello\u0026#34;) ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; /tabs \u0026gt;}} {{\u0026lt; tabs group=\u0026#34;lang\u0026#34; default=\u0026#34;Python\u0026#34; \u0026gt;}} {{\u0026lt; tab label=\u0026#34;JavaScript\u0026#34; icon=\u0026#34;code\u0026#34; \u0026gt;}} ```javascript const add = (a, b) =\u0026gt; a + b; ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Python\u0026#34; icon=\u0026#34;sun\u0026#34; \u0026gt;}} ```python def add(a, b): return a + b ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; tab label=\u0026#34;Go\u0026#34; icon=\u0026#34;moon\u0026#34; \u0026gt;}} ```go func add(a, b int) int { return a + b } ``` {{\u0026lt; /tab \u0026gt;}} {{\u0026lt; /tabs \u0026gt;}} Output\nJavaScript Python Go console.log(\u0026#34;Hello\u0026#34;); print(\u0026#34;Hello\u0026#34;) fmt.Println(\u0026#34;Hello\u0026#34;) JavaScript Python Go const add = (a, b) =\u0026gt; a + b; def add(a, b): return a + b func add(a, b int) int { return a + b } In this example, both tab groups share the same group=\u0026quot;lang\u0026quot; parameter, so clicking any tab will synchronize both groups. The default=\u0026quot;Python\u0026quot; parameter makes Python the initially active tab, and icon=\u0026quot;code\u0026quot; adds an icon before each label.\nTimeline # The timeline creates a visual timeline that can be used in different use-cases, e.g. professional experience, a project\u0026rsquo;s achievements, etc. The timeline shortcode relies on the timelineItem sub-shortcode to define each item within the main timeline. Each item can have the following properties.\nParameter Description md render the content as Markdown (true/false) icon the icon to be used in the timeline visuals header header for each entry badge text to place within the top right badge subheader entry\u0026rsquo;s subheader Example:\n{{\u0026lt; timeline \u0026gt;}} {{\u0026lt; timelineItem icon=\u0026#34;github\u0026#34; header=\u0026#34;header\u0026#34; badge=\u0026#34;badge test\u0026#34; subheader=\u0026#34;subheader\u0026#34; \u0026gt;}} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus non magna ex. Donec sollicitudin ut lorem quis lobortis. Nam ac ipsum libero. Sed a ex eget ipsum tincidunt venenatis quis sed nisl. Pellentesque sed urna vel odio consequat tincidunt id ut purus. Nam sollicitudin est sed dui interdum rhoncus. {{\u0026lt; /timelineItem \u0026gt;}} {{\u0026lt; timelineItem icon=\u0026#34;code\u0026#34; header=\u0026#34;Another Awesome Header\u0026#34; badge=\u0026#34;date - present\u0026#34; subheader=\u0026#34;Awesome Subheader\u0026#34; \u0026gt;}} With html code \u0026lt;ul\u0026gt; \u0026lt;li\u0026gt;Coffee\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;Tea\u0026lt;/li\u0026gt; \u0026lt;li\u0026gt;Milk\u0026lt;/li\u0026gt; \u0026lt;/ul\u0026gt; {{\u0026lt; /timelineItem \u0026gt;}} {{\u0026lt; timelineItem icon=\u0026#34;star\u0026#34; header=\u0026#34;Shortcodes\u0026#34; badge=\u0026#34;AWESOME\u0026#34; \u0026gt;}} With other shortcodes {{\u0026lt; gallery \u0026gt;}} \u0026lt;img src=\u0026#34;gallery/01.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/02.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/03.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/04.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/05.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/06.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; \u0026lt;img src=\u0026#34;gallery/07.jpg\u0026#34; class=\u0026#34;grid-w33\u0026#34; /\u0026gt; {{\u0026lt; /gallery \u0026gt;}} {{\u0026lt; /timelineItem \u0026gt;}} {{\u0026lt; timelineItem icon=\u0026#34;code\u0026#34; header=\u0026#34;Another Awesome Header\u0026#34;\u0026gt;}} {{\u0026lt; github repo=\u0026#34;nunocoracao/blowfish\u0026#34; \u0026gt;}} {{\u0026lt; /timelineItem \u0026gt;}} {{\u0026lt; /timeline \u0026gt;}} header badge test subheader Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus non magna ex. Donec sollicitudin ut lorem quis lobortis. Nam ac ipsum libero. Sed a ex eget ipsum tincidunt venenatis quis sed nisl. Pellentesque sed urna vel odio consequat tincidunt id ut purus. Nam sollicitudin est sed dui interdum rhoncus. Another Awesome Header date - present Awesome Subheader With html code Coffee Tea Milk Shortcodes AWESOME With other shortcodes Another Awesome Header nunocoracao/blowfish Personal Website \u0026amp; Blog Theme for Hugo HTML 2655 696 TypeIt # TypeIt is the most versatile JavaScript tool for creating typewriter effects on the planet. With a straightforward configuration, it allows you to type single or multiple strings that break lines, delete \u0026amp; replace each other, and it even handles strings that contain complex HTML.\nBlowfish implements a sub-set of TypeIt features using a shortcode. Write your text within the typeit shortcode and use the following parameters to configure the behavior you want.\nParameter Description tag [String] html tag that will be used to render the strings. classList [String] List of css classes to apply to the html element. initialString [String] Initial string that will appear written and will be replaced. speed [number] Typing speed, measured in milliseconds between each step. lifeLike [boolean] Makes the typing pace irregular, as if a real person is doing it. startDelay [number] The amount of time before the plugin begins typing after being initialized. breakLines [boolean] Whether multiple strings are printed on top of each other (true), or if they\u0026rsquo;re deleted and replaced by each other (false). waitUntilVisible [boolean] Determines if the instance will begin when loaded or only when the target element becomes visible in the viewport. The default is true loop [boolean] Whether your strings will continuously loop after completing Example 1:\n{{\u0026lt; typeit \u0026gt;}} Lorem ipsum dolor sit amet {{\u0026lt; /typeit \u0026gt;}} Example 2:\n{{\u0026lt; typeit tag=h1 lifeLike=true \u0026gt;}} Lorem ipsum dolor sit amet, consectetur adipiscing elit. {{\u0026lt; /typeit \u0026gt;}} Example 3:\n{{\u0026lt; typeit tag=h3 speed=50 breakLines=false loop=true \u0026gt;}} \u0026#34;Frankly, my dear, I don\u0026#39;t give a damn.\u0026#34; Gone with the Wind (1939) \u0026#34;I\u0026#39;m gonna make him an offer he can\u0026#39;t refuse.\u0026#34; The Godfather (1972) \u0026#34;Toto, I\u0026#39;ve a feeling we\u0026#39;re not in Kansas anymore.\u0026#34; The Wizard of Oz (1939) {{\u0026lt; /typeit \u0026gt;}} Video # Blowfish includes a video shortcode for embedding local or external videos in content. The shortcode renders a \u0026lt;figure\u0026gt; wrapper with a responsive video player and an optional caption.\nThe video shortcode accepts the following parameters:\nParameter Description src Required. Video URL or local path. Local lookup order: page resource → assets/ → static/. poster Optional poster image URL or local path. If omitted, the shortcode attempts a same-name image in the page bundle. caption Optional Markdown caption shown below the video. autoplay true/false. Enables autoplay when true. Default: false. loop true/false. Loops when true. Default: false. muted true/false. Mutes when true. Default: false. controls true/false. Shows the browser’s default playback controls when true. Default: true. playsinline true/false. Inline playback on mobile when true. Default: true. preload metadata (load info), none (save bandwidth), or auto (preload more). Default: metadata. start Optional start time in seconds. end Optional end time in seconds. ratio Reserved aspect ratio for the player. Supports 16/9, 4/3, 1/1, or custom W/H. Default: 16/9. fit How the video fits the ratio: contain (no crop), cover (crop to fill), fill (stretch). Default: contain. If the browser cannot play the video, the player will show a minimal English fallback message with a download link.\nExample:\n{{\u0026lt; video src=\u0026#34;https://upload.wikimedia.org/wikipedia/commons/5/5a/CC0_-_Public_Domain_Dedication_video_bumper.webm\u0026#34; poster=\u0026#34;https://upload.wikimedia.org/wikipedia/commons/e/e0/CC0.jpg\u0026#34; caption=\u0026#34;**Public domain demo** — CC0 video and poster.\u0026#34; loop=true muted=true \u0026gt;}} Your browser cannot play this video. Download video.\nPublic domain demo — CC0 video and poster. Youtube Lite # A shortcut to embed youtube videos using the lite-youtube-embed library. This library is a lightweight alternative to the standard youtube embeds, and it\u0026rsquo;s designed to be faster and more efficient.\nParameter Description id [String] Youtube video id to embed. label [String] Label for the video params [String] Extras parameters for video playing Example 1:\n{{\u0026lt; youtubeLite id=\u0026#34;SgXhGb-7QbU\u0026#34; label=\u0026#34;Blowfish-tools demo\u0026#34; \u0026gt;}} Example 2:\nYou can use all of Youtube\u0026rsquo;s player parameters for the params variable, as demonstrated below:\nThis video will start after 130 seconds (2m10)\n{{\u0026lt; youtubeLite id=\u0026#34;SgXhGb-7QbU\u0026#34; label=\u0026#34;Blowfish-tools demo\u0026#34; params=\u0026#34;start=130\u0026#34; \u0026gt;}} This video will not have UI controls, will start playing at 130 seconds and will stop 10 seconds later.\nTo concatenate multiple options as shown below, you need to add the \u0026amp; character between them.\n{{\u0026lt; youtubeLite id=\u0026#34;SgXhGb-7QbU\u0026#34; label=\u0026#34;Blowfish-tools demo\u0026#34; params=\u0026#34;start=130\u0026amp;end=10\u0026amp;controls=0\u0026#34; \u0026gt;}} More informations can be found on the youtubeLite GitHub repo and Youtube\u0026rsquo;s player parameters page.\n","externalUrl":null,"permalink":"/docs/shortcodes/","section":"Documentation","summary":"In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality.\nAlert # alert outputs its contents as a stylised message box within your article. It’s useful for drawing attention to important information that you don’t want the reader to miss.\n","title":"Shortcodes","type":"docs"},{"content":"","externalUrl":"https://ciicadalab.github.io","permalink":"/users/6-ef51c7b9654a4f2d13525eb80ee46cdf/","section":"Users","summary":"","title":"ciicadalab.github.io","type":"users"},{"content":"In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.\nFront matter parameter default values are inherited from the theme\u0026rsquo;s base configuration, so you only need to specify these parameters in your front matter when you want to override the default.\nName Default Description title Not set The name of the article. description Not set The text description for the article. It is used in the HTML metadata. externalUrl Not set If this article is published on a third-party website, the URL to this article. Providing a URL will prevent a content page being generated and any references to this article will link directly to the third-party website. editURL article.editURL When showEdit is active, the URL for the edit link. editAppendPath article.editAppendPath When showEdit is active, whether or not the path to the current article should be appended to the URL set at editURL. groupByYear list.groupByYear Whether or not articles are grouped by year on list pages. menu Not set When a value is provided, a link to this article will appear in the named menus. Valid values are main or footer. robots Not set String that indicates how robots should handle this article. If set, it will be output in the page head. Refer to Google\u0026rsquo;s docs for valid values. sharingLinks article.sharingLinks Which sharing links to display at the end of this article. When not provided, or set to false no links will be displayed. showAuthor article.showAuthor Whether or not the author box for the default author is displayed in the article footer. showAuthorBottom article.showAuthorBottom Author boxes are displayed at the bottom of each page instead of the top. authors Not set Array of values for authors, if set it overrides showAuthor settings for page or site. Used on the multiple authors feature, check this page for more details on how to configure that feature. showAuthorsBadges article.showAuthorsBadges Whether the authors taxonomies are are displayed in the article or list header. This requires the setup of multiple authors and the authors taxonomy. Check this page for more details on how to configure that feature. featureimage Not set Link for feature image featureimagecaption Not set Caption for feature image. Only displayed in heroStyle big showHero article.showHero Whether the thumbnail image will be shown as a hero image within the article page. heroStyle article.heroStyle Style to display the hero image, valid options are: basic, big, background, thumbAndBackground. imagePosition Not set Sets the position of the feature image using object-position attribute. Valid values are as specified in the MDN documentation. showBreadcrumbs article.showBreadcrumbs or list.showBreadcrumbs Whether the breadcrumbs are displayed in the article or list header. showDate article.showDate Whether or not the article date is displayed. The date is set using the date parameter. showDateUpdated article.showDateUpdated Whether or not the date the article was updated is displayed. The date is set using the lastmod parameter. showEdit article.showEdit Whether or not the link to edit the article content should be displayed. showHeadingAnchors article.showHeadingAnchors Whether or not heading anchor links are displayed alongside headings within this article. showPagination article.showPagination Whether or not the next/previous article links are displayed in the article footer. invertPagination article.invertPagination Whether or not to flip the direction of the next/previous article links. showReadingTime article.showReadingTime Whether or not the article reading time is displayed. showTaxonomies article.showTaxonomies Whether or not the taxonomies that relate to this article are displayed. showTableOfContents article.showTableOfContents Whether or not the table of contents is displayed on this article. showWordCount article.showWordCount Whether or not the article word count is displayed. showComments article.showComments Whether or not the comments partial is included after the article footer. showSummary list.showSummary Whether or not the article summary should be displayed on list pages. showViews article.showViews Whether or not the article views should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish showLikes article.showLikes Whether or not the article likes should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish seriesOpened article.seriesOpened Whether or not the series module will be displayed open by default or not. series Not set Array of series the article belongs to, we recommend using only one series per article. series_order Not set Number of the article within the series. summary Auto generated using summaryLength (see site configuration) When showSummary is enabled, this is the Markdown string to be used as the summary for this article. xml true unless excluded by sitemap.excludedKinds Whether or not this article is included in the generated /sitemap.xml file. excludeFromSearch false Whether or not this article should be excluded from the sitemap and search index. When true, the page will not appear in sitemap.xml or index.json. layoutBackgroundBlur true Makes the background image in the background heroStyle blur with the scroll layoutBackgroundHeaderSpace true Add space between the header and the body. externalLinkForceNewTab article.externalLinkForceNewTab Should external links in markdown open in a new tab. ","externalUrl":null,"permalink":"/docs/front-matter/","section":"Documentation","summary":"In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.\n","title":"Front Matter","type":"docs"},{"content":"","externalUrl":"https://georgiancodeclub.github.io","permalink":"/users/7-25036bf87aa99ef82e09089a1ddbb9eb/","section":"Users","summary":"","title":"georgiancodeclub.github.io","type":"users"},{"content":"Some websites have more than one author contributing with content and therefore require more than a single default author across the entire website. For those use-cases, Blowfish allows users to extend the list of authors using the multiple authors feature.\nTo keep everything backwards compatible, this feature only allows the definition of extra authors and does not change in any way the previous author functionality which is used via config files.\nCreate Authors # The first step to create new authors is to set up a new folder in ./data/authors. Then you can simply add new json files inside, one for each new author. The name of the file will be the key for that author when referencing it in your articles.\nAs an example, let’s create a file called nunocoracao.json within ./data/authors. The contents of the file should be similar to the ones below. name, image, bio, and social are the 4 parameters supported right for authors. They mimic the configurations available for the default author in the config files.\nNote: the key in the social object will be used to fetch one of the theme’s icons, feel free to use any of the icons available in your setup.\n{ \u0026#34;name\u0026#34;: \u0026#34;Nuno Coração\u0026#34;, \u0026#34;image\u0026#34; : \u0026#34;img/nuno_avatar.jpg\u0026#34;, \u0026#34;bio\u0026#34;: \u0026#34;Theme Creator\u0026#34;, \u0026#34;social\u0026#34;: [ { \u0026#34;linkedin\u0026#34;: \u0026#34;https://linkedin.com/in/nunocoracao\u0026#34; }, { \u0026#34;twitter\u0026#34;: \u0026#34;https://twitter.com/nunocoracao\u0026#34; }, { \u0026#34;instagram\u0026#34;: \u0026#34;https://instagram.com/nunocoracao\u0026#34; }, { \u0026#34;medium\u0026#34;: \u0026#34;https://medium.com/@nunocoracao\u0026#34; }, { \u0026#34;github\u0026#34;: \u0026#34;https://github.com/nunocoracao\u0026#34; }, { \u0026#34;goodreads\u0026#34;: \u0026#34;http://goodreads.com/nunocoracao\u0026#34; }, { \u0026#34;keybase\u0026#34;: \u0026#34;https://keybase.io/nunocoracao\u0026#34; }, { \u0026#34;reddit\u0026#34;: \u0026#34;https://reddit.com/user/nunoheart\u0026#34; } ] } Reference Authors in Articles # Now that you created one author, the next step is to reference it in one or more articles. In the example below, we reference the author created in the previous step using its key.\nThis will render an extra author using the data provided in the json file. This feature does not change in any way the default author configured for the overall site, and therefore, you can control both separately. Using the showAuthor parameter, you can configure whether to show the default author, that is the normal use-case for a single author blog. The new authors front-matter parameter allows you to define authors specifically to an article, and they will be rendered independently of the configurations for the default site author.\n--- title: \u0026#34;Multiple Authors\u0026#34; date: 2020-08-10 draft: false description: \u0026#34;Configure multiple authors for your articles.\u0026#34; slug: \u0026#34;multi-author\u0026#34; tags: [\u0026#34;authors\u0026#34;, \u0026#34;config\u0026#34;, \u0026#34;docs\u0026#34;] showAuthor: true authors: - \u0026#34;nunocoracao\u0026#34; showAuthorsBadges : false --- In the example, which matches the markdown of the current page, both the default author and the new one will be displayed. You can scroll now to see the outcome.\nCreate the Authors Taxonomy # To get lists of articles for each of your authors you can configure the authors taxonomy, which opens up some more configurations that might be interesting. This is an optional step in the process that is not required to display the authors in your articles.\nFirst step is to configure the authors taxonomy in your hugo.toml file, like in the example below. Even though tag and category are defined by default with Hugo, once you add a specific taxonomies section you need to add them again otherwise the site will not process them.\n[taxonomies] tag = \u0026#34;tags\u0026#34; category = \u0026#34;categories\u0026#34; author = \u0026#34;authors\u0026#34; And that’s just about it. Now you will have pages that reference your authors and, for each, show the respective list of articles where they participate. You can also use the article.showAuthorsBadges on the config file, or showAuthorsBadges on each article to chose whether to display the authors taxonomy as badges in each post item. As an example, this doc is configured to not display authors but if you look at the sample referenced below you will see the authors displayed as badges.\nLastly, you can add more detail to each author page so that it displays a little bio, links, or whatever information fits your use-case. To achieve that, create a folder with the key to each author inside ./content/authors and inside each folder place a _index.md file. For the example above, we would end up with a .content/authors/nunocoracao/_index.md file. Inside, you can configure the actual name of the author and the contents of their page. Authors in this documentation website are configured like this, so you can have a look by playing around with the site.\n--- title: \u0026#34;Nuno Coração\u0026#34; --- Nuno\u0026#39;s awesome dummy bio. Sample # This sample sample below shows an example where the default site author is turned off and the article has multiple authors.\nMultiple Authors 1 min\u0026middot; loading Nuno Coração ,\u0026nbsp; Dummy Second Author Authors Sample ","externalUrl":null,"permalink":"/docs/multi-author/","section":"Documentation","summary":"Some websites have more than one author contributing with content and therefore require more than a single default author across the entire website. For those use-cases, Blowfish allows users to extend the list of authors using the multiple authors feature.\n","title":"Multiple Authors","type":"docs"},{"content":"","externalUrl":"https://www.fahru.my.id","permalink":"/users/8-5440c85ea880d93157088032515962d3/","section":"Users","summary":"","title":"fahru.my.id","type":"users"},{"content":" Analytics # Blowfish provides built-in support for Fathom Analytics, Google Analytics and Umami Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy.\nFathom Analytics # To enable Fathom Analytics support, simply provide your Fathom site code in the config/_default/params.toml file. If you also use the custom domain feature of Fathom and would like to serve their script from your domain, you can also additionally provide the domain configuration value. If you don\u0026rsquo;t provide a domain value, the script will load directly from Fathom DNS.\n# config/_default/params.toml [fathomAnalytics] site = \u0026#34;ABC12345\u0026#34; domain = \u0026#34;llama.yoursite.com\u0026#34; Google Analytics # Google Analytics support is provided through the internal Hugo partial. Simply provide the googleAnalytics key in the config/_default/hugo.toml file and the script will be added automatically.\nBoth version 3 (analytics.js) and version 4 (gtag.js) are supported, based on the configuration value provided:\n# config/_default/hugo.toml # version 3 googleAnalytics = \u0026#34;UA-PROPERTY_ID\u0026#34; # version 4 googleAnalytics = \u0026#34;G-MEASUREMENT_ID\u0026#34; Umami Analytics # To enable Umami Analytics support, simply provide your Umami tracking code in the config/_default/params.toml file. If you also use the custom domain feature of Umami and would like to serve their script from your domain, you can also additionally provide the domain configuration value. If you don\u0026rsquo;t provide a domain value, the script will load directly from Umami DNS (analytics.umami.is). If you want the tracker to only run on specific domains, you can provide the dataDomains configuration value. If you don\u0026rsquo;t provide a dataDomains value, the script will run on any website where the domain andwebsiteid match. If the environment variable TRACKER_SCRIPT_NAME is configured, you can specify a custom script name scriptName. If it is not configured, either comment it out or use the default script.js.\nIf you want to honor the Do Not Track setting of the users browser, you have to set doNotTrack to true. Blowfish does not honor the Do Not Track setting per default.\nNote: If you enable Umami Analytics, Blowfish will support Umami Track Event automatically. If you do not want to support Track Event, the param enableTrackEvent must set to false. # config/_default/params.toml [umamiAnalytics] websiteid = \u0026#34;ABC12345\u0026#34; domain = \u0026#34;llama.yoursite.com\u0026#34; dataDomains = \u0026#34;yoursite.com,yoursite2.com\u0026#34; scriptName = \u0026#34;TRACKER_SCRIPT_NAME\u0026#34; enableTrackEvent = true doNotTrack = false Seline Analytics # To enable Seline Analytics support, simply provide your Seline token in the config/_default/params.toml file.\nNote: If you enable Seline Analytics, Blowfish will support Seline Track Event automatically. If you do not want to support Track Event, the param enableTrackEvent must set to false. # config/_default/params.toml [selineAnalytics] token = \u0026#34;XXXXXX\u0026#34; enableTrackEvent = true Custom analytics providers # If you wish to use a different analytics provider on your website you can also override the analytics partial and provide your own script. Simply create the file layouts/partials/extend-head.html in your project and it will automatically include it in the \u0026lt;head\u0026gt; of the website.\nComments # To add comments to your articles, Blowfish includes support for a comments partial that is included at the base of each article page. Simply provide a layouts/partials/comments.html which contains the code required to display your chosen comments.\nYou can use either the built-in Hugo Disqus template, or provide your own custom code. Refer to the Hugo docs for further information.\nOnce the partial has been provided, finer control over where comments are displayed is then managed using the showComments parameter. This value can be set at the theme level in the params.toml config file, or on a per-article basis by including it in the front matter. The parameter defaults to false so it must be set to true in one of these locations in order for comments to be displayed.\nFavicons # Blowfish provides a default set of blank favicons to get started but you can provide your own assets to override them. The easiest way to obtain new favicon assets is to generate them using a third-party provider like favicon.io.\nIcon assets should be placed directly in the static/ folder of your website and named as per the listing below. If you use favicon.io, these will be the filenames that are automatically generated for you, but you can provide your own assets if you wish.\nstatic/ ├─ android-chrome-192x192.png ├─ android-chrome-512x512.png ├─ apple-touch-icon.png ├─ favicon-16x16.png ├─ favicon-32x32.png ├─ favicon.ico └─ site.webmanifest Alternatively, you can also completely override the default favicon behaviour and provide your own favicon HTML tags and assets. Simply provide a layouts/partials/favicons.html file in your project and this will be injected into the site \u0026lt;head\u0026gt; in place of the default assets.\nIcon # Similar to the icon shortcode, you can include icons in your own templates and partials by using Blowfish\u0026rsquo;s icon.html partial. The partial takes one parameter which is the name of the icon to be included.\nExample:\n{{ partial \u0026#34;icon.html\u0026#34; \u0026#34;github\u0026#34; }} Icons are populated using Hugo pipelines which makes them very flexible. Blowfish includes a number of built-in icons for social, links and other purposes. Check the icon samples page for a full list of supported icons.\nCustom icons can be added by providing your own icon assets in the assets/icons/ directory of your project. The icon can then be referenced in the partial by using the SVG filename without the .svg extension.\nIcons can also be used in article content by calling the icon shortcode.\nExtensions # Blowfish also provides for a number of extension partials that allow for expanding upon base functionality.\nArticle link # If you wish to insert additional code after article links, create a layouts/partials/extend-article-link.html file. This is especially powerful when combined with the badge shortcode which can be used to highlight metadata for certain articles.\nHead and Footer # The theme allows for inserting additional code directly into the \u0026lt;head\u0026gt; and \u0026lt;footer\u0026gt; sections of the template. These can be useful for providing scripts or other logic that isn\u0026rsquo;t part of the theme.\nSimply create either layouts/partials/extend-head.html or layouts/partials/extend-footer.html and these will automatically be included in your website build. Both partials are injected as the last items in \u0026lt;head\u0026gt; and \u0026lt;footer\u0026gt; so they can be used to override theme defaults.\nUncached Head Extension # The extend-head.html is cached, and Blowfish also supports an uncached head extension for conditionally including scripts or metadata based on page-level properties. To use this feature, create a layouts/partials/extend-head-uncached.html file in your project. This file will be included in \u0026lt;head\u0026gt; HTML tag.\nThis is useful when you need to include dynamic elements—such as scripts or metadata—based on properties like shortcodes, front matter flags, or other page-specific data that should not be cached across builds.\nFor example, to dynamically load a CDN JavaScript file base on the appearance of a shortcode, you can use the HasShortcode method within extend-head-uncached.html.\n","externalUrl":null,"permalink":"/docs/partials/","section":"Documentation","summary":"Analytics # Blowfish provides built-in support for Fathom Analytics, Google Analytics and Umami Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy.\n","title":"Partials","type":"docs"},{"content":"","externalUrl":"https://loisvelasco.is-a.dev","permalink":"/users/9-6c20c1af90023ed60919801cfba0f08f/","section":"Users","summary":"","title":"loisvelasco.is-a.dev","type":"users"},{"content":" Thumbnails # Blowfish was enhanced in order to make it easy to add visual support to your posts. To do so, you just need to place an image file (almost all formats are supported but we recommend .png or .jpg) that starts with feature* inside your article\u0026rsquo;s main directory, as shown in the example below.\ncontent └── awesome_article ├── index.md └── featured.png This will tell Blowfish that this article has a feature image that can be used both as a thumbnail across your website as well as for oEmbed cards across social platforms.\nFolder Structure # If you are using single .md files for your articles and have a file structure similar to this:\ncontent └── awesome_article.md You need to change it from a single Markdown file into a folder. Create a directory with the same name of the article, inside create a index.md file. You\u0026rsquo;ll get a structure similar to what\u0026rsquo;s below.\ncontent └── awesome_article └── index.md Then you just need to add an image like explained earlier. If you want to see a sample of this, you can consult this sample.\nHero Images # Thumbnails will be used by default as hero images within each article. Use the global article.showHero or the front-matter parameter showHero to control this feature across the entire site or for each specific post. If you want to override the style of the hero image, you can create a file called hero.html in ./layouts/partials/ that will override the original partial from the theme.\n","externalUrl":null,"permalink":"/docs/thumbnails/","section":"Documentation","summary":"Thumbnails # Blowfish was enhanced in order to make it easy to add visual support to your posts. To do so, you just need to place an image file (almost all formats are supported but we recommend .png or .jpg) that starts with feature* inside your article’s main directory, as shown in the example below.\n","title":"Thumbnails","type":"docs"},{"content":"If you\u0026rsquo;ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.\nTip: If you\u0026rsquo;re new to Hugo, be sure to check out the official docs to learn more about the concept of page bundles and resources. The examples on this page can all be adapted to different scenarios but hopefully give you some ideas about how to approach formatting a particular content item for your individual project.\nBranch pages # Branch page bundles in Hugo cover items like the homepage, section listings, and taxonomy pages. The important thing to remember about branch bundles is that the filename for this content type is _index.md.\nBlowfish will honour the front matter parameters specified in branch pages and these will override the default settings for that particular page. For example, setting the title parameter in a branch page will allow overriding the page title.\nHomepage # Layout: layouts/index.html Content: content/_index.md The homepage in Blowfish is special in that it\u0026rsquo;s overarching design is controlled by the homepage layout config parameter. You can learn more about this in the Homepage Layout section.\nIf you want to add custom content to this page, you simply need to create a content/_index.md file. Anything in this file will then be included in your homepage.\nExample:\n--- title: \u0026#34;Welcome to Blowfish!\u0026#34; description: \u0026#34;This is a demo of adding content to the homepage.\u0026#34; --- Welcome to my website! I\u0026#39;m really happy you stopped by. This example sets a custom title and adds some additional text to the body of the page. Any Markdown formatted text is acceptable, including shortcodes, images and links.\nList pages # Layout: layouts/_default/list.html Content: content/../_index.md List pages group all the pages within into a section and provide a way for visitors to reach each page. A blog or portfolio are examples of a list page as they group together posts or projects.\nCreating a list page is as simple as making a sub-directory in the content folder. For example, to create a \u0026ldquo;Projects\u0026rdquo; section, you would create content/projects/. Then create a Markdown file for each of your projects.\nA list page will be generated by default, however to customise the content, you should also create an _index.md page in this new directory.\n. └── content └── projects ├── _index.md # /projects ├── first-project.md # /projects/first-project └── another-project ├── index.md # /projects/another-project └── project.jpg Hugo will generate URLs for the pages in your projects folder accordingly.\nJust like the homepage, content in the _index.md file will be output into the generated list index. Blowfish will then list any pages in this section below the content.\nExample:\n--- title: \u0026#34;Projects\u0026#34; description: \u0026#34;Learn about some of my projects.\u0026#34; cascade: showReadingTime: false --- This section contains all my current projects. In this example, the special cascade parameter is being used to hide the reading time on any sub-pages within this section. By doing this, any project pages will not have their reading time showing. This is a great way to override default theme parameters for an entire section without having to include them in every individual page.\nThe samples section of this site is an example of a list page.\nTaxonomy pages # List layout: layouts/_default/taxonomy.html Term layout: layouts/_default/term.html Content: content/../_index.md Taxonomy pages come in two forms - taxonomy lists and taxonomy terms. Lists display a listing of each of the terms within a given taxonomy, while terms display a list of pages that are related to a given term.\nThe terminology can get a little confusing so let\u0026rsquo;s explore an example using a taxonomy named animals.\nFirstly, to use taxonomies in Hugo, they have to be configured. This is done by creating a config file at config/_default/taxonomies.toml and defining the taxonomy name.\n# config/_default/taxonomies.toml animal = \u0026#34;animals\u0026#34; Hugo expects taxonomies to be listed using their singular and plural forms, so we add the singular animal equals the plural animals to create our example taxonomy.\nNow that our animals taxonomy exists, it needs to be added to individual content items. It\u0026rsquo;s as simple as inserting it into the front matter:\n--- title: \u0026#34;Into the Lion\u0026#39;s Den\u0026#34; description: \u0026#34;This week we\u0026#39;re learning about lions.\u0026#34; animals: [\u0026#34;lion\u0026#34;, \u0026#34;cat\u0026#34;] --- This has now created two terms within our animals taxonomy - lion and cat.\nAlthough it\u0026rsquo;s not obvious at this point, Hugo will now be generating list and term pages for this new taxonomy. By default the listing can be accessed at /animals/ and the term pages can be found at /animals/lion/ and /animals/cat/.\nThe list page will list all the terms contained within the taxonomy. In this example, navigating to /animals/ will show a page that has links for \u0026ldquo;lion\u0026rdquo; and \u0026ldquo;cat\u0026rdquo; which take visitors to the individual term pages.\nThe term pages will list all the pages contained within that term. These term lists are essentially the same as normal list pages and behave in much the same way.\nIn order to add custom content to taxonomy pages, simply create _index.md files in the content folder using the taxonomy name as the sub-directory name.\n. └── content └── animals ├── _index.md # /animals └── lion └── _index.md # /animals/lion Anything in these content files will now be placed onto the generated taxonomy pages. As with other content, the front matter variables can be used to override defaults. In this way you could have a tag named lion but override the title to be \u0026ldquo;Lion\u0026rdquo;.\nTo see how this looks in reality, check out the tags taxonomy listing on this site.\nLeaf pages # Layout: layouts/_default/single.html Content (standalone): content/../page-name.md Content (bundled): content/../page-name/index.md Leaf pages in Hugo are basically standard content pages. They are defined as pages that don\u0026rsquo;t contain any sub-pages. These could be things like an about page, or an individual blog post that lives in the blog section of the website.\nThe most important thing to remember about leaf pages is that unlike branch pages, leaf pages should be named index.md without an underscore. Leaf pages are also special in that they can be grouped together at the top level of the section and named with a unique name.\n. └── content └── blog ├── first-post.md # /blog/first-post ├── second-post.md # /blog/second-post └── third-post ├── index.md # /blog/third-post └── image.jpg When including assets in a page, like an image, a page bundle should be used. Page bundles are created using a sub-directory with an index.md file. Grouping the assets with the content in its own directory is important as many of the shortcodes and other theme logic assumes that resources are bundled alongside pages.\nExample:\n--- title: \u0026#34;My First Blog Post\u0026#34; date: 2022-01-25 description: \u0026#34;Welcome to my blog!\u0026#34; summary: \u0026#34;Learn more about me and why I am starting this blog.\u0026#34; tags: [\u0026#34;welcome\u0026#34;, \u0026#34;new\u0026#34;, \u0026#34;about\u0026#34;, \u0026#34;first\u0026#34;] --- _This_ is the content of my blog post. Leaf pages have a wide variety of front matter parameters that can be used to customise how they are displayed.\nExternal links # Blowfish has a special feature that allows links to external pages to appear alongside articles in the article listings. This is useful if you have content on third party websites like Medium, or research papers that you\u0026rsquo;d like to link to, without replicating the content in your Hugo site.\nIn order to create an external link article, some special front matter needs to be set:\n--- title: \u0026#34;My Medium post\u0026#34; date: 2022-01-25 externalUrl: \u0026#34;https://medium.com/\u0026#34; summary: \u0026#34;I wrote a post on Medium.\u0026#34; showReadingTime: false build: render: \u0026#34;false\u0026#34; list: \u0026#34;local\u0026#34; --- Along with the normal front matter parameters like title and summary, the externalUrl parameter is used to tell Blowfish that this is not an ordinary article. The URL provided here will be where visitors are directed when they select this article.\nAdditionally, we use a special Hugo front matter parameter build to prevent a normal page for this content being generated - there\u0026rsquo;s no point generating a page since we\u0026rsquo;re linking to an external URL!\nThe theme includes an archetype to make generating these external link articles simple. Just specify -k external when making new content.\nhugo new -k external posts/my-post.md Simple pages # Layout: layouts/_default/simple.html Front Matter: layout: \u0026quot;simple\u0026quot; Blowfish also includes a special layout for simple pages. The simple layout is a full-width template that just places Markdown content into the page without any special theme features.\nThe only features available in the simple layout are breadcrumbs and sharing links. However, the behaviour of these can still be controlled using the normal page front matter variables.\nTo enable the simple layout on a particular page, add the layout front matter variable with a value of \u0026quot;simple\u0026quot;:\n--- title: \u0026#34;My landing page\u0026#34; date: 2022-03-08 layout: \u0026#34;simple\u0026#34; --- This page content is now full-width. Custom layouts # One of the benefits of Hugo is that it makes it easy to create custom layouts for the whole site, individual sections or pages.\nLayouts follow all the normal Hugo templating rules and more information is available in the official Hugo docs.\nOverriding default layouts # Each of the content types discussed above lists the layout file that is used to generate each type of page. If this file is created in your local project it will override the theme template and thus can be used to customise the default style of the website.\nFor example, creating a layouts/_default/single.html file will allow the layout of leaf pages to be completely customised.\nCustom section layouts # It is also simple to create custom layouts for individual content sections. This is useful when you want to make a section that lists a certain type of content using a particular style.\nLet\u0026rsquo;s step through an example that creates a custom \u0026ldquo;Projects\u0026rdquo; page that lists projects using a special layout.\nIn order to do this, structure your content using the normal Hugo content rules and create a section for your projects. Additionally, create a new layout for the projects section by using the same directory name as the content and adding a list.html file.\n. └── content │ └── projects │ ├── _index.md │ ├── first-project.md │ └── second-project.md └── layouts └── projects └── list.html This list.html file will now override the default list template, but only for the projects section. Before we look at this file, lets first look at the individual project files.\n--- title: \u0026#34;Blowfish\u0026#34; date: 2021-08-11 icon: \u0026#34;github\u0026#34; description: \u0026#34;A theme for Hugo built with Tailwind CSS.\u0026#34; topics: [\u0026#34;Hugo\u0026#34;, \u0026#34;Web\u0026#34;, \u0026#34;Tailwind\u0026#34;] externalUrl: \u0026#34;https://github.com/nunocoracao/blowfish/\u0026#34; --- In this example we are assigning some metadata for each project that we can then use in our list template. There\u0026rsquo;s no page content, but there\u0026rsquo;s nothing stopping you from including it. It\u0026rsquo;s your own custom template after all!\nWith the projects defined, now we can create a list template that outputs the details of each project.\n{{ define \u0026#34;main\u0026#34; }} \u0026lt;section class=\u0026#34;mt-8\u0026#34;\u0026gt; {{ range .Pages }} \u0026lt;article class=\u0026#34;pb-6\u0026#34;\u0026gt; \u0026lt;a class=\u0026#34;flex\u0026#34; href=\u0026#34;{{ .Params.externalUrl }}\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;mr-3 text-3xl text-neutral-300\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;relative inline-block align-text-bottom\u0026#34;\u0026gt; {{ partial \u0026#34;icon.html\u0026#34; .Params.icon }} \u0026lt;/span\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div\u0026gt; \u0026lt;h3 class=\u0026#34;flex text-xl font-semibold\u0026#34;\u0026gt; {{ .Title }} \u0026lt;/h3\u0026gt; \u0026lt;p class=\u0026#34;text-sm text-neutral-400\u0026#34;\u0026gt; {{ .Description }} \u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/a\u0026gt; \u0026lt;/article\u0026gt; {{ end }} \u0026lt;/section\u0026gt; {{ end }} Although this is quite a straightforward example, you can see that it steps through each of the pages in this section (ie. each project), and then outputs HTML links to each project alongside an icon. The metadata in the front matter for each project is used to determine which information is displayed.\nKeep in mind that you\u0026rsquo;ll need to ensure the relevant styles and classes are available, which may require the Tailwind CSS to be recompiled. This is discussed in more detail in the Advanced Customisation section.\nWhen making custom templates like this one, it\u0026rsquo;s always easiest to take a look at how the default Blowfish template works and then use that as a guide. Remember, the Hugo docs are a great resource to learn more about creating templates too.\n","externalUrl":null,"permalink":"/docs/content-examples/","section":"Documentation","summary":"If you’ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.\n","title":"Content Examples","type":"docs"},{"content":"","externalUrl":"https://insidemordecai.com","permalink":"/users/10-7ee8520d5e9eadae8557be82f46ff18d/","section":"Users","summary":"","title":"insidemordecai.com","type":"users"},{"content":"","externalUrl":"https://blastomussa.dev","permalink":"/users/11-4ea7eb30d575afb5183b02f31a661c42/","section":"Users","summary":"","title":"blastomussa.dev","type":"users"},{"content":"Blowfish provides a feature to group a set of articles together under a \u0026ldquo;series\u0026rdquo;. Placing an article under a series will display the rest of the series articles in each single page and provide a quick way to navigate amongst them. You can see an example of this above.\nCreate Taxonomy # The first step to enable series is to create the series taxonomy. For doing this just add the series taxonomy to your taxonomy list in the hugo.toml.\n[taxonomies] tag = \u0026#34;tags\u0026#34; category = \u0026#34;categories\u0026#34; author = \u0026#34;authors\u0026#34; series = \u0026#34;series\u0026#34; Mark Articles # Then you just need to mark each article using the series parameter and the series_order. The series parameter will be the id and name of the series you are placing the article into (even though the variable is an array we recommend keeping each article to a single series.). And the series_order defines the order of that article within the series. In the example below the article is number 11 in the Documentation series.\nseries: [\u0026#34;Documentation\u0026#34;] series_order: 11 Series Behavior # Marking an article as part of a series will automatically display the series module as you see in this page for example. You can choose whether that module starts opened or not using the article.seriesOpened global variable in params.toml or the front-matter parameter seriesOpened to specify an override at the article level.\n","externalUrl":null,"permalink":"/docs/series/","section":"Documentation","summary":"Blowfish provides a feature to group a set of articles together under a “series”. Placing an article under a series will display the rest of the series articles in each single page and provide a quick way to navigate amongst them. You can see an example of this above.\n","title":"Series","type":"docs"},{"content":"There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.\nIf you need further advice, post your questions on GitHub Discussions.\nHugo project structure # Before leaping into it, first a quick note about Hugo project structure and best practices for managing your content and theme customisations.\nIn summary: Never directly edit the theme files. Only make customisations in your Hugo project\u0026rsquo;s sub-directories, not in the themes directory itself. Blowfish is built to take advantage of all the standard Hugo practices. It is designed to allow all aspects of the theme to be customised and overridden without changing any of the core theme files. This allows for a seamless upgrade experience while giving you total control over the look and feel of your website.\nIn order to achieve this, you should never manually adjust any of the theme files directly. Whether you install using Hugo modules, as a git submodule or manually include the theme in your themes/ directory, you should always leave these files intact.\nThe correct way to adjust any theme behaviour is by overriding files using Hugo\u0026rsquo;s powerful file lookup order. In summary, the lookup order ensures any files you include in your project directory will automatically take precedence over any theme files.\nFor example, if you wanted to override the main article template in Blowfish, you can simply create your own layouts/_default/single.html file and place it in the root of your project. This file will then override the single.html from the theme without ever changing the theme itself. This works for any theme files - HTML templates, partials, shortcodes, config files, data, assets, etc.\nAs long as you follow this simple practice, you will always be able to update the theme (or test different theme versions) without worrying that you will lose any of your custom changes.\nChange image optimization settings # Hugo has various builtin methods to resize, crop and optimize images.\nAs an example - in layouts/partials/article-link/card.html, you have the following code:\n{{ with .Resize \u0026#34;600x\u0026#34; }} \u0026lt;div class=\u0026#34;w-full thumbnail_card nozoom\u0026#34; style=\u0026#34;background-image:url({{ .RelPermalink }});\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; {{ end }} The default behavior of Hugo here is to resize the image to 600px keeping the ratio.\nIt is worth noting here that default image configurations such as anchor point can also be set in your site configuration as well as in the template itself.\nSee the Hugo docs on image processing for more info.\nColour schemes # Blowfish ships with a number of colour schemes out of the box. To change the basic colour scheme, you can set the colorScheme theme parameter. Refer to the Getting Started section to learn more about the built-in schemes.\nIn addition to the default schemes, you can also create your own and re-style the entire website to your liking. Schemes are created by by placing a \u0026lt;scheme-name\u0026gt;.css file in the assets/css/schemes/ folder. Once the file is created, simply refer to it by name in the theme configuration.\nNote: generating these files manually can be hard, I\u0026rsquo;ve built a nodejs terminal tool to help with that, Fugu. In a nutshell, you pass the main three hex values of your color palette and the program will output a css file that can be imported directly into Blowfish. Blowfish defines a three-colour palette that is used throughout the theme. The three colours are defined as neutral, primary and secondary variants, each containing ten shades of colour.\nDue to the way Tailwind CSS 3.0 calculates colour values with opacity, the colours specified in the scheme need to conform to a particular format by providing the red, green and blue colour values.\n:root { --color-primary-500: 139, 92, 246; } This example defines a CSS variable for the primary-500 colour with a red value of 139, green value of 92 and blue value of 246.\nUse one of the existing theme stylesheets as a template. You are free to define your own colours, but for some inspiration, check out the official Tailwind colour palette reference.\nOverriding the stylesheet # Sometimes you need to add a custom style to style your own HTML elements. Blowfish provides for this scenario by allowing you to override the default styles in your own CSS stylesheet. Simply create a custom.css file in your project\u0026rsquo;s assets/css/ folder.\nThe custom.css file will be minified by Hugo and loaded automatically after all the other theme styles which means anything in your custom file will take precedence over the defaults.\nUsing additional fonts # Blowfish allows you to easily change the font for your site. After creating a custom.css file in your project\u0026rsquo;s assets/css/ folder, place you font file inside a fonts folder within the static root folder.\n. ├── assets │ └── css │ └── custom.css ... └─── static └── fonts └─── font.ttf This makes the font available to the website. Now, the font can just import it in your custom.css and replaced wherever you see fit. The example below shows what replacing the font for the entire html would look like.\n@font-face { font-family: font; src: url(\u0026#39;/fonts/font.ttf\u0026#39;); } html { font-family: font; } Adjusting the font size # Changing the font size of your website is one example of overriding the default stylesheet. Blowfish makes this simple as it uses scaled font sizes throughout the theme which are derived from the base HTML font size. By default, Tailwind sets the default size to 12pt, but it can be changed to whatever value you prefer.\nCreate a custom.css file using the instructions above and add the following CSS declaration:\n/* Increase the default font size */ html { font-size: 13pt; } Simply by changing this one value, all the font sizes on your website will be adjusted to match this new size. Therefore, to increase the overall font sizes used, make the value greater than 12pt. Similarly, to decrease the font sizes, make the value less than 12pt.\nChanging Syntax Highlighting Theme # To change the syntax highlighting theme, create assets/css/custom.css and add the following:\n.chroma, .chroma *, .chroma:is(.dark *), .chroma:is(.dark *) * { color: unset; font-weight: unset; font-style: unset; } This clears the default Chroma styles. The next step is to incorporate Chroma styles into your CSS file using the hugo gen chromastyles command:\n# Mac/Linux (echo \u0026#39;html:not(.dark) {\u0026#39;; hugo gen chromastyles --style=emacs; echo \u0026#39;}\u0026#39;) \u0026gt;\u0026gt; assets/css/custom.css (echo \u0026#39;html.dark {\u0026#39;; hugo gen chromastyles --style=evergarden; echo \u0026#39;}\u0026#39;) \u0026gt;\u0026gt; assets/css/custom.css # Windows PowerShell # This command cannot run in CMD; it must run in PowerShell @(\u0026#34;html:not(.dark) {\u0026#34;; (hugo gen chromastyles --style=emacs); \u0026#34;}\u0026#34;) | Add-Content -Path \u0026#34;assets/css/custom.css\u0026#34; @(\u0026#34;html.dark {\u0026#34;; (hugo gen chromastyles --style=evergarden); \u0026#34;}\u0026#34;) | Add-Content -Path \u0026#34;assets/css/custom.css\u0026#34; See all available styles in Hugo\u0026rsquo;s documentation.\nBuilding the theme CSS from source # If you\u0026rsquo;d like to make a major change, you can rebuild the entire theme CSS from scratch. This is useful if you want to adjust the Tailwind configuration or add extra Tailwind classes to the main stylesheet.\nInfo Building the theme manually is intended for advanced users.\nHow it works # Tailwind works by scanning your project files as plain text to find class-like tokens and then generating CSS only for the utilities it recognizes and that actually appear in those files.\nThe following steps focus on installing Tailwind and configuring it so the theme source files are correctly included in this scan. All commands are demonstrated for users who installed the theme as a Git submodule, while Hugo Module users must first vendor the theme source into the _vendor directory using hugo mod vendor and adjust the command paths accordingly.\nInstall dependencies # In order for this to work you\u0026rsquo;ll need to change into the themes/blowfish/ directory and install the project dependencies. You\u0026rsquo;ll need npm on your local machine for this step.\ncd themes/blowfish npm install Run the Tailwind compiler # With the dependencies installed all that\u0026rsquo;s left is to use Tailwind CLI to invoke the JIT compiler. Navigate back to the root of your Hugo project and issue the following command:\ncd ../.. node ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit It\u0026rsquo;s a bit of an ugly command due to the paths involved but essentially you\u0026rsquo;re calling Tailwind CLI and passing it the location of the Tailwind config file, where to find the theme\u0026rsquo;s main.css file and then where you want the compiled CSS file to be placed. Due to the way Hugo handles file hierarchy, the compiled CSS file in your project will now automatically override the one that comes with the theme.\nEach time you make a change to your layouts and need new Tailwind CSS styles, you can simply re-run the command and generate the new CSS file. You can also add -w to the end of the command to run the JIT compiler in watch mode.\nMake a build script # To fully complete this solution, you can simplify this whole process by adding aliases for these commands, or do what I do and add a package.json to the root of your project which contains the necessary scripts\u0026hellip;\n// package.json { \u0026#34;name\u0026#34;: \u0026#34;my-website\u0026#34;, \u0026#34;version\u0026#34;: \u0026#34;1.0.0\u0026#34;, \u0026#34;description\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;scripts\u0026#34;: { \u0026#34;server\u0026#34;: \u0026#34;hugo server -b http://localhost -p 8000\u0026#34;, \u0026#34;dev\u0026#34;: cross-env \u0026#34;NODE_ENV=development ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w\u0026#34;, \u0026#34;build\u0026#34;: cross-env \u0026#34;NODE_ENV=production ./themes/blowfish/node_modules/@tailwindcss/cli/dist/index.mjs -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit\u0026#34; }, // and more... } Now when you want to work on designing your site, you can invoke npm run dev and the compiler will run in watch mode. When you\u0026rsquo;re ready to deploy, run npm run build and you\u0026rsquo;ll get a clean Tailwind CSS build.\n🙋‍♀️ If you need help, feel free to ask a question on GitHub Discussions.\n","externalUrl":null,"permalink":"/docs/advanced-customisation/","section":"Documentation","summary":"There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.\n","title":"Advanced Customisation","type":"docs"},{"content":"","externalUrl":"https://jam.dsg.li","permalink":"/users/12-ee5d5eca13c3742f7a454a52424f9d73/","section":"Users","summary":"","title":"jam.dsg.li","type":"users"},{"content":"There are many ways to deploy your Hugo website built with Blowfish. The theme is designed to be flexible in almost any deployment scenario.\nBlowfish is built using relative URLs throughout the theme. This enables sites to easily be deployed to sub-folders and hosts like GitHub Pages. There\u0026rsquo;s usually no special configuration required for this to work as long as the baseURL parameter has been configured in the hugo.toml file.\nThe official Hugo Hosting and Deployment docs are the best place to learn how to deploy your site. The sections below contain some specific theme configuration details that can help you deploy smoothly with certain providers.\nChoose your provider:\nGitHub Pages Netlify Render Cloudflare Pages Shared hosting, VPS or private web server GitHub Pages # GitHub allows hosting on GitHub Pages using Actions. To enable this functionality, enable Pages on your repo and create a new Actions workflow to build and deploy your site.\nThe file needs to be in YAML format, placed within the .github/workflows/ directory of your GitHub repository and named with a .yml extension.\nImportant: Ensure you set the correct branch name under branches and in the deploy step if parameter to the source branch used in your project. # .github/workflows/gh-pages.yml name: GitHub Pages on: push: branches: - main jobs: build-deploy: runs-on: ubuntu-24.04 concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - name: Checkout uses: actions/checkout@v3 with: submodules: true fetch-depth: 0 - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: \u0026#34;latest\u0026#34; - name: Build run: hugo --minify - name: Deploy uses: peaceiris/actions-gh-pages@v3 if: ${{ github.ref == \u0026#39;refs/heads/main\u0026#39; }} with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_branch: gh-pages publish_dir: ./public Push the config file to GitHub and the action should automatically run. It may fail the first time and you\u0026rsquo;ll need to visit the Settings \u0026gt; Pages section of your GitHub repo to check the source is correct. It should be set to use the gh-pages branch.\nOnce the settings are configured, re-run the action and the site should build and deploy correctly. You can consult the actions log to check everything deployed successfully.\nNetlify # To deploy to Netlify, create a new continuous deployment site and link it to your source code. The build settings can be left blank in the Netlify UI. You will only need to configure the domain you\u0026rsquo;ll be using.\nThen in the root of your site repository, create a netlify.toml file:\n# netlify.toml [build] command = \u0026#34;hugo mod get -u \u0026amp;\u0026amp; hugo --gc --minify -b $URL\u0026#34; publish = \u0026#34;public\u0026#34; [build.environment] NODE_ENV = \u0026#34;production\u0026#34; GO_VERSION = \u0026#34;1.16\u0026#34; TZ = \u0026#34;UTC\u0026#34; # Set to preferred timezone [context.production.environment] HUGO_VERSION = \u0026#34;0.104.1\u0026#34; HUGO_ENV = \u0026#34;production\u0026#34; [context.deploy-preview.environment] HUGO_VERSION = \u0026#34;0.104.1\u0026#34; This configuration assumes you are deploying Blowfish as a Hugo module. If you have installed the theme using another method, change the build command to simply hugo --gc --minify -b $URL.\nWhen you push the config file to your repo, Netlify should automatically deploy your site. You can check the deploy logs in the Netlify UI to check for any errors.\nRender # Deploying to Render is very straightforward and all configuration is via the Render UI.\nCreate a new Static Site and link it to your project\u0026rsquo;s code repository. Then simply configure the build command to be hugo --gc --minify and publish directory to be public.\nThe site will automatically build and deploy whenever you push a change to your repo.\nCloudflare Pages # Cloudflare offers the Pages service that can host Hugo blogs. It builds the site from a git repository and then hosts it on Cloudflare\u0026rsquo;s CDN. Follow their Hugo deployment guide to get started.\nThe Rocket Loader™ feature offered by Cloudflare tries to speed up rendering of web pages with JavaScript, but it breaks the appearance switcher in the theme. It can also cause an annoying light/dark screen flash when browsing your site due to scripts loading in the wrong order.\nThis problem can be fixed by disabling it:\nGo to the Cloudflare dashboard Click on your domain name in the list Click Optimization in the Speed section Scroll down to Rocket Loader™ and disable it Hugo sites built with Blowfish still load very quickly, even with this feature disabled.\nShared hosting, VPS or private web server # Using traditional web hosting, or deploying to your own web server, is as simple as building your Hugo site and transferring the files to your host.\nMake sure that the baseURL parameter in hugo.toml is set to the full URL to the root of your website (including any sub domains or sub-folders).\nThen build your site using hugo and copy the contents of the output directory to the root of your web server and you will be ready to go. By default, the output directory is named public.\nIf you need a hosting provider, check out Vultr or DigitalOcean. Signing up using these affiliate links will give you up to $100 in free credit so you can try the service.\n","externalUrl":null,"permalink":"/docs/hosting-deployment/","section":"Documentation","summary":"There are many ways to deploy your Hugo website built with Blowfish. The theme is designed to be flexible in almost any deployment scenario.\nBlowfish is built using relative URLs throughout the theme. This enables sites to easily be deployed to sub-folders and hosts like GitHub Pages. There’s usually no special configuration required for this to work as long as the baseURL parameter has been configured in the hugo.toml file.\n","title":"Hosting \u0026 Deployment","type":"docs"},{"content":"","externalUrl":"https://priyakdey.com","permalink":"/users/13-72d71e304faaa40b3d547d5357edc450/","section":"Users","summary":"","title":"priyakdey.com","type":"users"},{"content":"In order to be able to support dynamic data across your website we\u0026rsquo;ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.\nGo to Firebase website and create an account for free Create a new project Select analytics location Setup firebase in Blowfish by getting the variables for your project and setting them inside params.toml file. More details can be found in this page. You can find an example of the file Firebase will provide below, notice the parameters within the FirebaseConfig object. // Import the functions you need from the SDKs you need import { initializeApp } from \u0026#34;firebase/app\u0026#34;; import { getAnalytics } from \u0026#34;firebase/analytics\u0026#34;; // TODO: Add SDKs for Firebase products that you want to use // https://firebase.google.com/docs/web/setup#available-libraries // Your web app\u0026#39;s Firebase configuration // For Firebase JS SDK v7.20.0 and later, measurementId is optional const firebaseConfig = { apiKey: \u0026#34;AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY\u0026#34;, authDomain: \u0026#34;blowfish-21fff.firebaseapp.com\u0026#34;, projectId: \u0026#34;blowfish-21fff\u0026#34;, storageBucket: \u0026#34;blowfish-21fff.appspot.com\u0026#34;, messagingSenderId: \u0026#34;60108104191\u0026#34;, appId: \u0026#34;1:60108104191:web:039842ebe1370698b487ca\u0026#34;, measurementId: \u0026#34;G-PEDMYR1V0K\u0026#34; }; // Initialize Firebase const app = initializeApp(firebaseConfig); const analytics = getAnalytics(app); Setup Firestore - Select Build and open Firestore. Create a new database and choose to start in production mode. Select server location and wait. Once that is started you need to configure the rules. Just copy and paste the file below and press publish. These rules ensure that views can only be incremented by 1, and likes can only be changed by +1 or -1 (and never go below 0). rules_version = \u0026#39;2\u0026#39;; service cloud.firestore { match /databases/{database}/documents { // Views - read anyone, only increment by 1 match /views/{document} { allow read: if request.auth != null; allow create: if request.auth != null \u0026amp;\u0026amp; request.resource.data.keys().hasOnly([\u0026#39;views\u0026#39;]) \u0026amp;\u0026amp; request.resource.data.views == 1; allow update: if request.auth != null \u0026amp;\u0026amp; request.resource.data.diff(resource.data).affectedKeys().hasOnly([\u0026#39;views\u0026#39;]) \u0026amp;\u0026amp; request.resource.data.views == resource.data.views + 1; } // Likes - read anyone, only +1 or -1 match /likes/{document} { allow read: if request.auth != null; allow create: if request.auth != null \u0026amp;\u0026amp; request.resource.data.keys().hasOnly([\u0026#39;likes\u0026#39;]) \u0026amp;\u0026amp; request.resource.data.likes == 1; allow update: if request.auth != null \u0026amp;\u0026amp; request.resource.data.diff(resource.data).affectedKeys().hasOnly([\u0026#39;likes\u0026#39;]) \u0026amp;\u0026amp; (request.resource.data.likes == resource.data.likes + 1 || request.resource.data.likes == resource.data.likes - 1) \u0026amp;\u0026amp; request.resource.data.likes \u0026gt;= 0; } // Deny everything else match /{document=**} { allow read, write: if false; } } } Enable anonymous authorization - Select Build and open Authentication. Select get started, click Anonymous and turn it on, save. Enjoy - you can now activate views and likes on Blowfish for all (or specific) articles. ","externalUrl":null,"permalink":"/docs/firebase-views/","section":"Documentation","summary":"In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.\n","title":"Firebase: Views \u0026 Likes","type":"docs"},{"content":"","externalUrl":"https://sdehm.dev","permalink":"/users/14-1a882ded73613252bb07c2c13f40b9e3/","section":"Users","summary":"","title":"sdehm.dev","type":"users"},{"content":"","externalUrl":"https://dizzytech.de","permalink":"/users/15-039ca94b0aeeb9ab4c95226615bfb840/","section":"Users","summary":"","title":"dizzytech.de","type":"users"},{"content":"","externalUrl":"https://alejandro-ao.com/","permalink":"/users/16-620af4c12a7ee8932fadb45ae52bba7e/","section":"Users","summary":"","title":"alejandro-ao.com","type":"users"},{"content":"","externalUrl":"https://adir1.com/","permalink":"/users/17-64faf41f22317a170125dd7b2cd642e2/","section":"Users","summary":"","title":"adir1.com","type":"users"},{"content":"","externalUrl":"https://blog.muffn.io/","permalink":"/users/18-e07582d573aa187c3c15bb042872ca4a/","section":"Users","summary":"","title":"blog.muffn.io","type":"users"},{"content":"","externalUrl":"https://nick.bouwhuis.net","permalink":"/users/19-fd12be5b9c01f6b6089b8b1cbff1350d/","section":"Users","summary":"","title":"nick.bouwhuis.net","type":"users"},{"content":"","externalUrl":"https://vividscc.com/","permalink":"/users/20-3bfa5ccb77cf79199527df4c0259d0dc/","section":"Users","summary":"","title":"vividscc.com","type":"users"},{"content":"","externalUrl":"https://technicat.com/","permalink":"/users/21-6ed0dcb17b6e24c166f7da0bdfb0c1f5/","section":"Users","summary":"","title":"technicat.com","type":"users"},{"content":"","externalUrl":"https://fugugames.com/","permalink":"/users/22-e2ca3d6494c32151235beabe7567b23d/","section":"Users","summary":"","title":"fugugames.com","type":"users"},{"content":"","externalUrl":"https://hyperbowl3d.com/","permalink":"/users/23-129162dc71b9d40ee7948e51910d415a/","section":"Users","summary":"","title":"hyperbowl3d.com","type":"users"},{"content":"","externalUrl":"https://talkdimsum.com/","permalink":"/users/24-80d4420e686d5a055bab647fa03d281b/","section":"Users","summary":"","title":"talkdimsum.com","type":"users"},{"content":"","externalUrl":"https://alanctanner.com/","permalink":"/users/25-8168c3eeb157c9c9b1ca287393393f9c/","section":"Users","summary":"","title":"alanctanner.com","type":"users"},{"content":"","externalUrl":"https://rdgo.dev/","permalink":"/users/26-98f15180691d43fbfcbaf685e1b9ab06/","section":"Users","summary":"","title":"rdgo.dev","type":"users"},{"content":"","externalUrl":"https://clemsau.com/","permalink":"/users/27-66a61706d45b77b559869cd1247fe8fc/","section":"Users","summary":"","title":"clemsau.com","type":"users"},{"content":"","externalUrl":"https://weaxsey.org/","permalink":"/users/28-5801e67070cd59e592c82693a1bda773/","section":"Users","summary":"","title":"weaxsey.org","type":"users"},{"content":"","externalUrl":"https://nikarashihatsu.github.io/","permalink":"/users/29-c7116358255c4f5ccb306f7012306e22/","section":"Users","summary":"","title":"nikarashihatsu.github.io","type":"users"},{"content":"","externalUrl":"https://www.halcyonstraits.com/","permalink":"/users/30-d8ebb1396d8c7d2233b33a6b3ca0adc4/","section":"Users","summary":"","title":"halcyonstraits.com","type":"users"},{"content":"","externalUrl":"https://www.50-nuances-octets.fr/","permalink":"/users/31-24577d47b9474b6bc72eba9a6009dba4/","section":"Users","summary":"","title":"50-nuances-octets.fr","type":"users"},{"content":"","externalUrl":"https://marupanda.art/marucomics/","permalink":"/users/32-6e0c28f8b70015dd35f332d927960d06/","section":"Users","summary":"","title":"marupanda.art/marucomics","type":"users"},{"content":"","externalUrl":"https://m3upt.com","permalink":"/users/33-4d4fb24dca11a144122fa0bb831d9d03/","section":"Users","summary":"","title":"m3upt.com","type":"users"},{"content":"","externalUrl":"https://pacochan.net","permalink":"/users/34-c8eb3ba4d0e565e041ead9aabe6fc770/","section":"Users","summary":"","title":"pacochan.net","type":"users"},{"content":"","externalUrl":"https://vkmki001.github.io/","permalink":"/users/35-069e8f01e7ef48830ebea5239e2189b4/","section":"Users","summary":"","title":"vkmki001.github.io","type":"users"},{"content":"","externalUrl":"https://bbagwang.com","permalink":"/users/36-43d57d92cc54037519270a0cb07dbb83/","section":"Users","summary":"","title":"bbagwang.com","type":"users"},{"content":"","externalUrl":"https://jamiemoxon.tech","permalink":"/users/37-d9e559aaa0c3488012725cc4699ff9c4/","section":"Users","summary":"","title":"jamiemoxon.tech","type":"users"},{"content":"","externalUrl":"https://theindiecoder.cloud","permalink":"/users/38-9eed597b03512bc7b7b4b3cf81814a37/","section":"Users","summary":"","title":"theindiecoder.cloud","type":"users"},{"content":"","externalUrl":"https://gma.name","permalink":"/users/39-48ff442c7de299911eab10b72b02cc84/","section":"Users","summary":"","title":"gma.name","type":"users"},{"content":"","externalUrl":"https://mayer.life","permalink":"/users/40-1b3c507d9cd618565898e6d099c0427d/","section":"Users","summary":"","title":"mayer.life","type":"users"},{"content":"","externalUrl":"https://scottmckendry.tech","permalink":"/users/41-d6d2aa4cd9e351e749136df67a27c136/","section":"Users","summary":"","title":"scottmckendry.tech","type":"users"},{"content":"","externalUrl":"https://ohdmire.github.io","permalink":"/users/42-fec44f5dd2be29e37c305696d018f99f/","section":"Users","summary":"","title":"ohdmire.github.io","type":"users"},{"content":"","externalUrl":"https://ricklan.photography","permalink":"/users/43-954584ca9b811d77ac600cf7c426be45/","section":"Users","summary":"","title":"ricklan.photography","type":"users"},{"content":"","externalUrl":"https://deepumohan.com/tech/","permalink":"/users/44-8032d46bf9c96ae4b59c419032c7ad89/","section":"Users","summary":"","title":"deepumohan.com/tech","type":"users"},{"content":"","externalUrl":"https://joush007.github.io","permalink":"/users/45-b66472425d53d4e270e85ba4f160e7a1/","section":"Users","summary":"","title":"joush007.github.io","type":"users"},{"content":"","externalUrl":"https://blog.stonegarden.dev/","permalink":"/users/46-3ec093539269bc4ce9498fe9c36a2b7d/","section":"Users","summary":"","title":"blog.stonegarden.dev","type":"users"},{"content":"","externalUrl":"https://renaud.warnotte.be","permalink":"/users/47-4f0c88168fb7a348b4393a56ede2e799/","section":"Users","summary":"","title":"renaud.warnotte.be","type":"users"},{"content":"","externalUrl":"https://boringtech.net/","permalink":"/users/48-82b432ad2bfc873ec725001f0b3ac495/","section":"Users","summary":"","title":"BoringTech.net","type":"users"},{"content":"","externalUrl":"https://technicaldc.github.io/","permalink":"/users/49-6a603c5d465ecb2422ed7a96fd55c99c/","section":"Users","summary":"","title":"technicaldc.github.io","type":"users"},{"content":"","externalUrl":"https://alxhslm.github.io/","permalink":"/users/50-427cec3309be77abe6f19b006b2a3dc0/","section":"Users","summary":"","title":"alxhslm.github.io","type":"users"},{"content":"","externalUrl":"https://www.the-maze.net/","permalink":"/users/51-e518dc969af1ea65a3d0b55630705047/","section":"Users","summary":"","title":"the-maze.net","type":"users"},{"content":"","externalUrl":"https://www.dxpetti.com/","permalink":"/users/52-0327ac1993f378aa2fc5bbb8a840c9cb/","section":"Users","summary":"","title":"DXPetti.com","type":"users"},{"content":"","externalUrl":"https://asterisk.lol","permalink":"/users/53-6e57b74d392f64f3698aee7046cc2606/","section":"Users","summary":"","title":"asterisk.lol","type":"users"},{"content":"","externalUrl":"https://ekwska.com","permalink":"/users/54-1314bf3d7ce70ad90f1fc7666032e147/","section":"Users","summary":"","title":"ekwska.com","type":"users"},{"content":"","externalUrl":"https://aakashnand.com/","permalink":"/users/55-a322d57671bf49fe0f2539096f9ed57f/","section":"Users","summary":"","title":"aakashnand.com","type":"users"},{"content":"","externalUrl":"https://karlukle.site","permalink":"/users/56-7d028665dc1cf54485e6e82a7083ce69/","section":"Users","summary":"","title":"karlukle.site","type":"users"},{"content":"","externalUrl":"http://www.adammadej.com/","permalink":"/users/57-15cf92fba36f0319bd4b176da554fdb9/","section":"Users","summary":"","title":"Adam Madej - Gameplay Animator","type":"users"},{"content":"","externalUrl":"http://www.eallion.com/","permalink":"/users/58-1f94add7b0ba58983ff507632b822401/","section":"Users","summary":"","title":"eallion.com","type":"users"},{"content":"","externalUrl":"https://synapticsugar.games","permalink":"/users/59-c0d9928ff3857960ec230178bdec1b8d/","section":"Users","summary":"","title":"Synaptic Sugar","type":"users"},{"content":"","externalUrl":"https://www.michaeldorner.de","permalink":"/users/60-d965f981aa39336ef7be5efac83c96b2/","section":"Users","summary":"","title":"michaeldorner.de","type":"users"},{"content":"","externalUrl":"http://www.ignaciomconde.com/","permalink":"/users/61-4de384e83ae8af3834cad28f6dfc6966/","section":"Users","summary":"","title":"Ignacio Conde","type":"users"},{"content":"","externalUrl":"https://blog.ummit.dev/","permalink":"/users/62-c506ded8078df151fc8ce943e7ac1c8a/","section":"Users","summary":"","title":"UmmIt - Blog","type":"users"},{"content":"","externalUrl":"https://nveshaan.github.io/","permalink":"/users/63-02c452502ee9a03866c720c14bf86f9e/","section":"Users","summary":"","title":"nveshaan","type":"users"},{"content":"","externalUrl":"https://kumacat.pages.dev","permalink":"/users/64-d52c3523ad809eb1d9ddbcbe32e92661/","section":"Users","summary":"","title":"kumacat.pages.dev","type":"users"},{"content":"","externalUrl":"https://andrealucchini.com","permalink":"/users/65-bdd6b2db27fb40b3fa79a37659b2f285/","section":"Users","summary":"","title":"andrealucchini.com","type":"users"},{"content":"","externalUrl":"https://luizglomyer.github.io/","permalink":"/users/66-af89464ac25ab9445658a3541e623778/","section":"Users","summary":"","title":"glomyer.dev","type":"users"},{"content":"","externalUrl":"https://utrodus.com","permalink":"/users/67-c562b0e606584dd96159faf763291fe1/","section":"Users","summary":"","title":"utrodus.com","type":"users"},{"content":"","externalUrl":"https://lazarusoverlook.com","permalink":"/users/68-033c87b7e950b82ea500c552c9523367/","section":"Users","summary":"","title":"lazarusoverlook.com","type":"users"},{"content":"","externalUrl":"https://p3rception.github.io/","permalink":"/users/69-7596a225b244e0859da338621e680481/","section":"Users","summary":"","title":"p3rception.github.io","type":"users"},{"content":"","externalUrl":"https://www.emse.education","permalink":"/users/70-54b73306674ec7e6778b54a0a8b18b36/","section":"Users","summary":"","title":"Handbook on Teaching Empirical Software Engineering: Online Materials","type":"users"},{"content":"","externalUrl":"https://blog.lofibean.cc","permalink":"/users/71-ad989702a19d1fd8add147d6771c6c02/","section":"Users","summary":"","title":"blog.lofibean.cc","type":"users"},{"content":"","externalUrl":"https://acamize.com/","permalink":"/users/72-e263f9bb6dcec27003a8f5f947ba5abb/","section":"Users","summary":"","title":"Academy Customize","type":"users"},{"content":"","externalUrl":"https://mrtruongvu.com","permalink":"/users/73-837b47128639b5359ade845eae461c3a/","section":"Users","summary":"","title":"mrtruongvu.com","type":"users"},{"content":"","externalUrl":"https://stepaniah.me","permalink":"/users/74-1b3da762734b4fb503e49822ed506dbb/","section":"Users","summary":"","title":"StepaniaH","type":"users"},{"content":"","externalUrl":"https://laterre.dev/","permalink":"/users/75-447e2f0f6f439b915e0b57f93e49b7d6/","section":"Users","summary":"","title":"Laterre Dev","type":"users"},{"content":"","externalUrl":"https://lazyproductreviews.com/","permalink":"/users/76-3fa4eb553f5d984050d2ee4954960034/","section":"Users","summary":"","title":"Lazy Product Reviews","type":"users"},{"content":"","externalUrl":"https://zzzhome.cc/","permalink":"/users/77-46ea5d4b3698fa18fc0b79faa3d89bef/","section":"Users","summary":"","title":"zzzhome","type":"users"},{"content":"","externalUrl":"https://bootlegcoal.com","permalink":"/users/78-915a897f2ea3ba018728d7dce3540b1b/","section":"Users","summary":"","title":"Bootleg Coal Rebellion","type":"users"},{"content":"","externalUrl":"https://ctry.tech/","permalink":"/users/79-0805e986c2f7265e3bbbfc7bc647ed92/","section":"Users","summary":"","title":"Chill-Try","type":"users"},{"content":"","externalUrl":"https://hudsonmcnamara.com","permalink":"/users/80-2d29fadfaf8ddfaee0b69b563bae8d2d/","section":"Users","summary":"","title":"Hudson McNamara","type":"users"},{"content":"","externalUrl":"https://www.wegumweg.de","permalink":"/users/81-eb23ebd26738c98db323eff207dc7c0e/","section":"Users","summary":"","title":"Weg um Weg","type":"users"},{"content":"","externalUrl":"https://panoskorovesis.github.io/","permalink":"/users/82-706590b7d6a58b77f0eadb22b1dc6cd5/","section":"Users","summary":"","title":"The Space 🌍","type":"users"},{"content":"","externalUrl":"https://blog.francescopapini.com","permalink":"/users/83-a615163aad4c6bb5746a697a9450d563/","section":"Users","summary":"","title":"blog.francescopapini.com","type":"users"},{"content":"","externalUrl":"https://adriantunez.cloud","permalink":"/users/84-6057b72b4986ae88640d46262a4be0a0/","section":"Users","summary":"","title":"Adri Antunez's Cloud Site","type":"users"},{"content":"","externalUrl":"https://irusukan.com","permalink":"/users/85-e3f304eacd2f79e31f294cae0ff8162e/","section":"Users","summary":"","title":"irusukan","type":"users"},{"content":"","externalUrl":"https://feec-seminar-comp-eng.github.io/","permalink":"/users/86-405727a6fae1350173ef8915b4c9eb7d/","section":"Users","summary":"","title":"FEEC/UNICAMP IA382 - Seminar in Computer Engineering","type":"users"},{"content":"","externalUrl":"https://blog.francescopapini.com","permalink":"/users/87-a615163aad4c6bb5746a697a9450d563/","section":"Users","summary":"","title":"blog.francescopapini.com","type":"users"},{"content":"","externalUrl":"https://heykyo.com","permalink":"/users/88-9d162f4046cb83c367d8d8ab57240711/","section":"Users","summary":"","title":"Kyo's Garden","type":"users"},{"content":"","externalUrl":"https://abantikabhuti.github.io","permalink":"/users/89-7c98d8b7ba531e032abcd675d4f49c17/","section":"Users","summary":"","title":"abantikabhuti.github.io","type":"users"},{"content":"","externalUrl":"https://yag0x1.github.io","permalink":"/users/90-e4f1c9a4c352ea63707824576d889c8f/","section":"Users","summary":"","title":"yag0x1.github.io","type":"users"},{"content":"","externalUrl":"https://learn-software.com","permalink":"/users/91-512ff0768813ae318d569f681cf49123/","section":"Users","summary":"","title":"Learn-Software.com","type":"users"},{"content":"","externalUrl":"https://mitri.lol","permalink":"/users/92-8cb20b5823049623e2b7214c967a2efc/","section":"Users","summary":"","title":"mitri.lol","type":"users"},{"content":"","externalUrl":"https://kieranlowe.io","permalink":"/users/93-b94f03ec7b2e6d8dbac26fa6cd1cd5d4/","section":"Users","summary":"","title":"kieranlowe.io","type":"users"},{"content":"","externalUrl":"https://eike.in","permalink":"/users/94-c3df142090b1a28ef311312eb82f1e51/","section":"Users","summary":"","title":"eike.in","type":"users"},{"content":"","externalUrl":"https://tbsch.de","permalink":"/users/95-6439a010a72c2622487a063185cf1657/","section":"Users","summary":"","title":"tbsch.de | Smart Home, Technik, Kram","type":"users"},{"content":"","externalUrl":"https://metalhearf.fr","permalink":"/users/96-16a262b9921c2d90b4bc072bbb3c1d56/","section":"Users","summary":"","title":"metalhearf.fr","type":"users"},{"content":"","externalUrl":"https://encelo.github.io/","permalink":"/users/97-a8ae3ddde64e0cd053837877522e2373/","section":"Users","summary":"","title":"encelo.github.io","type":"users"},{"content":"","externalUrl":"https://ncine.github.io/","permalink":"/users/98-8f0822721042bca88707da31b1c241e3/","section":"Users","summary":"","title":"ncine.github.io","type":"users"},{"content":"","externalUrl":"https://www.merza.is/","permalink":"/users/99-f430dff82b8fbb8334091953bfe58598/","section":"Users","summary":"","title":"István Merza","type":"users"},{"content":"","externalUrl":"https://daytaur.com/","permalink":"/users/100-a8326fb0e2d1670165af1c6547b239dd/","section":"Users","summary":"","title":"daytaur.com","type":"users"},{"content":"","externalUrl":"https://zzamboni.org/","permalink":"/users/101-e2d4a1e205128436961ad3e1f2d0de5e/","section":"Users","summary":"","title":"zzamboni.org","type":"users"},{"content":"","externalUrl":"https://www.towerofkubes.com/","permalink":"/users/102-43b666016e50920826ef05ae95486724/","section":"Users","summary":"","title":"Tower of Kubes","type":"users"},{"content":"","externalUrl":"https://monpetitdev.fr/","permalink":"/users/103-d168a95bef76f9306c5f0d645168f8e6/","section":"Users","summary":"","title":"monpetitdev.fr","type":"users"},{"content":"","externalUrl":"https://noorkhafidzin.com/","permalink":"/users/104-e7ef7b552aa65b10f3e26de21d81f702/","section":"Users","summary":"","title":"Noor Khafidzin","type":"users"},{"content":"","externalUrl":"https://reyneese.com/","permalink":"/users/105-834393216bdba408631c891ee45d379c/","section":"Users","summary":"","title":"Reyneese on WoW","type":"users"},{"content":"","externalUrl":"https://davidwrites.xyz/","permalink":"/users/106-e6de9b318c18b2df357ca51f0d73fff6/","section":"Users","summary":"","title":"David Writes","type":"users"},{"content":"","externalUrl":"https://goodjinc.com/","permalink":"/users/107-850f485eb8e81e2873f1a285e3eb0b1d/","section":"Users","summary":"","title":"GOODJINC","type":"users"},{"content":"","externalUrl":"https://tyloch.biz/","permalink":"/users/108-2496d52e0aa601cbba3ad6572e007d26/","section":"Users","summary":"","title":"Artur Tyloch","type":"users"},{"content":"","externalUrl":"https://blog.rewse.jp/","permalink":"/users/109-860d9db7030d829b0f0128400c2ab5d4/","section":"Users","summary":"","title":"Tats Shibata","type":"users"},{"content":"","externalUrl":"https://prusa.net/","permalink":"/users/110-118f0958fbab30b68d5bb3359548a40f/","section":"Users","summary":"","title":"Radek Průša","type":"users"},{"content":"","externalUrl":"https://jbetzen.net/","permalink":"/users/111-bbc5b87f25e67eb50f9308ddb2e30fb3/","section":"Users","summary":"","title":"jbetzen.net","type":"users"},{"content":"","externalUrl":"https://alst.ovh/","permalink":"/users/112-578198405817d000a9b09d08fe594b1f/","section":"Users","summary":"","title":"alst.ovh","type":"users"},{"content":"","externalUrl":"https://blog.zynji.my.id/","permalink":"/users/113-853c2c3c85eecb5148db16a8f005a529/","section":"Users","summary":"","title":"Zarvelion Zynji","type":"users"},{"content":"","externalUrl":"https://www.airikatrading.com","permalink":"/users/114-2e8cdaa29760febdf1d75307255aafe9/","section":"Users","summary":"","title":"Airika","type":"users"},{"content":"","externalUrl":"https://cooklikeanerd.com/","permalink":"/users/115-ae148b43ea1a0101066984d0d6d321c0/","section":"Users","summary":"","title":"Cook Like A Nerd","type":"users"},{"content":"","externalUrl":"https://cintiaching.com/","permalink":"/users/116-577a9817320654ddbf1030cbf1c9ca7f/","section":"Users","summary":"","title":"Cintia Ching","type":"users"},{"content":"","externalUrl":"https://luizcarloscf.github.io/","permalink":"/users/117-704dd03d684dfd9eef53eb6072fef261/","section":"Users","summary":"","title":"luizcarloscf.github.io","type":"users"},{"content":"","externalUrl":"https://fairchild26.github.io/","permalink":"/users/118-92babc5577690a161170943a87ae816d/","section":"Users","summary":"","title":"Robin Fairchild","type":"users"},{"content":"","externalUrl":"https://paraguay4life.com/","permalink":"/users/119-9a4fa7947ad8e197f14bc3d89c98a755/","section":"Users","summary":"","title":"Paraguay4Life","type":"users"},{"content":"","externalUrl":"https://www.gsking.co.uk","permalink":"/users/120-fb2885fb36e97b3799ab7bc03bd9e08a/","section":"Users","summary":"","title":"www.gsking.co.uk","type":"users"},{"content":"A quick example of how to start using author taxonomies in your articles.\n","date":"4 October 2023","externalUrl":null,"permalink":"/authors/","section":"Authors Taxonomy Listing Example","summary":"A quick example of how to start using author taxonomies in your articles.\n","title":"Authors Taxonomy Listing Example","type":"authors"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/categories/blowfish/","section":"Categories","summary":"","title":"Blowfish","type":"categories"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/tags/blowfish/","section":"Tags","summary":"","title":"Blowfish","type":"tags"},{"content":"Just one year ago, I createdBlowfish, a Hugo theme crafted to build my unique vision for my personal homepage. I also decided to make it an open-source project. Fast-forward to today, and Blowfish has transformed into a thriving open-source project with over 600 stars on GitHub and a user base of hundreds. In this tutorial, I’ll show you how to get started and have your website running in a couple of minutes.\nnunocoracao/blowfish Personal Website \u0026amp; Blog Theme for Hugo HTML 2655 696 TL;DR # The goal of this guide is to walk a newcomer to Hugo on how to install, manage, and publish your own website. The final version of the code is available in this repo - for those that would like to jump to the end.\nThe visual style is just one of the many possibilities available in Blowfish. Users are encouraged to check the documentation page and learn how to customize the theme to their needs. Additionally, there are already great examples of the theme from other users available for inspiration. Blowfish also offers several extra features in the form of shortcodes available out of the box in the theme - check them out here and get inspired.\nSetup your environment # Let’s begin by installing all the tools you need. This guide will cover the steps for Mac so these instructions might not apply to your hardware and OS. If you are on Windows or Linux, please consult the guides on how to install Hugo, and GitHub’s CLI for your OS.\nAnyway, if you are using MacOS let’s install brew - a package manager for mac - as that will help installing and managing the other tools.\n/bin/bash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\u0026#34; Once brew is installed let’s install Git, Hugo and GitHub’s CLI.\nbrew install git brew install hugo brew install gh Create a folder for your code and open a terminal session into it (I chose blowfish-tutorial in the commands below, feel free to call the folder whatever you want).\nmkdir blowfish-tutorial cd blowfish-tutorial Once inside the folder, the next step is to initialize your local git repo.\ngit init -b main Now, let’s create and sync the local repo to a GitHub repo so that your code is stored remotely.\ngh auth login gh repo create git push --set-upstream origin main Check the image below for the options I selected for this guide, again feel free to change names and description to your use-case.\nFinally, create a .gitignore file which allows you to exclude certain files from your repo automatically. I would start with something like the example below.\n#others node_modules .hugo_build.lock # OS generated files .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes # Hugo public The last step is to save all the changes to the repo.\ngit add . git commit -m “initial commit” git push Create site and configure it # With all the tools ready, creating and configuring your site will be easy. Still within the folder you created in the last section, let’s create an empty Hugo website (with no theme).\nhugo new site --force . Once the scaffolding finishes, try the command below to run your page. Open a browser on https://localhost:1313 to see your site…\nhugo server Ups… Page not found – right? This was expected, even though you created a website, Hugo doesn’t give any default experience – aka your site doesn’t have any page to show.\nNext step, let\u0026rsquo;s install Blowfish using git submodules which will make it easier to manage and upgrade to new versions in the future.\ngit submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish Next, create the following folder structure at the root of your code directory - config/_default/. Now you will need to download these files and place them in _default folder you just created. The final structure should look something like this.\nconfig/_default/ ├─ hugo.toml ├─ languages.en.toml ├─ markup.toml ├─ menus.en.toml └─ params.toml ` Open the hugo.toml and uncomment the line theme = \u0026ldquo;blowfish” and you are ready to go. Try the running the site again and check the result at https://localhost:1313\nhugo server You should see something like the image below. Not much yet as we didn’t add any content, but the main skeleton for Blowfish is already in place - just requires configuration.\nNow let’s configure the theme.\nFYI This guide will not cover in detail what each parameter available in Blowfish does – for everything available and how to use it, check Blowfish documentation for every option in every file. menus.en.toml # This file defines your menu structure, for the top banner and the footer. For this guide, let’s create two menu sections: one for Posts and one for Tags.\nPosts - will display the full list of entries Tags - automatically generated based on tags placed on each article To achieve this, make sure the following entries exist in the menus.en.toml file. Once the changes are done, you should see the menus appearing by re-running hugo server.\n[[main]] name = \u0026#34;Posts\u0026#34; pageRef = \u0026#34;posts\u0026#34; weight = 10 [[main]] name = \u0026#34;Tags\u0026#34; pageRef = \u0026#34;tags\u0026#34; weight = 30 languages.en.toml # This file will configure your main details as the author of the website. Change the section below to reflect your details.\n[author] name = \u0026#34;Your name here\u0026#34; image = \u0026#34;profile.jpg\u0026#34; headline = \u0026#34;I\u0026#39;m only human\u0026#34; bio = \u0026#34;A little bit about you\u0026#34; # appears in author card for each article The images for the website should be placed in the assets folder. For this step, please add a profile picture to that folder named profile.jpg or change the configuration above to the filename you chose. If you don’t have a profile image available, you can use the one below for the tutorial.\nassets/profile.jpg The last step is configuring your links – social media, GitHub, etc. The file includes all the supported options, but they are commented. You are welcome to uncomment everything and delete the ones you would rather not use. Replace the right links on the ones you decided to keep. You can also change the order.\nparams.toml # This is the main configuration file for Blowfish. Most of the visual options or customization available can be configured using it, and it covers several areas of the theme. For this tutorial, I decided to use a background layout - check other layouts for Blowfish’s landing page - with the Neon color scheme - you can pick a different color scheme if you want to - check this list or create your own.\nAdd an image.jpg to the assets folder which will be the background for the site. You can also download the examples I am using in this tutorial.\nassets/image.jpg Now let’s jump into the params.toml and start configuring the file. I will focus only on the values that need to be changed, don’t delete the rest of the file without reading the docs. Let’s begin by making sure that we have the right color scheme, that image optimization is on, and configure the default background image.\ncolorScheme = \u0026#34;neon\u0026#34; disableImageOptimization = false defaultBackgroundImage = \u0026#34;image.jpg\u0026#34; # used as default for background images Next, let\u0026rsquo;s configure our homepage. We’re going with the background layout, configuring the homepage image and recent items. Furthermore, we are using the card view for items in the recent category. Finally, let’s configure the header to be fixed.\n[homepage] layout = \u0026#34;background\u0026#34; # valid options: page, profile, hero, card, background, custom homepageImage = \u0026#34;image.jpg\u0026#34; # used in: hero, and card showRecent = true showRecentItems = 6 showMoreLink = true showMoreLinkDest = \u0026#34;/posts/\u0026#34; cardView = true cardViewScreenWidth = false layoutBackgroundBlur = true # only used when layout equals background [header] layout = \u0026#34;fixed\u0026#34; Now configure how the article and list pages will look. Here are the configurations for those.\n[article] showHero = true heroStyle = \u0026#34;background\u0026#34; showSummary = true showTableOfContents = true showRelatedContent = true relatedContentLimit = 3 [list] showCards = true groupByYear = false cardView = true If you run hugo server again, you should see something like the image below.\nAdding content to your site # Create a folder to place your posts in /content/posts. This was also the directory configured in your menu to list all the articles. Within that folder, let’s create a new directory and give it the name myfirstpost. Within it create an index.md file – your article and place a featured.jpg or .png for in the same directory as the thumbnail for the article. Use the example below to get started. The first lines in the file are the Front Matter, which tell Hugo what the look and experience of the article will be – different themes support different params for this. Check the docs for more info.\n--- title: \u0026#34;My first post\u0026#34; date: 2023-08-14 draft: false summary: \u0026#34;This is my first post on my site\u0026#34; tags: [\u0026#34;space\u0026#34;] --- ## A sub-title Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nibh nisl, vulputate eu lacus vitae, maximus molestie libero. Vestibulum laoreet, odio et sollicitudin sollicitudin, quam ligula tempus urna, sed sagittis eros eros ac felis. In tristique tortor vitae lacinia commodo. Mauris venenatis ultrices purus nec fermentum. Nunc sit amet aliquet metus. Morbi nisl felis, gravida ac consequat vitae, blandit eu libero. Curabitur porta est in dui elementum porttitor. Maecenas fermentum, tortor ac feugiat fringilla, orci sem sagittis massa, a congue risus ipsum vel massa. Aliquam sit amet nunc vulputate, facilisis neque in, faucibus nisl. You can create additional articles to see what your site will look like once there is content in it. Your site should look like the images below. The main page shows the recent articles, each article is connected through others automatically via related section, you have tag aggregation, and full-text search.\nShip it # The only thing missing is to ship your site. I will be using Firebase for hosting - it’s a free alternative and provides more advanced features if you are creating something more complex. Go to firebase and create a new project. Once that is done, let’s switch to the CLI as it will make it easier to configure everything.\nLet’s install firebase’s CLI - if not on Mac check install instructions on Firebase.\nbrew install firebase-cli Now log in and init firebase hosting for the project.\nfirebase login firebase init Select hosting and proceed.\nFollow the image below for the options I recommend. Make sure to set up the workflow files for GitHub actions. These will guarantee that your code will be deployed once there is a change to the repo.\nHowever, those files will not work out-of-box, as Hugo requires extra steps for the build to work. Please copy and paste the code blocks below to the respective files within the .github folder, but keep the original projectId in the files generated by firebase.\nfirebase-hosting-merge.yml # # This file was auto-generated by the Firebase CLI # https://github.com/firebase/firebase-tools name: Deploy to Firebase Hosting on merge \u0026#39;on\u0026#39;: push: branches: - main jobs: build_and_deploy: runs-on: ubuntu-latest steps: - name: Hugo setup uses: peaceiris/actions-hugo@v2.6.0 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: \u0026#39;true\u0026#39; - name: Check out code into the Go module directory uses: actions/checkout@v4 with: submodules: true # Fetch Hugo themes (true OR recursive) fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - name: Build with Hugo env: # For maximum backward compatibility with Hugo modules HUGO_ENVIRONMENT: production HUGO_ENV: production run: hugo -E -F --minify -d public - name: Deploy Production uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: \u0026#39;${{ secrets.GITHUB_TOKEN }}\u0026#39; firebaseServiceAccount: \u0026#39;${{ secrets.FIREBASE_SERVICE_ACCOUNT_BLOWFISH_TUTORIAL }}\u0026#39; channelId: live projectId: blowfish-tutorial firebase-hosting-pull-request.yml # # This file was auto-generated by the Firebase CLI # https://github.com/firebase/firebase-tools name: Deploy to Firebase Hosting on PR \u0026#39;on\u0026#39;: pull_request jobs: build_and_preview: if: \u0026#39;${{ github.event.pull_request.head.repo.full_name == github.repository }}\u0026#39; runs-on: ubuntu-latest steps: - name: Hugo setup uses: peaceiris/actions-hugo@v2.6.0 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: \u0026#39;true\u0026#39; - name: Check out code into the Go module directory uses: actions/checkout@v4 with: submodules: true # Fetch Hugo themes (true OR recursive) fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - name: Build with Hugo env: # For maximum backward compatibility with Hugo modules HUGO_ENVIRONMENT: production HUGO_ENV: production run: hugo -E -F --minify -d public - name: Deploy preview uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: \u0026#39;${{ secrets.GITHUB_TOKEN }}\u0026#39; firebaseServiceAccount: \u0026#39;${{ secrets.FIREBASE_SERVICE_ACCOUNT_BLOWFISH_TUTORIAL }}\u0026#39; expires: 30d channelId: preview-${{ github.event.number }} projectId: blowfish-tutorial The last step is committing your code to GitHub and let the workflows you created take care of deploying your site. Since we configured GitHub actions, this will trigger a job that will configure and deploy your site automatically.\ngit add . git commit -m \u0026#34;add github actions workflows\u0026#34; git push If the actions tab for your repo, you should see something like this.\nOnce all the steps finish, your Firebase console should show something like the image below - including the links to see your app – I got a version of this tutorial running on https://blowfish-tutorial.web.app/.\nConclusion and Next Steps # Now you have your first version of your homepage. You can make changes locally and once you commit your code they will automatically be reflected online. What shall you do next? I’ll leave you with some useful links to get you inspired and learn more about Blowfish and Hugo.\nhttps://blowfish.page/docs/ https://blowfish.page/docs/configuration/ https://blowfish.page/docs/shortcodes/ https://blowfish.page/examples/ https://blowfish.page/users/ https://gohugo.io/documentation/ ","date":"4 October 2023","externalUrl":"https://n9o.xyz/posts/202310-blowfish-tutorial/","permalink":"/guides/202310-blowfish-tutorial/","section":"Recipes","summary":"Just one year ago, I created Blowfish, a Hugo theme crafted to build my unique vision for my personal homepage. I also decided to make it an open-source project. Fast-forward to today, and Blowfish has transformed into a thriving open-source project with over 600 stars on GitHub and a user base of hundreds. In this tutorial, I’ll show you how to get started and have your website running in a couple of minutes.","title":"Build your homepage using Blowfish and Hugo","type":"guides"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"Nuno\u0026rsquo;s awesome dummy bio.\n","date":"4 October 2023","externalUrl":null,"permalink":"/authors/nunocoracao/","section":"Authors Taxonomy Listing Example","summary":"Nuno’s awesome dummy bio.\n","title":"Nuno Coração","type":"authors"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/categories/open-source/","section":"Categories","summary":"","title":"Open-Source","type":"categories"},{"content":" Recipes, guides, and tutorials for Blowfish Blowfish user? To add your guide to this list, check the template.\nThis section contains guides for a variety of scenarios on how to configure your theme. If you\u0026rsquo;re new, check out the Installation guide to begin or visit the Samples section to see what Blowfish can do.\n","date":"4 October 2023","externalUrl":null,"permalink":"/guides/","section":"Recipes","summary":" Recipes, guides, and tutorials for Blowfish Blowfish user? To add your guide to this list, check the template.\nThis section contains guides for a variety of scenarios on how to configure your theme. If you’re new, check out the Installation guide to begin or visit the Samples section to see what Blowfish can do.\n","title":"Recipes","type":"guides"},{"content":"Blowfish has full support for Hugo taxonomies and will adapt to any taxonomy set up. Taxonomy listings like this one also support custom content to be displayed above the list of terms.\nThis area could be used to add some extra descriptive text to each taxonomy. Check out the advanced tag below to see how to take this concept even further.\n","date":"4 October 2023","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"Blowfish has full support for Hugo taxonomies and will adapt to any taxonomy set up. Taxonomy listings like this one also support custom content to be displayed above the list of terms.\n","title":"Tags","type":"tags"},{"content":"","date":"4 October 2023","externalUrl":null,"permalink":"/tags/tutorial/","section":"Tags","summary":"","title":"Tutorial","type":"tags"},{"content":"","date":"4 janvier 2023","externalUrl":null,"permalink":"/fr/tags/tutoriel/","section":"Tags","summary":"","title":"Tutoriel","type":"tags"},{"content":" This is a demo of the background layout. Switch layout \u0026orarr; npx blowfish-tools ","date":"4 October 2023","externalUrl":null,"permalink":"/","section":"Welcome to Blowfish! 🎉","summary":" This is a demo of the background layout. Switch layout ↻ npx blowfish-tools ","title":"Welcome to Blowfish! 🎉","type":"page"},{"content":"","date":"2023-10-04","externalUrl":null,"permalink":"/zh-cn/categories/%E5%BC%80%E6%BA%90/","section":"Categories","summary":"","title":"开源","type":"categories"},{"content":"","date":"2023-10-04","externalUrl":null,"permalink":"/zh-cn/tags/%E6%8C%87%E5%8D%97/","section":"标签","summary":"","title":"指南","type":"tags"},{"content":"","date":"2 October 2023","externalUrl":"https://blowfish-tutorial.web.app/","permalink":"/examples/blowfish-tutorial/","section":"Showcase","summary":"","title":"Blowfish Tutorial","type":"examples"},{"content":" See what\u0026rsquo;s possible with Blowfish. This section contains links to example templates and pages created using Blowfish to get you inspired.\n","date":"2 October 2023","externalUrl":null,"permalink":"/examples/","section":"Showcase","summary":" See what’s possible with Blowfish. This section contains links to example templates and pages created using Blowfish to get you inspired.\n","title":"Showcase","type":"examples"},{"content":"","date":"1 October 2023","externalUrl":"https://github.com/nunocoracao/blowfish-tutorial","permalink":"/examples/repo-blowfish-tutorial/","section":"Showcase","summary":"","title":"Blowfish Tutorial - Repo","type":"examples"},{"content":"","date":"7 November 2022","externalUrl":"https://nunocoracao.github.io/blowfish_lite/","permalink":"/examples/blowfish-lite/","section":"Showcase","summary":"","title":"Blowfish Lite","type":"examples"},{"content":"","date":"6 November 2022","externalUrl":"https://nunocoracao.github.io/blowfish_artist/","permalink":"/examples/blowfish-artist/","section":"Showcase","summary":"","title":"Blowfish Artist","type":"examples"},{"content":"","date":"6 November 2022","externalUrl":"https://nunocoracao.github.io/blowfish_lowkey/","permalink":"/examples/blowfish-lowkey/","section":"Showcase","summary":"","title":"Blowfish Lowkey","type":"examples"},{"content":"","date":"12 janvier 2022","externalUrl":null,"permalink":"/fr/tags/auteurs/","section":"Tags","summary":"","title":"Auteurs","type":"tags"},{"content":"","date":"12 October 2022","externalUrl":null,"permalink":"/tags/authors/","section":"Tags","summary":"","title":"Authors","type":"tags"},{"content":"","date":"12. October 2022","externalUrl":null,"permalink":"/de/tags/autoren/","section":"Tags","summary":"","title":"Autoren","type":"tags"},{"content":"","date":"12 de October de 2022","externalUrl":null,"permalink":"/pt-pt/tags/autores/","section":"Tags","summary":"","title":"Autores","type":"tags"},{"content":"","date":"12. October 2022","externalUrl":null,"permalink":"/de/tags/beispiel/","section":"Tags","summary":"","title":"Beispiel","type":"tags"},{"content":"Dummy Second Author\u0026rsquo;s awesome dummy bio.\n","date":"12 October 2022","externalUrl":null,"permalink":"/authors/secondauthor/","section":"Authors Taxonomy Listing Example","summary":"Dummy Second Author’s awesome dummy bio.\n","title":"Dummy Second Author","type":"authors"},{"content":"","date":"12 de October de 2022","externalUrl":null,"permalink":"/es/tags/ejemplo/","section":"Tags","summary":"","title":"Ejemplo","type":"tags"},{"content":"","date":"12 janvier 2022","externalUrl":null,"permalink":"/fr/tags/exemple/","section":"Tags","summary":"","title":"Exemple","type":"tags"},{"content":"","date":"12 de October de 2022","externalUrl":null,"permalink":"/pt-pt/tags/exemplo/","section":"Tags","summary":"","title":"Exemplo","type":"tags"},{"content":"This is an example of how an article with multiple authors will look like.\n","date":"12 October 2022","externalUrl":null,"permalink":"/samples/multiple-authors/","section":"Samples","summary":"A quick example of how multiple authors could be used.","title":"Multiple Authors","type":"sample"},{"content":"","date":"12 October 2022","externalUrl":null,"permalink":"/tags/sample/","section":"Tags","summary":"","title":"Sample","type":"tags"},{"content":" Blowfish brings your content to life. \u0026#x1f60d; This section contains some demo pages that show how Blowfish renders different types of content. You can also see an example taxonomy listing page.\nSidenote: This page is just a standard Blowfish article listing and Hugo has been configured to generate a samples content type and display article summaries.\n","date":"12 October 2022","externalUrl":null,"permalink":"/samples/","section":"Samples","summary":" Blowfish brings your content to life. 😍 This section contains some demo pages that show how Blowfish renders different types of content. You can also see an example taxonomy listing page.\n","title":"Samples","type":"samples"},{"content":"","date":"2022-10-12","externalUrl":null,"permalink":"/zh-cn/tags/%E4%BD%9C%E8%80%85/","section":"标签","summary":"","title":"作者","type":"tags"},{"content":"","date":"2022-10-12","externalUrl":null,"permalink":"/zh-cn/tags/%E7%A4%BA%E4%BE%8B/","section":"标签","summary":"","title":"示例","type":"tags"},{"content":"","date":"26 de September de 2022","externalUrl":null,"permalink":"/pt-pt/tags/miniatura/","section":"Tags","summary":"","title":"Miniatura","type":"tags"},{"content":"","date":"26 janvier 2022","externalUrl":null,"permalink":"/fr/tags/miniature/","section":"Tags","summary":"","title":"Miniature","type":"tags"},{"content":"","date":"26 September 2022","externalUrl":null,"permalink":"/tags/thumbnail/","section":"Tags","summary":"","title":"Thumbnail","type":"tags"},{"content":"A quick example of how to start using Thumbnails in your articles.\nIf your average directory for an article looks like this:\ncontent └── awesome_article.md You need to change it from a single markdown file into a folder. Create a directory with the same name of the article, inside create a index.md file. You\u0026rsquo;ll get a structure similar to what\u0026rsquo;s below.\ncontent └── awesome_article └── featured.png Inside the article you can now add an image file (almost all formats are supported but we recommend .png or .jpg) that starts with feature*. Example below.\ncontent └── awesome_article ├── index.md └── featured.png This will tell Blowfish that this article has a feature image that can be used both as a thumbnail across your website as well as for oEmbed cards across social platforms. As an example, you can try copy pasting the URL of this article into a platform that shows oEmbeds (e.g. Twitter, WhatsApp, Telegram, etc) and see what is displayed.\n","date":"26 September 2022","externalUrl":null,"permalink":"/samples/thumbnail_sample/","section":"Samples","summary":"A quick example of how to start using Thumbnails in your artciles.","title":"Thumbnails","type":"sample"},{"content":"","date":"2022-09-26","externalUrl":null,"permalink":"/zh-cn/tags/%E7%BC%A9%E7%95%A5%E5%9B%BE/","section":"标签","summary":"","title":"缩略图","type":"tags"},{"content":"","date":"7 November 2021","externalUrl":"https://github.com/nunocoracao/blowfish_lite/","permalink":"/examples/repo-blowfish-lite/","section":"Showcase","summary":"","title":"Blowfish Lite - Repo","type":"examples"},{"content":"","date":"6 November 2021","externalUrl":"https://github.com/nunocoracao/blowfish_artist/","permalink":"/examples/repo-blowfish-artist/","section":"Showcase","summary":"","title":"Blowfish Artist - Repo","type":"examples"},{"content":"","date":"6 November 2021","externalUrl":"https://github.com/nunocoracao/blowfish_lowkey/","permalink":"/examples/repo-blowfish-lowkey/","section":"Showcase","summary":"","title":"Blowfish Lowkey - Repo","type":"examples"},{"content":"","date":"6 November 2020","externalUrl":"https://nunocoracao.github.io/blowfish_template/","permalink":"/examples/blowfish-template/","section":"Showcase","summary":"","title":"Blowfish Template","type":"examples"},{"content":"","date":"6 November 2020","externalUrl":"https://github.com/nunocoracao/blowfish_template","permalink":"/examples/blowfish-template-repo/","section":"Showcase","summary":"","title":"Blowfish Template - GitHub Repo","type":"examples"},{"content":"","date":"14 August 2020","externalUrl":null,"permalink":"/it/series/documentazione/","section":"Series","summary":"","title":"Documentazione","type":"series"},{"content":"","date":"14 janvier 2020","externalUrl":null,"permalink":"/fr/tags/ic%C3%B4nes/","section":"Tags","summary":"","title":"Icônes","type":"tags"},{"content":"","date":"14 de August de 2020","externalUrl":null,"permalink":"/pt-pt/tags/%C3%ADcones/","section":"Tags","summary":"","title":"Ícones","type":"tags"},{"content":"","date":"14 de August de 2020","externalUrl":null,"permalink":"/es/tags/iconos/","section":"Tags","summary":"","title":"Iconos","type":"tags"},{"content":"Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode.\nAdditionally, custom icons are also fully supported. Simply provide your own SVG icon assets by placing them in the assets/icons/ directory in the root of your project. Any icons in the icons directory will then be available to use throughout the theme. In order to achieve automatic color filling, every SVG path needs the fill=\u0026quot;currentColor\u0026quot; XML attribute.\nThe full list of built-in icons and their corresponding names can referenced below.\nIcon name Preview a11y amazon apple bars bell blogger bluesky bomb bug check chevron-down circle-info circle-question cloud-moon cloud code codeberg \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e codepen comment dev discord discourse docker download dribbble edit email envelope expand eye facebook fediverse \u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\u003e file-lines fire flickr forgejo fork foursquare ghost gitea github gitlab globe goodreads google-scholar google graduation-cap hackernews hashnode heart-empty heart image instagram itch-io keybase keyoxide kickstarter ko-fi \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e language lastfm lightbulb line link linkedin list-check list-ol list location-dot lock mastodon matrix Matrix medium microsoft moon mug-hot music orcid patreon paypal peertube pencil pgpkey phone pinterest pixelfed poo printables quote-left reddit researchgate rss-square rss scale-balanced search shield signal skull-crossbones slack snapchat soundcloud spotify stack-overflow star steam strava stripe substack sun tag telegram threads tiktok triangle-exclamation tumblr twitch twitter untappd wand-magic-sparkles whatsapp worktree x-twitter xing Xing xmark youtube ","date":"14 August 2020","externalUrl":null,"permalink":"/samples/icons/","section":"Samples","summary":"Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode.\nAdditionally, custom icons are also fully supported. Simply provide your own SVG icon assets by placing them in the assets/icons/ directory in the root of your project. Any icons in the icons directory will then be available to use throughout the theme. In order to achieve automatic color filling, every SVG path needs the fill=\"currentColor\" XML attribute.\n","title":"Icons","type":"sample"},{"content":"","date":"14 August 2020","externalUrl":null,"permalink":"/tags/icons/","section":"Tags","summary":"","title":"Icons","type":"tags"},{"content":"","date":"14 August 2020","externalUrl":null,"permalink":"/tags/shortcodes/","section":"Tags","summary":"","title":"Shortcodes","type":"tags"},{"content":"","date":"2020-08-14","externalUrl":null,"permalink":"/zh-cn/tags/%E5%8F%8B%E9%93%BE/","section":"标签","summary":"","title":"友链","type":"tags"},{"content":"","date":"2020-08-14","externalUrl":null,"permalink":"/zh-cn/tags/%E5%9B%BE%E6%A0%87/","section":"标签","summary":"","title":"图标","type":"tags"},{"content":"","date":"2020-08-14","externalUrl":null,"permalink":"/zh-cn/tags/%E7%AE%80%E7%A0%81/","section":"标签","summary":"","title":"简码","type":"tags"},{"content":"","date":"11 March 2019","externalUrl":null,"permalink":"/tags/css/","section":"Tags","summary":"","title":"Css","type":"tags"},{"content":"","date":"11 March 2019","externalUrl":null,"permalink":"/tags/html/","section":"Tags","summary":"","title":"Html","type":"tags"},{"content":"This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.\nHeadings # The following HTML \u0026lt;h1\u0026gt;—\u0026lt;h6\u0026gt; elements represent six levels of section headings. \u0026lt;h1\u0026gt; is the highest section level while \u0026lt;h6\u0026gt; is the lowest.\nH1 # H2 # H3 # H4 # H5 # H6 # Paragraph # Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.\nItatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.\nBlockquotes # The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations.\nBlockquote without attribution # Tiam, ad mint andaepu dandae nostion secatur sequo quae. Note that you can use Markdown syntax within a blockquote.\nBlockquote with attribution # Don\u0026rsquo;t communicate by sharing memory, share memory by communicating.\n— Rob Pike1\nTables # Tables aren\u0026rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.\nName Age Bob 27 Alice 23 Inline Markdown within tables # Italics Bold Code italics bold code Code Blocks # General code block # \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;utf-8\u0026#34; /\u0026gt; \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; Code block with title and line highlight # example.html 1\u0026lt;!DOCTYPE html\u0026gt; 2\u0026lt;html lang=\u0026#34;en\u0026#34;\u0026gt; 3\u0026lt;head\u0026gt; 4 \u0026lt;meta charset=\u0026#34;utf-8\u0026#34;\u0026gt; 5 \u0026lt;title\u0026gt;Example HTML5 Document\u0026lt;/title\u0026gt; 6\u0026lt;/head\u0026gt; 7\u0026lt;body\u0026gt; 8 \u0026lt;p\u0026gt;Test\u0026lt;/p\u0026gt; 9\u0026lt;/body\u0026gt; 10\u0026lt;/html\u0026gt; List Types # Ordered List # First item Second item Third item Unordered List # List item Another item And another item Nested list # Fruit Apple Orange Banana Dairy Milk Cheese Other Elements — abbr, sub, sup, kbd, mark # GIF is a bitmap image format.\nH2O\nXn + Yn = Zn\nPress CTRL+ALT+Delete to end the session.\nMost salamanders are nocturnal, and hunt for insects, worms, and other small creatures.\nImages # In addition to the Figure Shortcode, you can define images using the following Markdown syntax:\n![Alt text](image.jpg \u0026#34;Image caption\u0026#34;) Image caption You can also leverage Hugos \u0026lsquo;Markdown attributes\u0026rsquo; feature to add custom attributes to the created HTML element. For example, to set the width of an image to 50%:\n![Alt text](image.jpg \u0026#34;Image caption\u0026#34;) {style=\u0026#34;width:50%;\u0026#34;} Half width image caption Note that the \u0026lsquo;Markdown attributes\u0026rsquo; feature requires configuration of the Goldmark renderer. See the Hugo documentation for more information.\nThe above quote is excerpted from Rob Pike\u0026rsquo;s talk about nothing during Gopherfest, November 18, 2015.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"11 March 2019","externalUrl":null,"permalink":"/samples/markdown/","section":"Samples","summary":"This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.\n","title":"Markdown","type":"sample"},{"content":"","date":"11 March 2019","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":"","date":"10 janvier 2019","externalUrl":null,"permalink":"/fr/tags/confidentialit%C3%A9/","section":"Tags","summary":"","title":"Confidentialité","type":"tags"},{"content":"","date":"10. March 2019","externalUrl":null,"permalink":"/de/tags/datenschutz/","section":"Tags","summary":"","title":"Datenschutz","type":"tags"},{"content":"","date":"10 March 2019","externalUrl":null,"permalink":"/tags/gist/","section":"Tags","summary":"","title":"Gist","type":"tags"},{"content":"","date":"10 de March de 2019","externalUrl":null,"permalink":"/es/tags/privacidad/","section":"Tags","summary":"","title":"Privacidad","type":"tags"},{"content":"","date":"10 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/privacidade/","section":"Tags","summary":"","title":"Privacidade","type":"tags"},{"content":"","date":"10 March 2019","externalUrl":null,"permalink":"/tags/privacy/","section":"Tags","summary":"","title":"Privacy","type":"tags"},{"content":"Hugo ships with several built-in shortcodes for rich content, along with a privacy config and a set of simple shortcodes that enable static and no-JS versions of various social media embeds.\nYouTube # Below is an example using the built-in youtube shortcode.\nTwitter # This example uses the x shortcode to output a Tweet. It requires two named parameters user and id.\n“In addition to being more logical, asymmetry has the advantage that its complete appearance is far more optically effective than symmetry.”\n— Jan Tschichold pic.twitter.com/gcv7SrhvJb\n\u0026mdash; Design Reviewed | Graphic Design History (@DesignReviewed) January 17, 2019 Alternatively, the tweet shortcode can be used to embed a fully marked up Twitter card.\nGist # The gist shortcode can be used to embed a GitHub Gist. It requires two unnamed parameters: the username and ID of the Gist.\nVimeo # The vimeo_simple shortcode will embed a Vimeo video.\n","date":"10 March 2019","externalUrl":null,"permalink":"/samples/rich-content/","section":"Samples","summary":"This is an example of a rich content summary.","title":"Rich Content","type":"sample"},{"content":"","date":"10 March 2019","externalUrl":null,"permalink":"/tags/twitter/","section":"Tags","summary":"","title":"Twitter","type":"tags"},{"content":"","date":"10 March 2019","externalUrl":null,"permalink":"/tags/vimeo/","section":"Tags","summary":"","title":"Vimeo","type":"tags"},{"content":"","date":"10 March 2019","externalUrl":null,"permalink":"/tags/youtube/","section":"Tags","summary":"","title":"Youtube","type":"tags"},{"content":"","date":"2019-03-10","externalUrl":null,"permalink":"/zh-cn/tags/%E9%9A%90%E7%A7%81/","section":"标签","summary":"","title":"隐私","type":"tags"},{"content":"","date":"9. March 2019","externalUrl":null,"permalink":"/de/tags/latein/","section":"Tags","summary":"","title":"Latein","type":"tags"},{"content":"","date":"9 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/latim/","section":"Tags","summary":"","title":"Latim","type":"tags"},{"content":"","date":"9 March 2019","externalUrl":null,"permalink":"/tags/latin/","section":"Tags","summary":"","title":"Latin","type":"tags"},{"content":"","date":"9 de March de 2019","externalUrl":null,"permalink":"/es/tags/lat%C3%ADn/","section":"Tags","summary":"","title":"Latín","type":"tags"},{"content":"Lorem est tota propiore conpellat pectoribus de pectora summo.\nRedit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.\nExierant elisi ambit vivere dedere Duce pollice Eris modo Spargitque ferrea quos palude Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.\nComas hunc haec pietate fetum procerum dixit Post torum vates letum Tiresia Flumen querellas Arcanaque montibus omnes Quidem et Vagus elidunt # The Van de Graaf Canon\nMane refeci capiebant unda mulcebat # Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. Faces illo pepulere tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.\nIubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.\nEurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel mitis temploque vocatus, inque alis, oculos nomen non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides parte.\n","date":"9 March 2019","externalUrl":null,"permalink":"/samples/placeholder-text/","section":"Samples","summary":"Lorem est tota propiore conpellat pectoribus de pectora summo.\n","title":"Placeholder Text","type":"sample"},{"content":"","date":"9 March 2019","externalUrl":null,"permalink":"/tags/text/","section":"Tags","summary":"","title":"Text","type":"tags"},{"content":"","date":"9 janvier 2019","externalUrl":null,"permalink":"/fr/tags/texte/","section":"Tags","summary":"","title":"Texte","type":"tags"},{"content":"","date":"9 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/texto/","section":"Tags","summary":"","title":"Texto","type":"tags"},{"content":"","date":"2019-03-09","externalUrl":null,"permalink":"/zh-cn/tags/%E6%8B%89%E4%B8%81%E8%AF%AD/","section":"标签","summary":"","title":"拉丁语","type":"tags"},{"content":"","date":"2019-03-09","externalUrl":null,"permalink":"/zh-cn/tags/%E6%96%87%E6%9C%AC/","section":"标签","summary":"","title":"文本","type":"tags"},{"content":"","date":"8 March 2019","externalUrl":null,"permalink":"/tags/katex/","section":"Tags","summary":"","title":"Katex","type":"tags"},{"content":"","date":"8 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/matem%C3%A1tica/","section":"Tags","summary":"","title":"Matemática","type":"tags"},{"content":"","date":"8 de March de 2019","externalUrl":null,"permalink":"/es/tags/matem%C3%A1ticas/","section":"Tags","summary":"","title":"Matemáticas","type":"tags"},{"content":"KaTeX can be used to render mathematical notation within articles.\nBlowfish will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, simply include the katex shortcode within the article. Example below:\n{{\u0026lt; katex \u0026gt;}} Any KaTeX syntax on that page will then be automatically rendered. Use the online reference of supported TeX functions for the available syntax.\nInline notation # Inline notation can be generated by wrapping the expression in \\( and \\) delimiters.\nExample:\n% KaTeX inline notation Inline notation: \\(\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…\\) Inline notation: \\(\\varphi = \\dfrac{1+\\sqrt5}{2}= 1.6180339887…\\)\nBlock notation # Alternatively, block notation can be generated using $$ delimiters. This will output the expression in its own HTML block.\nExample:\n% KaTeX block notation $$ \\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$ $$ \\varphi = 1+\\frac{1} {1+\\frac{1} {1+\\frac{1} {1+\\cdots} } } $$","date":"8 March 2019","externalUrl":null,"permalink":"/samples/mathematical-notation/","section":"Samples","summary":"KaTeX can be used to render mathematical notation within articles.\n","title":"Mathematical notation","type":"sample"},{"content":"","date":"8. March 2019","externalUrl":null,"permalink":"/de/tags/mathematik/","section":"Tags","summary":"","title":"Mathematik","type":"tags"},{"content":"","date":"8 March 2019","externalUrl":null,"permalink":"/tags/maths/","section":"Tags","summary":"","title":"Maths","type":"tags"},{"content":"","date":"2019-03-08","externalUrl":null,"permalink":"/zh-cn/tags/%E6%95%B0%E5%AD%A6/","section":"标签","summary":"","title":"数学","type":"tags"},{"content":"","date":"6 March 2019","externalUrl":null,"permalink":"/tags/chart/","section":"Tags","summary":"","title":"Chart","type":"tags"},{"content":"Blowfish includes support for Chart.js using the chart shortcode. Simply wrap the chart markup within the shortcode. Blowfish automatically themes charts to match the configured colorScheme parameter, however the colours can be customised using normal Chart.js syntax.\nRefer to the chart shortcode docs for more details.\nThe examples below are a small selection taken from the official Chart.js docs. You can also view the page source on GitHub to see the markup.\nBar chart # Line chart # Doughnut chart # ","date":"6 March 2019","externalUrl":null,"permalink":"/samples/charts/","section":"Samples","summary":"Blowfish includes Chart.js for powerful charts and data visualisations.","title":"Charts","type":"sample"},{"content":"","date":"6 March 2019","externalUrl":null,"permalink":"/tags/diagram/","section":"Tags","summary":"","title":"Diagram","type":"tags"},{"content":"","date":"6 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/diagrama/","section":"Tags","summary":"","title":"Diagrama","type":"tags"},{"content":"","date":"6. March 2019","externalUrl":null,"permalink":"/de/tags/diagramm/","section":"Tags","summary":"","title":"Diagramm","type":"tags"},{"content":"","date":"6 janvier 2019","externalUrl":null,"permalink":"/fr/tags/diagramme/","section":"Tags","summary":"","title":"Diagramme","type":"tags"},{"content":"Mermaid diagrams are supported in Blowfish using the mermaid shortcode. Simply wrap the diagram markup within the shortcode. Blowfish automatically themes Mermaid diagrams to match the configured colorScheme parameter.\nRefer to the mermaid shortcode docs for more details.\nThe examples below are a small selection taken from the official Mermaid docs. You can also view the page source on GitHub to see the markup.\nFlowchart # graph TD A[Christmas] --\u003e|Get money| B(Go shopping) B --\u003e C{Let me think} B --\u003e G[/Another/] C ==\u003e|One| D[Laptop] C --\u003e|Two| E[iPhone] C --\u003e|Three| F[Car] subgraph Section C D E F G end Sequence diagram # sequenceDiagram autonumber par Action 1 Alice-\u003e\u003eJohn: Hello John, how are you? and Action 2 Alice-\u003e\u003eBob: Hello Bob, how are you? end Alice-\u003e\u003e+John: Hello John, how are you? Alice-\u003e\u003e+John: John, can you hear me? John--\u003e\u003e-Alice: Hi Alice, I can hear you! Note right of John: John is perceptive John--\u003e\u003e-Alice: I feel great! loop Every minute John--\u003eAlice: Great! end Class diagram # classDiagram Animal \"1\" \u003c|-- Duck Animal \u003c|-- Fish Animal \u003c--o Zebra Animal : +int age Animal : +String gender Animal: +isMammal() Animal: +mate() class Duck{ +String beakColor +swim() +quack() } class Fish{ -int sizeInFeet -canEat() } class Zebra{ +bool is_wild +run() } Entity relationship diagram # erDiagram CUSTOMER }|..|{ DELIVERY-ADDRESS : has CUSTOMER ||--o{ ORDER : places CUSTOMER ||--o{ INVOICE : \"liable for\" DELIVERY-ADDRESS ||--o{ ORDER : receives INVOICE ||--|{ ORDER : covers ORDER ||--|{ ORDER-ITEM : includes PRODUCT-CATEGORY ||--|{ PRODUCT : contains PRODUCT ||--o{ ORDER-ITEM : \"ordered in\" ","date":"6 March 2019","externalUrl":null,"permalink":"/samples/diagrams-flowcharts/","section":"Samples","summary":"It’s easy to add diagrams and flowcharts to articles using Mermaid.","title":"Diagrams and Flowcharts","type":"sample"},{"content":"","date":"6 de March de 2019","externalUrl":null,"permalink":"/pt-pt/tags/gr%C3%A1fico/","section":"Tags","summary":"","title":"Gráfico","type":"tags"},{"content":"","date":"6. March 2019","externalUrl":null,"permalink":"/de/tags/grafik/","section":"Tags","summary":"","title":"Grafik","type":"tags"},{"content":"","date":"6 March 2019","externalUrl":null,"permalink":"/tags/graph/","section":"Tags","summary":"","title":"Graph","type":"tags"},{"content":"","date":"6 janvier 2019","externalUrl":null,"permalink":"/fr/tags/graphique/","section":"Tags","summary":"","title":"Graphique","type":"tags"},{"content":"","date":"6 March 2019","externalUrl":null,"permalink":"/tags/mermaid/","section":"Tags","summary":"","title":"Mermaid","type":"tags"},{"content":"","date":"2019-03-06","externalUrl":null,"permalink":"/zh-cn/tags/%E5%9B%BE%E7%89%87/","section":"标签","summary":"","title":"图片","type":"tags"},{"content":"","date":"2019-03-06","externalUrl":null,"permalink":"/zh-cn/tags/%E6%B5%81%E7%A8%8B%E5%9B%BE/","section":"标签","summary":"","title":"流程图","type":"tags"},{"content":"","date":"2019-03-06","externalUrl":null,"permalink":"/zh-cn/tags/%E8%A1%A8%E6%A0%BC/","section":"标签","summary":"","title":"表格","type":"tags"},{"content":"","date":"5 March 2019","externalUrl":null,"permalink":"/tags/emoji/","section":"Tags","summary":"","title":"Emoji","type":"tags"},{"content":"Emoji is supported throughout Blowfish by default. Emoji can be used in titles, menu items and article content.\nNote: The rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack. Emoji replacements are automatic throughout Blowfish, so you can use shorthand codes in your content and front matter and they will be converted to their corresponding symbols at build time.\nExample: see_no_evil \u0026#x1f648;, hear_no_evil \u0026#x1f649;, speak_no_evil \u0026#x1f64a;.\nThe Emoji cheat sheet is a useful reference for emoji shorthand codes.\n","date":"5 March 2019","externalUrl":null,"permalink":"/samples/emoji/","section":"Samples","summary":"📖🏞️🧗🏽🐉🧙🏽‍♂️🧚🏽👸","title":"Emoji 🪂","type":"sample"},{"content":"","date":"22 janvier 1987","externalUrl":null,"permalink":"/fr/tags/mod%C3%A8le/","section":"Tags","summary":"","title":"Modèle","type":"tags"},{"content":"","date":"22 de December de 1987","externalUrl":null,"permalink":"/es/tags/plantilla/","section":"Tags","summary":"","title":"Plantilla","type":"tags"},{"content":"Thank you for wanting to contribute to Blowfish\u0026rsquo;s community.\nHow to start? # This is a template article that will explain how to create a new article for Blowfish\u0026rsquo;s guide section.\nClone Blowfish # Clone this repo with the following command:\ngit clone https://github.com/nunocoracao/blowfish.git Setup your files # Copy and paste the entire folder where this .md file is.\nName it using the following convention YYYYMM-title, no white spaces are allowed.\nWrite your guide # Write your guide :)\nUse the img folder to place your images and use them:\nImage caption Open a PR # Open a PR and thanks in advance for your contribution.\n","date":"22 December 1987","externalUrl":null,"permalink":"/guides/template/","section":"Recipes","summary":"Thank you for wanting to contribute to Blowfish’s community.\nHow to start? # This is a template article that will explain how to create a new article for Blowfish’s guide section.\n","title":"Recipe Template","type":"guides"},{"content":"","date":"22 December 1987","externalUrl":null,"permalink":"/tags/template/","section":"Tags","summary":"","title":"Template","type":"tags"},{"content":"","date":"22. December 1987","externalUrl":null,"permalink":"/de/tags/vorlage/","section":"Tags","summary":"","title":"Vorlage","type":"tags"},{"content":"","date":"1987-12-22","externalUrl":null,"permalink":"/zh-cn/tags/%E6%A8%A1%E6%9D%BF/","section":"标签","summary":"","title":"模板","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/academia/","section":"Tags","summary":"","title":"Academia","type":"tags"},{"content":"This is the advanced tag. Just like other listing pages in Blowfish, you can add custom content to individual taxonomy terms and it will be displayed at the top of the term listing. \u0026#x1f680;\nYou can also use these content pages to define Hugo metadata like titles and descriptions that will be used for SEO and other purposes.\n","externalUrl":null,"permalink":"/tags/advanced/","section":"Tags","summary":"This is the advanced tag. Just like other listing pages in Blowfish, you can add custom content to individual taxonomy terms and it will be displayed at the top of the term listing. 🚀\n","title":"Advanced","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/alojamento/","section":"Tags","summary":"","title":"Alojamento","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/alojamiento/","section":"Tags","summary":"","title":"Alojamiento","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/analytics/","section":"Tags","summary":"","title":"Analytics","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/app-site/","section":"Tags","summary":"","title":"App Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/artificial-intelligence/","section":"Tags","summary":"","title":"Artificial Intelligence","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/aufrufe/","section":"Tags","summary":"","title":"Aufrufe","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/author-site/","section":"Tags","summary":"","title":"Author Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/avan%C3%A7ado/","section":"Tags","summary":"","title":"Avançado","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/avanc%C3%A9/","section":"Tags","summary":"","title":"Avancé","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/avanzado/","section":"Tags","summary":"","title":"Avanzado","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/benutzer/","section":"Tags","summary":"","title":"Benutzer","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/bereitstellung/","section":"Tags","summary":"","title":"Bereitstellung","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/blog/","section":"Tags","summary":"","title":"Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/book/","section":"Tags","summary":"","title":"Book","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/business-site/","section":"Tags","summary":"","title":"Business Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/cad/","section":"Tags","summary":"","title":"CAD","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/class/","section":"Tags","summary":"","title":"Class","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/college-club-site/","section":"Tags","summary":"","title":"College Club Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/comentarios/","section":"Tags","summary":"","title":"Comentarios","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/coment%C3%A1rios/","section":"Tags","summary":"","title":"Comentários","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/comics-site/","section":"Tags","summary":"","title":"Comics Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/commentaires/","section":"Tags","summary":"","title":"Commentaires","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/comments/","section":"Tags","summary":"","title":"Comments","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/company-site/","section":"Tags","summary":"","title":"Company Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/config/","section":"Tags","summary":"","title":"Config","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/configura%C3%A7%C3%A3o/","section":"Tags","summary":"","title":"Configuração","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/configuraci%C3%B3n/","section":"Tags","summary":"","title":"Configuración","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/configuration/","section":"Tags","summary":"","title":"Configuration","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/contenido/","section":"Tags","summary":"","title":"Contenido","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/content/","section":"Tags","summary":"","title":"Content","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/contenu/","section":"Tags","summary":"","title":"Contenu","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/conte%C3%BAdo/","section":"Tags","summary":"","title":"Conteúdo","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-br/tags/curtidas/","section":"Tags","summary":"","title":"Curtidas","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/dawel/","section":"Tags","summary":"","title":"Dawel","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/d%C3%A9ploiement/","section":"Tags","summary":"","title":"Déploiement","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/deployment/","section":"Tags","summary":"","title":"Deployment","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/despliegue/","section":"Tags","summary":"","title":"Despliegue","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/devops/","section":"Tags","summary":"","title":"DevOps","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/dise%C3%B1os/","section":"Tags","summary":"","title":"Diseños","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/diy/","section":"Tags","summary":"","title":"DIY","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/docs/","section":"Tags","summary":"","title":"Docs","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/series/documenta%C3%A7%C3%A3o/","section":"Series","summary":"","title":"Documentação","type":"series"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/documenta%C3%A7%C3%A3o/","section":"Tags","summary":"","title":"Documentação","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/series/documentaci%C3%B3n/","section":"Series","summary":"","title":"Documentación","type":"series"},{"content":"","externalUrl":null,"permalink":"/es/tags/documentaci%C3%B3n/","section":"Tags","summary":"","title":"Documentación","type":"tags"},{"content":" Simple, yet powerful. Learn how to use Blowfish and its features. This section contains everything you need to know about Blowfish. If you\u0026rsquo;re new, check out the Installation guide to begin or visit the Samples section to see what Blowfish can do.\n","externalUrl":null,"permalink":"/docs/","section":"Documentation","summary":" Simple, yet powerful. Learn how to use Blowfish and its features. This section contains everything you need to know about Blowfish. If you’re new, check out the Installation guide to begin or visit the Samples section to see what Blowfish can do.\n","title":"Documentation","type":"docs"},{"content":"","externalUrl":null,"permalink":"/series/documentation/","section":"Series","summary":"","title":"Documentation","type":"series"},{"content":"","externalUrl":null,"permalink":"/fr/tags/documentation/","section":"Tags","summary":"","title":"Documentation","type":"tags"},{"content":"","externalUrl":null,"permalink":"/it/tags/documenti/","section":"Tag","summary":"","title":"Documenti","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/series/dokumentation/","section":"Series","summary":"","title":"Dokumentation","type":"series"},{"content":"","externalUrl":null,"permalink":"/de/tags/dokumentation/","section":"Tags","summary":"","title":"Dokumentation","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/doll-photography/","section":"Tags","summary":"","title":"Doll Photography","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/dwkde/","section":"Tags","summary":"","title":"DwKDE","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/dwos/","section":"Tags","summary":"","title":"DwOS","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/e-commerce/","section":"Tags","summary":"","title":"E-Commerce","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/environment-design/","section":"Tags","summary":"","title":"Environment Design","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/erweitert/","section":"Tags","summary":"","title":"Erweitert","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/example/","section":"Tags","summary":"","title":"Example","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/favicons/","section":"Tags","summary":"","title":"Favicons","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/firebase/","section":"Tags","summary":"","title":"Firebase","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/front-matter/","section":"Tags","summary":"","title":"Front Matter","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/fun-project/","section":"Tags","summary":"","title":"Fun Project","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/game-site/","section":"Tags","summary":"","title":"Game Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/games-site/","section":"Tags","summary":"","title":"Games Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/github/","section":"Tags","summary":"","title":"Github","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/gostos/","section":"Tags","summary":"","title":"Gostos","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/h%C3%A9bergement/","section":"Tags","summary":"","title":"Hébergement","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/home-automation/","section":"Tags","summary":"","title":"Home Automation","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/homepage/","section":"Tags","summary":"","title":"Homepage","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-br/tags/hospedagem/","section":"Tags","summary":"","title":"Hospedagem","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/hosting/","section":"Tags","summary":"","title":"Hosting","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/icon/","section":"Tags","summary":"","title":"Icon","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-br/tags/implanta%C3%A7%C3%A3o/","section":"Tags","summary":"","title":"Implantação","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/implementa%C3%A7%C3%A3o/","section":"Tags","summary":"","title":"Implementação","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/inhalt/","section":"Tags","summary":"","title":"Inhalt","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/instala%C3%A7%C3%A3o/","section":"Tags","summary":"","title":"Instalação","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/instalaci%C3%B3n/","section":"Tags","summary":"","title":"Instalación","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/installation/","section":"Tags","summary":"","title":"Installation","type":"tags"},{"content":"","externalUrl":null,"permalink":"/it/tags/installazione/","section":"Tag","summary":"","title":"Installazione","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/it/","section":"Tags","summary":"","title":"IT","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/kommentare/","section":"Tags","summary":"","title":"Kommentare","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/konfiguration/","section":"Tags","summary":"","title":"Konfiguration","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/layouts/","section":"Tags","summary":"","title":"Layouts","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/lead/","section":"Tags","summary":"","title":"Lead","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/learning/","section":"Tags","summary":"","title":"Learning","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/likes/","section":"Tags","summary":"","title":"Likes","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/linux-admin/","section":"Tags","summary":"","title":"Linux Admin","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/mechanical-engineering/","section":"Tags","summary":"","title":"Mechanical Engineering","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/mises-en-page/","section":"Tags","summary":"","title":"Mises en Page","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/netlify/","section":"Tags","summary":"","title":"Netlify","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/neu/","section":"Tags","summary":"","title":"Neu","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/new/","section":"Tags","summary":"","title":"New","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/nouveau/","section":"Tags","summary":"","title":"Nouveau","type":"tags"},{"content":"","externalUrl":null,"permalink":"/it/tags/novit%C3%A0/","section":"Tag","summary":"","title":"Novità","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/novo/","section":"Tags","summary":"","title":"Novo","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/nuevo/","section":"Tags","summary":"","title":"Nuevo","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/organization-site/","section":"Tags","summary":"","title":"Organization Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/outdoor-blog/","section":"Tags","summary":"","title":"Outdoor Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/page-daccueil/","section":"Tags","summary":"","title":"Page D'accueil","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/p%C3%A1gina-de-inicio/","section":"Tags","summary":"","title":"Página De Inicio","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/p%C3%A1gina-inicial/","section":"Tags","summary":"","title":"Página Inicial","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/paraguay/","section":"Tags","summary":"","title":"Paraguay","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/partials/","section":"Tags","summary":"","title":"Partials","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/personal-blog/","section":"Tags","summary":"","title":"Personal Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/personal-site/","section":"Tags","summary":"","title":"Personal Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/personal-website/","section":"Tags","summary":"","title":"Personal Website","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/portfolio/","section":"Tags","summary":"","title":"Portfolio","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/portfolio-site/","section":"Tags","summary":"","title":"Portfolio Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/programming/","section":"Tags","summary":"","title":"Programming","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/project-site/","section":"Tags","summary":"","title":"Project Site","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/recipe-blog/","section":"Tags","summary":"","title":"Recipe Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/render/","section":"Tags","summary":"","title":"Render","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/seminars/","section":"Tags","summary":"","title":"Seminars","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/serien/","section":"Tags","summary":"","title":"Serien","type":"tags"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/tags/series/","section":"Tags","summary":"","title":"Series","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/s%C3%A9ries/","section":"Tags","summary":"","title":"Séries","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/software-developer/","section":"Tags","summary":"","title":"Software Developer","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/software-engineering/","section":"Tags","summary":"","title":"Software Engineering","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/tech/","section":"Tags","summary":"","title":"Tech","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/tech-blog/","section":"Tags","summary":"","title":"Tech Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/technology-blog/","section":"Tags","summary":"","title":"Technology Blog","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/theme-author/","section":"Tags","summary":"","title":"Theme Author","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/travel/","section":"Tags","summary":"","title":"Travel","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/users/","section":"Tags","summary":"","title":"Users","type":"tags"},{"content":"Real websites that are built with Blowfish. Check the full list in JSON format.\nBlowfish user? To add your site to this list, submit a pull request. ","externalUrl":null,"permalink":"/users/","section":"Users","summary":"Real websites that are built with Blowfish. Check the full list in JSON format.\nBlowfish user? To add your site to this list, submit a pull request. ","title":"Users","type":"users"},{"content":"","externalUrl":null,"permalink":"/es/tags/usuarios/","section":"Tags","summary":"","title":"Usuarios","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-br/tags/usu%C3%A1rios/","section":"Tags","summary":"","title":"Usuários","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/utilisateurs/","section":"Tags","summary":"","title":"Utilisateurs","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/utilizadores/","section":"Tags","summary":"","title":"Utilizadores","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/videogame-developer/","section":"Tags","summary":"","title":"Videogame Developer","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/views/","section":"Tags","summary":"","title":"Views","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/vignette/","section":"Tags","summary":"","title":"Vignette","type":"tags"},{"content":"","externalUrl":null,"permalink":"/es/tags/vistas/","section":"Tags","summary":"","title":"Vistas","type":"tags"},{"content":"","externalUrl":null,"permalink":"/pt-pt/tags/visualiza%C3%A7%C3%B5es/","section":"Tags","summary":"","title":"Visualizações","type":"tags"},{"content":"","externalUrl":null,"permalink":"/de/tags/vorschaubild/","section":"Tags","summary":"","title":"Vorschaubild","type":"tags"},{"content":"","externalUrl":null,"permalink":"/fr/tags/vues/","section":"Tags","summary":"","title":"Vues","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/world-of-warcraft/","section":"Tags","summary":"","title":"World of Warcraft","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/wow/","section":"Tags","summary":"","title":"WoW","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E4%B8%BB%E9%A1%B5/","section":"标签","summary":"","title":"主页","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E5%86%85%E5%AE%B9/","section":"标签","summary":"","title":"内容","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E5%AE%89%E8%A3%85/","section":"标签","summary":"","title":"安装","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E5%B8%83%E5%B1%80/","section":"标签","summary":"","title":"布局","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E6%89%98%E7%AE%A1/","section":"标签","summary":"","title":"托管","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E6%96%87%E6%A1%A3/","section":"标签","summary":"","title":"文档","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E6%96%B0%E6%89%8B/","section":"标签","summary":"","title":"新手","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E6%B8%B2%E6%9F%93%E5%99%A8/","section":"标签","summary":"","title":"渲染器","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E7%82%B9%E8%B5%9E%E9%87%8F/","section":"标签","summary":"","title":"点赞量","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E7%B3%BB%E5%88%97/","section":"标签","summary":"","title":"系列","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E7%BB%9F%E8%AE%A1%E6%9C%8D%E5%8A%A1/","section":"标签","summary":"","title":"统计服务","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E7%BD%91%E7%AB%99%E5%9B%BE%E6%A0%87/","section":"标签","summary":"","title":"网站图标","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E8%AF%84%E8%AE%BA/","section":"标签","summary":"","title":"评论","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E9%83%A8%E7%BD%B2/","section":"标签","summary":"","title":"部署","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/series/%E9%83%A8%E7%BD%B2%E6%95%99%E7%A8%8B/","section":"Series","summary":"","title":"部署教程","type":"series"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E9%85%8D%E7%BD%AE/","section":"标签","summary":"","title":"配置","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E9%98%85%E8%AF%BB%E9%87%8F/","section":"标签","summary":"","title":"阅读量","type":"tags"},{"content":"","externalUrl":null,"permalink":"/zh-cn/tags/%E9%AB%98%E7%BA%A7/","section":"标签","summary":"","title":"高级","type":"tags"}]