Merge branch 'upstream'
Upstream; https://codeberg.org/daudix/duckquill.gitwq
This commit is contained in:
16
.editorconfig
Normal file
16
.editorconfig
Normal file
@ -0,0 +1,16 @@
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = tab
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = false
|
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
* text=auto eol=lf
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
public/
|
||||
.vercel
|
32
.woodpecker.yaml
Normal file
32
.woodpecker.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
# Taken from https://www.markpitblado.me/blog/deploying-to-vercel-from-codeberg
|
||||
|
||||
steps:
|
||||
preview:
|
||||
image: node
|
||||
environment:
|
||||
VERCEL_TOKEN:
|
||||
from_secret: vercel_token
|
||||
VERCEL_ORG_ID:
|
||||
from_secret: vercel_org_id
|
||||
VERCEL_PROJECT_ID:
|
||||
from_secret: vercel_project_id
|
||||
commands:
|
||||
- npm install --global vercel@latest
|
||||
- vercel deploy --token=$VERCEL_TOKEN
|
||||
when:
|
||||
event: [pull_request]
|
||||
|
||||
deploy:
|
||||
image: node
|
||||
environment:
|
||||
VERCEL_TOKEN:
|
||||
from_secret: vercel_token
|
||||
VERCEL_ORG_ID:
|
||||
from_secret: vercel_org_id
|
||||
VERCEL_PROJECT_ID:
|
||||
from_secret: vercel_project_id
|
||||
commands:
|
||||
- npm install --global vercel@latest
|
||||
- vercel deploy --prod --token=$VERCEL_TOKEN
|
||||
when:
|
||||
event: [push, manual]
|
768
CHANGELOG.md
Normal file
768
CHANGELOG.md
Normal file
@ -0,0 +1,768 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased](https://codeberg.org/daudix/duckquill/compare/v6.3.0...main)
|
||||
|
||||
## [v6.3.0](https://codeberg.org/daudix/duckquill/compare/v6.2.0...v6.3.0) - 2025-04-19
|
||||
|
||||
### Added
|
||||
|
||||
- Add German translation (#130).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Output an error message if title is not set in `config.toml` (#129).
|
||||
|
||||
## [v6.2.0](https://codeberg.org/daudix/duckquill/compare/v6.1.1...v6.2.0) - 2025-03-30
|
||||
|
||||
### Added
|
||||
|
||||
- Add ability to disable share preview card altogether by setting `config.extra.card` to `false` (#122).
|
||||
- Add ability to turn on "go to top" button on regular pages by setting `page.extra.go_to_top` or `section.extra.go_to_top` to `true` (#115).
|
||||
- Add French translation (#113).
|
||||
- Provide a way to subscribe to the tag feed (#104).
|
||||
|
||||
### Changed
|
||||
|
||||
- Convert all icons to CSS variables for de-duplication and easier replacement.
|
||||
- Don't use all available width for table of contents sidebar.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix build failing if social sharing button is enabled and page is missing a description (#114).
|
||||
- Fix build failing if taxonomies in config are set to anything other than "tags" (#126).
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove `extra.fix_contrast` and `extra.fix_contrast_dark` config/page/section variables in favor of automatic contrast color picking (#43).
|
||||
|
||||
## [v6.1.1](https://codeberg.org/daudix/duckquill/compare/v6.1.0...v6.1.1) - 2024-12-01
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix translation of table of contents heading.
|
||||
|
||||
## [v6.1.0](https://codeberg.org/daudix/duckquill/compare/v6.0.0...v6.1.0) - 2024-12-01
|
||||
|
||||
### Added
|
||||
|
||||
- Add `toc_sidebar` page/section variable for turning table of contents to a sidebar.
|
||||
|
||||
### Changed
|
||||
|
||||
- Don't scale down article cards when clicking on tags in them.
|
||||
- Improve performance of the page when navbar is hidden by using the `config.extra.nav.auto_hide` config variable.
|
||||
- Improve tab title generation.
|
||||
- Replace `config.extra.debug_*` config variables with variables under the `config.extra.debug` section.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix navbar not scrolling with content on mobile (#109).
|
||||
|
||||
## [6.0.0](https://codeberg.org/daudix/duckquill/compare/v5.4.0...v6.0.0) - 2024-11-03
|
||||
|
||||
### Added
|
||||
|
||||
- Add `bg-overlay` CSS variable to make setting page background image easier.
|
||||
- Add `classic-article-list` mod for returning the classic article list style.
|
||||
- Add `config.extra.debug_no_styles` config variable for debugging.
|
||||
- Add `config.extra.nav.auto_hide` config variable for making the navbar auto-hide unless hovered or keyboard-focused (#106).
|
||||
- Add `config.extra.show_backlinks` config variable for showing the backlinks button for linked articles in the article's quick actions.
|
||||
- Add `external` class to `https://` links in navbar/footer.
|
||||
- Add `fediverse:creator` meta tag.
|
||||
- Add `shadow-glow` and `text-shadow-glow` CSS variables so that it's easier to use these.
|
||||
- Add `title` class for use on `<strong>`.
|
||||
- Add back support for lazy async images in comments.
|
||||
- Add missing translation strings for author separator and conjunctions.
|
||||
- Add shortcode for Mastodon post embedding.
|
||||
- Add support for blurred media in comments.
|
||||
- Add support for content warnings (CWs) in comments.
|
||||
- Add support for Fuse.js search (#101).
|
||||
- Add support for preview cards in comments.
|
||||
- Add the ability to set video attributes via shortcode.
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Rename `dialog-buttons` class to simply `buttons`.
|
||||
- **[BREAKING]** Rename `nav-bg` CSS variable to `glass-bg`.
|
||||
- **[BREAKING]** Rename `show_read_time` to `show_reading_time`.
|
||||
- **[BREAKING]** Rename main content ID from `main` to `main-content`.
|
||||
- **[BREAKING]** Rename the visually hidden `hidden` class to `visually-hidden`. `hidden` is now used to completely hide the elements, including from screen readers.
|
||||
- **[BREAKING]** Use `main` for main content instead of `div` with a `container` class.
|
||||
- Add default width/height to the `icon` class.
|
||||
- Adjust navbar, main content, and footer margins.
|
||||
- Improve the look of threads in comments.
|
||||
- Keep images slightly rounded on hover.
|
||||
- Make `emoji` class available outside of comments.
|
||||
- Make the code and styling for article cards much cleaner.
|
||||
- Make the shortcodes code much cleaner.
|
||||
- Remove top/bottom margin from the first/last element in `<aside>`.
|
||||
- Replace "Go Back" button with "Go Home" on 404.
|
||||
- Rewrite JavaScript scripts to not rely on being inline, but rather function as separate files, as required by Content Security Policy.
|
||||
- Tighten the default Content Security Policy.
|
||||
- Use Zola's built-in reading time variable instead of the custom implementation (#102).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix article cards missing a focus outline.
|
||||
- Fix hover state of custom emojis in comments.
|
||||
- Fix hover state of the "Load Comments" button.
|
||||
- Fix navbar mods having broken border radius.
|
||||
|
||||
### Removed
|
||||
|
||||
- **[BREAKING]** Remove `container` class in favor of styling the `main` element directly.
|
||||
- Remove `inline-button` class and instead apply button styles by default.
|
||||
|
||||
## [5.4.0](https://codeberg.org/daudix/duckquill/compare/v5.3.2...v5.4.0) - 2024-10-06
|
||||
|
||||
### Added
|
||||
|
||||
- Add `external` class to the "Website Source" link in footer.
|
||||
- Add ability to enable inline table of contents in articles (#94 and #95).
|
||||
- Add ability to make table of contents use numbered lists (#95).
|
||||
- Add ability to open search by pressing the slash key.
|
||||
- Add Farsi translation (#98).
|
||||
- Add Simplified Chinese translation (#97).
|
||||
- Add support for Content Security Policy (#90).
|
||||
|
||||
### Changed
|
||||
|
||||
- Adjust strings to make translation to specific languages possible (#100).
|
||||
- Change fleuron style.
|
||||
- Focus search after opening it.
|
||||
- Make the entire article card clickable (#92).
|
||||
- Move quick navigation buttons to the top on mobile.
|
||||
- Return some `-webkit-` prefixes for wider compatibility.
|
||||
|
||||
## [5.3.2](https://codeberg.org/daudix/duckquill/compare/v5.3.1...v5.3.2) - 2024-10-02
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix navbar blur covering the entire page on mobile (#93).
|
||||
|
||||
## [5.3.1](https://codeberg.org/daudix/duckquill/compare/v5.3.0...v5.3.1) - 2024-09-30
|
||||
|
||||
### Changed
|
||||
|
||||
- Recolor list bullets in GitHub-style alerts.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix backdrop blur of dropdowns and search container in Chrome (#77 and #91).
|
||||
- Fix height of search bar in Chrome.
|
||||
|
||||
## [5.3.0](https://codeberg.org/daudix/duckquill/compare/v5.2.0...v5.3.0) - 2024-09-29
|
||||
|
||||
### Added
|
||||
|
||||
- Add `defer` attribute to scripts.
|
||||
|
||||
### Changed
|
||||
|
||||
- Allow enabling KaTeX per page/section.
|
||||
- Improve the logic of inclusion feeds in `<head>`.
|
||||
- Prevent articles in the article list from having multiple visual types at once (i.e., archived and featured badges at the same time).
|
||||
- Restyle the heading anchors.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fix CRT code blocks preferring syntax highlighting color instead of an accent color.
|
||||
- Fix height of "Skip to Main Content" button.
|
||||
- Fix various RTL issues (broken toggles, article list arrow, unmirrored icons).
|
||||
|
||||
## [5.2.0](https://codeberg.org/daudix/duckquill/compare/v5.1.0...v5.2.0) - 2024-09-25
|
||||
|
||||
### Added
|
||||
|
||||
- Add `closable` class for making `details` closable when other `details` is open/outside area is clicked.
|
||||
- Add Duckquill "mods" as a replacement to "tricks" (#88).
|
||||
- Add post tags back to `article.html`.
|
||||
- Add Spanish translation (#87).
|
||||
|
||||
### Changed
|
||||
|
||||
- Center the title in `article.html` pages.
|
||||
- Change "From newest to oldest" in the article list to total amount of posts (#85).
|
||||
- Convert code block header to a flexbox.
|
||||
- Get rid of dashed outline on article hover in article list.
|
||||
- Make comment actions slimmer.
|
||||
- Make navabr menu/search open animation nicer (scale up instead of just fading from transparency).
|
||||
- More visually interesting dropdown open animation.
|
||||
- More visually interesting paginator.
|
||||
- Move paginator from `articles.html` to `article-list.html`.
|
||||
- Tweak styling of `details`.
|
||||
|
||||
## Fixed
|
||||
|
||||
- Fix spacing between article heading and description in article list if badge is present.
|
||||
|
||||
## [5.1.0](https://codeberg.org/daudix/duckquill/compare/v5.0.0...v5.1.0) - 2024-09-20
|
||||
|
||||
### Added
|
||||
|
||||
- Add support for [pagination](https://www.getzola.org/documentation/templates/pagination/) (#81).
|
||||
|
||||
### Changed
|
||||
|
||||
- Improve disabled checkbox/radio styling.
|
||||
- Increase hover scale of aside images.
|
||||
- Make the table layout automatic.
|
||||
- Rotate comment actions to the opposite direction for RTL languages.
|
||||
- Scale up the blurred article banner in article list on hover.
|
||||
- Simplify prev/next post nav styles.
|
||||
- Use decimals instead of percents (again).
|
||||
|
||||
## [5.0.0](https://codeberg.org/daudix/duckquill/compare/v4.8.0...v5.0.0) - 2024-09-18
|
||||
|
||||
### Added
|
||||
|
||||
- Add `--color-opacity` CSS variable for setting global color opacity.
|
||||
- Add `--dim-opacity` CSS variable for setting opacity of dimmed elements.
|
||||
- Add `--disabled-opacity` CSS variable for setting opacity of disabled elements.
|
||||
- Add `--hover` CSS variable for setting zoom on hover.
|
||||
- Add `--shadow-glass` CSS variable for setting shadow for glass-like elements.
|
||||
- Add `config.extra.bundled_fonts` config variable to use custom fonts instead of system (#44).
|
||||
- Add `config.extra.show_share_button` config variable for enabling share button in articles (#73).
|
||||
- Add `external` class to comment timestamp.
|
||||
- Add `external` class to footer's "Powered by" links (#80).
|
||||
- Add `h1` with page/section title by default.
|
||||
- Add ability to set accent color per page/section.
|
||||
- Add ability to set default theme per page/section.
|
||||
- Add ability to set favicon/emoji per page/section.
|
||||
- Add ability to set metadata card per page/section.
|
||||
- Add active state to footer's "Powered by" links.
|
||||
- Add active state to footnotes' go back button.
|
||||
- Add active state to slider thumb.
|
||||
- Add Bahasa Melayu translation (#78).
|
||||
- Add blurred banner to the article in list, if one is present.
|
||||
- Add fading on top/bottom of the search results container.
|
||||
- Add loading animation to "Load Comments" button.
|
||||
- Add margin between comment author name and timestamp.
|
||||
- Add missing edge highlight to active footer navbar links.
|
||||
- Add open animation to `details`.
|
||||
- Add special `switch` class for checkboxes (#70).
|
||||
- Add spoiler styles.
|
||||
- Add zoom-on-hover to custom comment emojis.
|
||||
- Return the scrollbar styling.
|
||||
- Show arrow after article heading in article list on hover.
|
||||
- Style `details` arrow.
|
||||
- Style mentions and hashtags in comments.
|
||||
- Turn "Feed" button to a dropdown if multiple feeds are available (#72).
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Change the `--active` CSS variable to include `scale()` as well.
|
||||
- **[BREAKING]** Change the way `--bg-color` CSS variable works. See [Tricks](https://duckquill.daudix.one/tricks/#background-image) page to see how to make background images work.
|
||||
- **[BREAKING]** Rename `--primary-color` CSS variable to `--accent-color`.
|
||||
- **[BREAKING]** Rename `config.extra.nav.links.sublinks` to `config.extra.nav.links.menu`
|
||||
- **[BREAKING]** Rename `config.extra.primary_color` and `config.extra.primary_color_dark` config variables to `config.extra.accent_color` and `config.extra.accent_color_dark`.
|
||||
- **[BREAKING]** Rename `config.extra.stylesheets` to `config.extra.styles`. Front matter variables are renamed as well.
|
||||
- Add font size variables for consistent typography. Like [absolute sizes](https://developer.mozilla.org/en-US/docs/Web/CSS/absolute-size) but better.
|
||||
- Allow enabling table of contents on all pages and sections except for the homepage.
|
||||
- Allow opening original comment attachment by clicking on it.
|
||||
- Allow overriding the `body` block of `base.html.
|
||||
- Allow statements on all sections except for the homepage.
|
||||
- Change the way 404 image is resized (#74).
|
||||
- Improved CRT style, now looks a lot more like [cool-retro-term](https://github.com/Swordfish90/cool-retro-term).
|
||||
- Make comment timestamp more subtle.
|
||||
- Make list numbers bold.
|
||||
- Make the copy button inactive after it is pressed until the animation is complete.
|
||||
- Move table of contents code to a partial.
|
||||
- Only allow `external` class on links.
|
||||
- Reduce the target heading transition time.
|
||||
- Reduce top margin of the target heading.
|
||||
- Remove bottom margin of `:last-child` and not `:last-of-type`.
|
||||
- Remove legacy KaTeX font variants.
|
||||
- Rewrite the homepage (#75).
|
||||
- Set animation/transition duration to 0s with `prefers-reduced-motion' instead of removing them altogether.
|
||||
- Set socials icons as CSS variables and not inline styles.
|
||||
- Show theme switcher if `config.extra.default_theme` is set, even if `config.extra.nav.show_theme_switcher` is not.
|
||||
- Tweak `kbd` styling.
|
||||
- Tweak margin/padding of lists.
|
||||
- Tweak padding of verified instance badge.
|
||||
- Use accent color for list bullets and numbers.
|
||||
- Use logical inset properties instead of `top`, `right`, `bottom`, and `left`.
|
||||
- Use more fitting cursors in some contexts.
|
||||
- Use percents instead of decimals for color opacity.
|
||||
- Use PNG instead of GIF for comments QR code to reduce download size.
|
||||
- Use relative colors for `-bg` color variants.
|
||||
- Use separator `div` instead of `::after` on the home button.
|
||||
- Use the current text color for icons instead of explicitly setting their color.
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove the `config.extra.primary_color_alpha` and `config.extra.primary_color_alpha_dark` config variables; they're now automatically generated from the accent color.
|
||||
|
||||
### Fixed
|
||||
|
||||
- `config.extra.fix_contrast_dark` should now work even if `config.extra.accent_color_dark` is not set.
|
||||
- Display pointer cursor if image is wrapped in a link.
|
||||
- Don't add `::before` pseudo element to color pickers.
|
||||
- Fix images being covered by other images in some scenarios.
|
||||
- Fix top spacing of navbar dropdowns on mobile.
|
||||
- Fix videos and iframes having rounded corners and edge highlight in fullscreen.
|
||||
- Load auto-menu-close script if navbar menus are present.
|
||||
|
||||
## [4.8.0](https://codeberg.org/daudix/duckquill/compare/v4.7.1...v4.8.0) - 2024-08-29
|
||||
|
||||
### Added
|
||||
|
||||
- Add a separator between the article description and details.
|
||||
- Highlight the button of the currently selected theme in the theme switcher.
|
||||
- Indicate active navbar items for footer links.
|
||||
- Support optional LaTeX rendering using the KaTeX library (#65).
|
||||
|
||||
### Changed
|
||||
|
||||
- Make button hover styles consistent across all buttons.
|
||||
- Make navbar modifications also affect menu buttons (#69, nice).
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove GoatCounter `noscript` tracking pixel from the `<head>` section.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix missing margin between the article card heading and its details when no description is set (#68).
|
||||
- Fix tags not floating to the end of the article card.
|
||||
|
||||
## [4.7.1](https://codeberg.org/daudix/duckquill/compare/v4.7.0...v4.7.1) - 2024-08-28
|
||||
|
||||
### Changed
|
||||
|
||||
- Don't use `safe` on `primary_color` default variables since they don't need it.
|
||||
- Make commented-out config variables easier to find.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Don't wrap sentences in navbar dropdowns.
|
||||
|
||||
## [4.7.0](https://codeberg.org/daudix/duckquill/compare/v4.6.0...v4.7.0) - 2024-08-27
|
||||
|
||||
### Added
|
||||
|
||||
- Add `banner_pixels` front matter variable.
|
||||
- Add CHANGELOG.md (#60).
|
||||
- Add hot/poor article types (#58).
|
||||
- Add metadata card generation from post banner if present (#51).
|
||||
- Add navbar menus (#56).
|
||||
- Add simple variable overrides for stylesheets (#55).
|
||||
- Add Vimeo embed shortcode.
|
||||
- Add YouTube embed shortcode (#57).
|
||||
|
||||
### Changed
|
||||
|
||||
- Don't duplicate icons in the resulting CSS.
|
||||
- Hide CRTs from screen readers (#64).
|
||||
- Move article list to a partial.
|
||||
- Reduce nesting depth in `_footer.scss`
|
||||
- Refreshed look of articles in the article list.
|
||||
- Rewrite `_nav.scss`.
|
||||
- Use flex for post heading/badge (#53).
|
||||
- Use modern RGB format (#54).
|
||||
- Use page/section description instead of config if available (#50).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Close all other navbar dropdowns when different one opens (#59).
|
||||
- New active navbar item indication that doesn't escape navbar on mobile (#62).
|
||||
- Prevent navbar from obfuscating post banner on mobile (#61).
|
||||
|
||||
## [4.6.0](https://codeberg.org/daudix/duckquill/compare/v4.5.0...v4.6.0) - 2024-08-23
|
||||
|
||||
### Added
|
||||
|
||||
- Add missing "By $AUTHOR" string to i18n files (#52).
|
||||
- Add missing edge highlight to home button.
|
||||
- Utilize flex power for navbar adaptivity.
|
||||
|
||||
### Changed
|
||||
|
||||
- Change theme switcher icon depending on currently selected mode (#48).
|
||||
- Update "Tricks" page to reflect the recent navabr changes.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix the Feed button in multilingual sites (https://codeberg.org/muelsyse/pages/issues/12).
|
||||
- Remove left/right margins from `<figure>`.
|
||||
|
||||
## [4.5.0](https://codeberg.org/daudix/duckquill/compare/v4.4.0...v4.5.0) - 2024-08-18
|
||||
|
||||
### Added
|
||||
|
||||
- Add manual light/dark mode switcher (#5).
|
||||
|
||||
### Changed
|
||||
|
||||
- Improve adaptivity of footer on mobile.
|
||||
|
||||
## [4.4.0](https://codeberg.org/daudix/duckquill/compare/v4.3.0...v4.4.0) - 2024-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- Add home icon to the home button.
|
||||
- Add top/bottom margin to inline images on mobile (#46).
|
||||
- Add unique active style for home button.
|
||||
|
||||
### Changed
|
||||
|
||||
- Greatly optimize and simplify CRT styles.
|
||||
- Improve adaptivity of navbar on mobile.
|
||||
- Use `--contrast-color` for footer's "Powered by" links.
|
||||
|
||||
## [4.3.0](https://codeberg.org/daudix/duckquill/compare/v4.2.1...v4.3.0) - 2024-08-15
|
||||
|
||||
### Added
|
||||
|
||||
- Add styling for the color picker element.
|
||||
- Add styling for the slider element.
|
||||
- Add temporary `extra.fix_contrast` and `extra.fix_contrast_dark` config variables for cases where default white color doesn't provide enough contrast, e.g. in text selection and checkboxes (#43).
|
||||
- Show status when there are no comments to load.
|
||||
|
||||
### Changed
|
||||
|
||||
- Allow custom styles to override primary color.
|
||||
- Increase fleuron size.
|
||||
- Make post tags wrap properly on mobile.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix `full_bleed` image/video shortcode variable.
|
||||
- Fix line height in footer.
|
||||
- Fix text color in search bar using User Agent color.
|
||||
|
||||
## [4.2.1](https://codeberg.org/daudix/duckquill/compare/v4.2.0...v4.2.1) - 2024-08-06
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix phantom search bar causing spaces on the sides of short navbars, even when search is disabled.
|
||||
|
||||
## [4.2.0](https://codeberg.org/daudix/duckquill/compare/v4.1.0...v4.2.0) - 2024-08-06
|
||||
|
||||
### Added
|
||||
|
||||
- Add fallback styling for code blocks if no syntax highlighting theme is specified.
|
||||
- Add support for Zola's `config.markdown.bottom_footnotes` config variable.
|
||||
- Add support for Zola's `external_links_target_blank`, `external_links_no_follow`, and `external_links_no_referrer` config variables.
|
||||
- Add support for Zola's `lazy_async_image` config variable.
|
||||
- Add title to "Copy code" button.
|
||||
- Add title to comments QR code.
|
||||
- Add titles to buttons without visible text.
|
||||
|
||||
### Changed
|
||||
|
||||
- Allow archiving pages without reasoning.
|
||||
- Allow external link icon to grow past the default size.
|
||||
- Change default primary color to slate.
|
||||
- Change padding of various elements to be pixel-perfect.
|
||||
- Don't set background on horizontal rule's fleuron.
|
||||
- Give comment author's instance badge some space to breathe.
|
||||
- Increase spacing between comment timestamp and its contents.
|
||||
- Make checkbox animation smoother.
|
||||
- Remove bottom margin from the last element inside `<details>`
|
||||
- Replace language-specific pages with symlinks (only affects Duckquill demo).
|
||||
- Use checkmark icon for verified instance badge instead of a Unicode glyph.
|
||||
- Use RTL-friendly border radius properties.
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove focused heading animation, since it was rather distracting.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix broken line height in Arabic.
|
||||
- Fix height of previous/next post navigation buttons.
|
||||
- Fix search bar getting stuck in the disabled state after reloading page with it being open.
|
||||
- Replace leftover tabi paths with Duckquill.
|
||||
|
||||
## [4.1.0](https://codeberg.org/daudix/duckquill/compare/v4.0.0...v4.1.0) - 2024-07-22
|
||||
|
||||
### Added
|
||||
|
||||
- Add "Tricks" page with some useful tips and tricks (#28).
|
||||
- Add estimated read time counter to articles (#36).
|
||||
- Allow setting different primary color for dark mode.
|
||||
- Support image/video/gif/audio attachments in comments.
|
||||
|
||||
### Changed
|
||||
|
||||
- Reduce top margin of headings.
|
||||
- Replace weird `unset` CSS keyword with values that make more sense.
|
||||
|
||||
### Removed
|
||||
|
||||
- Remove tags from the article.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix code blocks with complex settings.
|
||||
|
||||
## [4.0.0](https://codeberg.org/daudix/duckquill/compare/v3.2.1...v4.0.0) - 2024-07-20
|
||||
|
||||
### Added
|
||||
|
||||
- Add comments reloading.
|
||||
- Add GitHub-style alerts.
|
||||
- Add localization to comments QR code alt text.
|
||||
- Add minimal size for separator between home button and other links in navabr.
|
||||
- Add post banners.
|
||||
- Style more HTML elements.
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Remove description variable from `article_list.html`; simply copy-paste it outside of front matter.
|
||||
- **[BREAKING]** Some CSS variables were renamed.
|
||||
- **[BREAKING]** Some translation strings were renamed.
|
||||
- Allow all statements on regular pages; not just archive.
|
||||
- Allow navbar/footer to grow past container width.
|
||||
- Change default locale to `en_US`.
|
||||
- Countless minor style tweaks.
|
||||
- Decrease margin between icon and statement heading.
|
||||
- Display all post authors and not only first one.
|
||||
- Float tags to the right in the post card and post itself.
|
||||
- Make margins/paddings RTL-friendly.
|
||||
- Make search bar visually part of the navbar.
|
||||
- Rename some color variables.
|
||||
- Revamp copy button; instead of putting it on top of the code block, use a header with code language and copy button. It also has a nice copy animation.
|
||||
- Revamp the next/previous post nav.
|
||||
- Rewrite the demo (#27).
|
||||
- Update icons.
|
||||
- Use `:root` instead of `html` in CSS.
|
||||
- Use margins instead of untrimmed spaces.
|
||||
- Vertically center custom emojis in comments.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Disable search input until it's open; prevents ability to write inside it while it's closed.
|
||||
- Fix height of instance badge in comments.
|
||||
- Fix shadow on hover with transparent images.
|
||||
- Fix variety of a11y issues.
|
||||
- Improve compatibility with WebKit (Safari, Epiphany).
|
||||
- Make Duckquill more XHTML5 compliant (in theory).
|
||||
- Trim whitespace in more places.
|
||||
- Use button element instead of anchors, fixes keyboard navigation and other issues.
|
||||
|
||||
## [3.2.1](https://codeberg.org/daudix/duckquill/compare/v3.2.0...v3.2.1) - 2024-06-30
|
||||
|
||||
### Changed
|
||||
|
||||
- Make search bar pill shaped and same size as navbar.
|
||||
- Make statement headings use normal line height.
|
||||
- Omit old-style type attributes (`type="text/css"`).
|
||||
- Replace Django VSCode extension with Tera in "Tools Used".
|
||||
|
||||
### Fixed
|
||||
|
||||
- Add missing translation keys for search.
|
||||
|
||||
## [3.2.0](https://codeberg.org/daudix/duckquill/compare/v3.1.0...v3.2.0) - 2024-06-30
|
||||
|
||||
### Added
|
||||
|
||||
- Add search functionality (#26).
|
||||
- Allow floating images to the start/end of a paragraph.
|
||||
- Allow making images full-bleed, useful for article banners.
|
||||
- Make accordion slimmer.
|
||||
- Make headings slimmer.
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Raise the minimal Zola version to v0.19.0.
|
||||
- Make link underlines consistent across browsers.
|
||||
- Replace all `px` values with `rem` for better responsiveness. E.g the whole UI can be scaled by just changing HTML font size.
|
||||
- Tone down the inline code element and checkbox outline.
|
||||
|
||||
## [3.1.0](https://codeberg.org/daudix/duckquill/compare/v3.0.0...v3.1.0) - 2024-06-27
|
||||
|
||||
### Added
|
||||
|
||||
- **[BREAKING]** Add support for multiple feeds introduced in Zola v0.19 (breaks support with Zola v0.18 and lower).
|
||||
- Add language meta tag.
|
||||
- Allow making posts featured.
|
||||
- Support Markdown in copyright text.
|
||||
- Support Zola's `updated` front matter variable.
|
||||
|
||||
### Changed
|
||||
|
||||
- Add edge highlight to `details`.
|
||||
- Don't use `span` for post edit time.
|
||||
- Improve favicon and scripts loading logic.
|
||||
- Make inline code smaller to better match height of regular text.
|
||||
- Recolor headings of drafted and archived posts in posts list.
|
||||
- Recolor links in the statements.
|
||||
- Simplify design of drafted posts.
|
||||
- Use default line height for headings.
|
||||
|
||||
### Removed
|
||||
|
||||
- **[BREAKING]** Get rid of the `config.extra.animated_favicon` variable in favor of APNG animated favicon if needed.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Prevent previous/next post buttons' text being too close to each other.
|
||||
|
||||
## [3.0.0](https://codeberg.org/daudix/duckquill/compare/v2.1.0...v3.0.0) - 2024-06-20
|
||||
|
||||
### Added
|
||||
|
||||
- Add "open post" button to comments.
|
||||
- Add external link icon to buttons that lead to external sites.
|
||||
- Add i18n support (#24).
|
||||
- Add language switcher menu in the navbar (enabled automatically if site is available in more than one language).
|
||||
- Allow adding per-page/section stylesheets via the `extra.stylesheets` variable.
|
||||
- Allow setting custom copyright text via the new `config.extra.footer.copyright` config variable.
|
||||
- Button-like style for footer's "Powered by" links.
|
||||
- Smart syntax highlighting theme loading.
|
||||
|
||||
### Changed
|
||||
|
||||
- Change the look and structure of footer links.
|
||||
- Make dialog buttons use `div` element instead of `p`.
|
||||
- Make footer background-less.
|
||||
- Make styles more consistent and adaptive (replace some pixel-based values with rem).
|
||||
- Make styles work with RTL languages.
|
||||
- Rewrite additional stylesheets loading logic.
|
||||
- Simplify some unnecessarily complex styles.
|
||||
- Transition properties have been simplified. The previous approach didn't have any benefits but did cause pain.
|
||||
- Tweak padding and spacing of elements; now everything should be pixel-perfect and more well-spaced.
|
||||
|
||||
### Removed
|
||||
|
||||
- **[BREAKING]** Get rid of `config.extra.date_format` and `config.extra.comments.locale` and replace it
|
||||
- Remove some leftover code.
|
||||
with `date_format` and `date_locale` inside translation files.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Add missing labels to some elements.
|
||||
- Fix images with `transparent` class having shadow on hover.
|
||||
- Fix the anchor link not being keyboard-accessible.
|
||||
|
||||
## [2.1.0](https://codeberg.org/daudix/duckquill/compare/v2.0.0...v2.1.0) - 2024-06-13
|
||||
|
||||
### Added
|
||||
|
||||
- Add active navbar link indicator.
|
||||
- Add background color to tables.
|
||||
- Add custom focus indicator.
|
||||
- Add pretty text wrap.
|
||||
- Add section pointing out to Duckquill assets source.
|
||||
- Add section with tools used to create Duckquill.
|
||||
- Style checkboxes and radios.
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Decouple `--primary-color` tint from `--bg-color`.
|
||||
- **[BREAKING]** Drop support for johnvertisements as it's out of scope and can be added back easily.
|
||||
- Improve a11y and keyboard navigation.
|
||||
- Make `source_url` and `issues_url` config variables optional and adapt content if they're not set.
|
||||
- Make active header animation less annoying (don't animate to bold).
|
||||
- Make blockquotes rounded again.
|
||||
- Update the metadata card.
|
||||
- Use `article` element in `article.html`.
|
||||
- Use CSS masks instead of putting SVGs directly into templates.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix "Skip to main content" button preventing clicking on the navbar items on mobile.
|
||||
- Fix active state transition for footer socials.
|
||||
- Fix the verified checkmark in comments render as emoji.
|
||||
|
||||
## [2.0.0](https://codeberg.org/daudix/duckquill/compare/v1.1.0...v2.0.0) - 2024-05-20
|
||||
|
||||
### Added
|
||||
|
||||
- Add [EditorConfig](https://editorconfig.org) (again).
|
||||
- Add ability to style images via the URL.
|
||||
- Add default value for the comments locale setting.
|
||||
- Add emoji "font" and use it on body.
|
||||
- Add optional copy code button.
|
||||
- Add optional Goatcounter analytics support.
|
||||
- Add proper support for heading anchors.
|
||||
- Add support for links and socials in footer.
|
||||
- Add top margin to [Johnvertisement](https://john.citrons.xyz).
|
||||
|
||||
### Changed
|
||||
|
||||
- **[BREAKING]** Initial Sass refactoring.
|
||||
- **[BREAKING]** Remove the unused `--transition-bezier` CSS variable.
|
||||
- **[BREAKING]** Rename `--content-width` CSS variable to `--container-width`.
|
||||
- **[BREAKING]** Rename `blog.html` and `blog_list.html` templates to `article.html` and `article_list.html` respectively.
|
||||
- Adjust line height of headings.
|
||||
- Change disclaimer heading from plural to singular.
|
||||
- Fancier horizontal rule.
|
||||
- Improve the look of drafted post entries.
|
||||
- Make more elements respect root `font-size`.
|
||||
- Make the navbar non-mandatory (useful for single-page websites).
|
||||
- More fail-proof "reduced motion" setting.
|
||||
- Move `prefers-reduced-motion` media query outside of the `:root`.
|
||||
- Only target needed elements for transitioning.
|
||||
- Provide all fonts from [Modern Font Stacks](https://modernfontstacks.com) (don't worry, these are just system font names).
|
||||
- Simplify `bg-color` variable.
|
||||
- Tweak active header animation.
|
||||
- Tweak heading sizes.
|
||||
|
||||
### Removed
|
||||
|
||||
- **[BREAKING]** Get rid of page/site links and replace with `external` class.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix long post title sneaking under the archived/drafted post badge (#23).
|
||||
- Fix the image shortcode having the source link not working.
|
||||
|
||||
## [1.1.0](https://codeberg.org/daudix/duckquill/compare/v1.0.1...v1.1.0) - 2024-04-29
|
||||
|
||||
### Added
|
||||
|
||||
- Add drafted and archived badges in the blog list.
|
||||
- Add Duckquill version to the stylesheet.
|
||||
- Add some bare-bones configuration in `theme.toml` (fixes failing build with empty user config).
|
||||
- Introduce a new configuration variable, `extra.comments.locale`; used for defining comment timestamp locale.
|
||||
|
||||
### Changed
|
||||
|
||||
- Change archived icon from warning to archive.
|
||||
- Change trigger warning/disclaimer warning icon to bigger, filled one.
|
||||
- Get rid of transparency and roundness in apple-touch-icon (as recommended by Apple).
|
||||
- Improve code comments in the config.
|
||||
- Remove ellipsis form the "Load Comments" button in the comments section.
|
||||
- Update copyright year.
|
||||
- Update project logo, favicon and metadata card.
|
||||
- Use [normalize.css](https://github.com/csstools/normalize.css) by csstools.
|
||||
- Use `get_url` for code highlighting stylesheets.
|
||||
|
||||
### Removed
|
||||
|
||||
- **[BREAKING]** Remove support for per-page/section emoji favicon.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix code block `mark` element having an edge highlight.
|
||||
- Fix code blocks having every other line being darker in some complex cases.
|
||||
- Fix emoji favicon being cut-off.
|
||||
|
||||
## [1.0.1](https://codeberg.org/daudix/duckquill/compare/v1.0.0...v1.0.1) - 2024-04-05
|
||||
|
||||
### Changed
|
||||
|
||||
- Improve comment interactions animation and color (now same as in [Tuba](https://tuba.geopjr.dev)).
|
||||
- Make blockquote corners sharp.
|
||||
- Rewrite README; based on [libreivan's one](https://codeberg.org/libreivan/libreivan.com/src/branch/main/README.md)
|
||||
- Switch from milliseconds to seconds for transitions and animations.
|
||||
- Use button style for issue reporting link on 404.
|
||||
- Use warning icon for statements instead of Unicode glyph, this should make it look better no matter what font the system uses (archived, trigger warning, disclaimer).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fix capitalization of buttons.
|
||||
- Revert 2006d69bd4 since it broke "Go to Top" among others.
|
||||
|
||||
## [1.0.0](https://codeberg.org/daudix/duckquill/compare/940c84f4ee...v1.0.0) - 2024-04-03
|
||||
|
||||
Initial release.
|
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024-2025 David "Daudix" Lapshin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
40
README.md
Normal file
40
README.md
Normal file
@ -0,0 +1,40 @@
|
||||
[](https://nogithub.codeberg.page)
|
||||
[](https://mit-license.org)
|
||||
[](https://ci.codeberg.org/repos/13032)
|
||||
|
||||
# [Duckquill](https://duckquill.daudix.one)
|
||||
|
||||
Duckquill is an opinionated, modern, pretty, and clean [Zola](https://www.getzola.org) theme that has the purpose of greatly simplifying the process of rolling up your blog. It aims to provide all the necessary options for comfortable writing, while keeping the balance of simplicity.
|
||||
|
||||

|
||||
|
||||
## Docs
|
||||
|
||||
Docs are provided in form of a [live demo](https://duckquill.daudix.one).
|
||||
|
||||
## Know your rights
|
||||
|
||||
This project is under the MIT license:
|
||||
|
||||
- **Freedom to Use**: You have the right to use the software for any purpose, whether it's personal, academic, or commercial.
|
||||
- **Freedom to Modify**: You can modify the source code of the software to suit your needs or preferences.
|
||||
- **Freedom to Distribute**: You have the right to distribute the software, whether in its original form or modified, to others.
|
||||
- **Collaboration**: You can collaborate with others on the software's development and improvement.
|
||||
- **No License Compatibility Issues**: You can combine the MIT-licensed software with other software, even if they use different licenses.
|
||||
- **No Usage Restrictions**: There are no restrictions on the technologies or fields of use, giving you maximum flexibility.
|
||||
- **No Royalties**: You are not required to pay any royalties or fees for using, modifying, or distributing the software.
|
||||
|
||||
## Contributing guidelines
|
||||
|
||||
There are several ways to contribute to this project:
|
||||
|
||||
- Reporting issues
|
||||
- Discussing potential improvements
|
||||
- Contributing code
|
||||
- Writing documentation
|
||||
- Submitting feature requests
|
||||
- Providing feedback
|
||||
|
||||
When making any sort of contribution, please make sure to follow [Forgejo's Code of Conduct](https://codeberg.org/forgejo/code-of-conduct). If you don't have the time to read it, just know that all you have to do is be nice, and you'll be just fine.
|
||||
|
||||
*</> with <3 by [daudix](https://daudix.one) | README based on [libreivan's](https://codeberg.org/libreivan/libreivan.com)*
|
265
config.toml
Normal file
265
config.toml
Normal file
@ -0,0 +1,265 @@
|
||||
title = "Duckquill"
|
||||
base_url = "https://duckquill.daudix.one"
|
||||
description = "Opinionated, modern, pretty, and clean Zola theme."
|
||||
|
||||
compile_sass = true
|
||||
minify_html = true
|
||||
generate_feeds = true
|
||||
# Only the first file will be used in the navbar feed button,
|
||||
# other feeds will still be available in page's head.
|
||||
feed_filenames = ["rss.xml", "atom.xml"]
|
||||
build_search_index = true
|
||||
author = "Duck Quack"
|
||||
|
||||
# Based on https://github.com/welpo/tabi
|
||||
#
|
||||
# To translate the entire theme, there must be a file with the same ISO 639-1 or BCP 47
|
||||
# language code in the `i18n` directory of your site or the Duckquill theme.
|
||||
# For example, "i18n/fr.toml" for French or "i18n/zh-Hans.toml" for Simplified Chinese.
|
||||
# Otherwise the theme will be in English.
|
||||
#
|
||||
# ISO 639-1: https://localizely.com/iso-639-1-list/
|
||||
# BCP 47: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
|
||||
default_language = "en"
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
highlight_theme = "css"
|
||||
highlight_themes_css = [
|
||||
{ theme = "solarized-dark", filename = "syntax-theme-dark.css" },
|
||||
{ theme = "solarized-light", filename = "syntax-theme-light.css" }
|
||||
]
|
||||
smart_punctuation = true
|
||||
bottom_footnotes = true
|
||||
|
||||
[search]
|
||||
# index_format = "elasticlunr_json"
|
||||
index_format = "fuse_json"
|
||||
|
||||
[languages.ar]
|
||||
title = "Duckquill"
|
||||
description = "سمة زولا العصرية والحديثة والجميلة والنظيفة."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[languages.es]
|
||||
title = "Duckquill"
|
||||
description = "Tema Zola de opinión, moderno, bonito y limpio."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[languages.fr]
|
||||
title = "Duckquill"
|
||||
description = "Un thème affirmé, moderne, beau et clair pour Zola."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
|
||||
[languages.ms]
|
||||
title = "Duckquill"
|
||||
description = "Tema Zola yang berpandangan, moden, cantik dan bersih."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[languages.ru]
|
||||
title = "Duckquill"
|
||||
description = "Мнимая, современная, симпатичная, и аккуратная тема Zola."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[languages.fa]
|
||||
title = "Duckquill"
|
||||
description = "پوسته ای صاحب نظر، بهروز، زیبا و تمیز برای Zola."
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[languages.zh-Hans]
|
||||
title = "Duckquill"
|
||||
description = "有主见、现代、漂亮、简洁的 Zola 主题。"
|
||||
generate_feeds = true
|
||||
|
||||
taxonomies = [{ name = "tags", feed = true }]
|
||||
|
||||
[extra]
|
||||
# Which theme should be used by default (light/dark).
|
||||
#
|
||||
# default_theme = "dark"
|
||||
#
|
||||
# Sets theme and browser theme color.
|
||||
# See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name/theme-color
|
||||
accent_color = "#ff7800"
|
||||
# Ditto but for the dark theme.
|
||||
# If not set regular variant will be used.
|
||||
accent_color_dark = "#ffa348"
|
||||
# Whether to use fonts bundled with Duckquill instead of system ones.
|
||||
# Keep in mind that it also changes the style of headings.
|
||||
#
|
||||
# bundled_fonts = true
|
||||
#
|
||||
# Use emoji as a favicon.
|
||||
# Only one emoji is being rendered, everything else is truncated.
|
||||
#
|
||||
# emoji_favicon = "🦆🪶"
|
||||
#
|
||||
# URL to website's issue tracker
|
||||
issues_url = "https://codeberg.org/daudix/duckquill/issues"
|
||||
# URL to website's source code
|
||||
source_url = "https://codeberg.org/daudix/duckquill"
|
||||
# Additional CSS styles; expects them to be in the "./static/" directory.
|
||||
# If you are using Sass it will be generated there automatically.
|
||||
#
|
||||
# styles = [
|
||||
# "YOUR_STYLE.css",
|
||||
# "ALSO_YOUR_STYLE.css"
|
||||
# ]
|
||||
#
|
||||
# Additional JavaScript scripts; expects them to be in the "./static/" directory.
|
||||
#
|
||||
# scripts = [
|
||||
# "YOUR_SCRIPT.js",
|
||||
# "ALSO_YOUR_SCRIPT.js"
|
||||
# ]
|
||||
#
|
||||
# Whether to show "copy code" button on all code blocks
|
||||
# that have the language set.
|
||||
# See https://www.getzola.org/documentation/content/syntax-highlighting/
|
||||
show_copy_button = true
|
||||
# Whether to show estimated read time in posts.
|
||||
show_reading_time = true
|
||||
#
|
||||
# Whether to show a share button in article's quick actions.
|
||||
# Uses https://shareopenly.org.
|
||||
show_share_button = true
|
||||
# Whether to show the backlinks button for linked articles in the article's quick actions
|
||||
show_backlinks = true
|
||||
# Whether to enable the KaTeX library for rendering LaTeX.
|
||||
# Note: This will make your page significantly heavier.
|
||||
# Instead, consider enabling it per page/section.
|
||||
# katex = true
|
||||
#
|
||||
# Whether to render table of contents on all pages.
|
||||
# Will not be rendered if page doesn't have any headings.
|
||||
# Can be set per page/section.
|
||||
# toc = true
|
||||
#
|
||||
# Whether to render inline table of contents at the top of all pages,
|
||||
# in addition to floating quick navigation buttons.
|
||||
# Can be set per page/section.
|
||||
# toc_inline = true
|
||||
#
|
||||
# Whether to use numbered (ordered) list for table of contents.
|
||||
# Can be set per page/section.
|
||||
# toc_ordered = true
|
||||
#
|
||||
# Custom separator used across the theme.
|
||||
# separator = "•"
|
||||
# Custom separator used in title tag and posts metadata.
|
||||
# title_separator = "-"
|
||||
#
|
||||
# Whether to use Content Security Policy.
|
||||
# Keep in mind that although this can potentially increase security,
|
||||
# it can break some stuff, in which case you will need to set custom policy.
|
||||
csp = [
|
||||
{ directive = "font-src", domains = ["'self'"] },
|
||||
{ directive = "img-src", domains = ["'self'", "https:", "data:"] },
|
||||
{ directive = "media-src", domains = ["'self'", "https:"] },
|
||||
{ directive = "script-src", domains = ["'self'"] },
|
||||
{ directive = "style-src", domains = ["'self'", "'unsafe-inline'"] },
|
||||
{ directive = "frame-src", domains = ["https://player.vimeo.com", "https://www.youtube-nocookie.com", "https://toot.community"] },
|
||||
{ directive = "connect-src", domains = ["https://toot.community"] },
|
||||
{ directive = "base-uri", domains = ["'none'"] },
|
||||
{ directive = "form-action", domains = ["'none'"] }
|
||||
]
|
||||
# Uncomment this to disable the card displayed in share previews
|
||||
# card = false
|
||||
|
||||
[extra.nav]
|
||||
# Whether to automatically hide nav when not hovered or focused
|
||||
# auto_hide = true
|
||||
# Whether to show the Atom/RSS feed button in the nav
|
||||
show_feed = true
|
||||
# Whether to show the manual theme switcher in the nav
|
||||
show_theme_switcher = true
|
||||
# Whether to show the link to the source repository in the nav
|
||||
show_repo = true
|
||||
# Links used in the nav.
|
||||
# For local files use same link format as in Markdown,
|
||||
# i.e. "@/blog/_index.md".
|
||||
# See https://www.getzola.org/documentation/content/linking/#internal-links
|
||||
links = [
|
||||
{ name = "Links", menu = [
|
||||
{ url = "@/blog/_index.md", name = "Blog" },
|
||||
{ url = "@/demo/index.md", name = "Demo" },
|
||||
{ url = "@/mods/index.md", name = "Mods" }
|
||||
] },
|
||||
{ url = "https://daudix.one/coffee/", name = "Coffee" }
|
||||
]
|
||||
|
||||
[extra.footer]
|
||||
# Links used in the footer.
|
||||
# Same as the nav ones.
|
||||
links = [
|
||||
{ url = "@/blog/_index.md", name = "Blog" },
|
||||
{ url = "@/demo/index.md", name = "Demo" },
|
||||
{ url = "@/mods/index.md", name = "Mods" },
|
||||
{ url = "https://daudix.one/coffee/", name = "Coffee" }
|
||||
]
|
||||
# Social links in the footer.
|
||||
# Any URL-encoded SVG can be used as an icon.
|
||||
# https://simpleicons.org is the recommended source of SVG icons.
|
||||
# For URL encoding use https://yoksel.github.io/url-encoder/.
|
||||
# Make sure that "external quotes" are set to "double".
|
||||
socials = [
|
||||
{ url = "https://github.com", name = "GitHub", icon = "%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EGitHub%3C/title%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E" },
|
||||
{ url = "https://instagram.com", name = "Instagram", icon = "%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EInstagram%3C/title%3E%3Cpath d='M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077'/%3E%3C/svg%3E" },
|
||||
{ url = "https://mastodon.social", name = "Mastodon", icon = "%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EMastodon%3C/title%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E" },
|
||||
{ url = "https://twitter.com", name = "Twitter", icon = "%3Csvg role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3ETwitter%3C/title%3E%3Cpath d='M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148 13.98 13.98 0 0 0 11.82 8.292a4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z'/%3E%3C/svg%3E" }
|
||||
]
|
||||
# Whether to show "© Title, YEAR"
|
||||
show_copyright = true
|
||||
# Whether to show "Powered by Zola and Duckquill"
|
||||
show_powered_by = true
|
||||
# Whether to show link to website source
|
||||
show_source = false
|
||||
# Custom copyright text
|
||||
#
|
||||
# copyright = "© *Aperture* **Science** ~~Innovators~~, `1972`"
|
||||
|
||||
# Based on https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/
|
||||
#
|
||||
# Mastodon-powered commenting.
|
||||
# Values can be overridden in the front-matter, e.g.
|
||||
# for multi-author blogs or guest posts.
|
||||
#
|
||||
# These variables are also used for Mastodon verification,
|
||||
# the needed rel="me" link is set in the head based on these.
|
||||
[extra.comments]
|
||||
# Your Mastodon API host; instance that you have an account on.
|
||||
host = "vmst.io"
|
||||
# Your Mastodon username; used to determine who the original poster is.
|
||||
user = "daudix"
|
||||
# Whether to show the QR code to Mastodon post
|
||||
show_qr = true
|
||||
|
||||
# GoatCounter analytics; enabled only if present in config.
|
||||
[extra.goatcounter]
|
||||
# Your GoatCounter server; goatcounter.com is used by default.
|
||||
#
|
||||
# host = "YOUR_SERVER"
|
||||
#
|
||||
# Your GoatCounter username
|
||||
user = "duckquill"
|
||||
|
||||
[extra.debug]
|
||||
# Display outlines around all elements for debugging purposes
|
||||
layout = false
|
||||
# Don't load any styles for debugging purposes
|
||||
no_styles = false
|
1
content/_index.ar.md
Symbolic link
1
content/_index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/_index.es.md
Symbolic link
1
content/_index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/_index.fa.md
Symbolic link
1
content/_index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/_index.fr.md
Symbolic link
1
content/_index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
302
content/_index.md
Normal file
302
content/_index.md
Normal file
@ -0,0 +1,302 @@
|
||||
+++
|
||||
insert_anchor_links = "left"
|
||||
title = "Home"
|
||||
+++
|
||||
|
||||
{% crt() %}
|
||||
```
|
||||
_ _ _ _ _
|
||||
>(')____, >(')____, >(')____, >(')____, >(') ___,
|
||||
(` =~~/ (` =~~/ (` =~~/ (` =~~/ (` =~~/
|
||||
jgs~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~^`---'~^~^~
|
||||
```
|
||||
{% end %}
|
||||
|
||||
# Duckquill
|
||||
|
||||
Duckquill is an opinionated, modern, pretty, and clean [Zola](https://www.getzola.org) theme that has the purpose of greatly simplifying the process of rolling up your blog. It aims to provide all the necessary options for comfortable writing, while keeping the balance of simplicity.
|
||||
|
||||
With it, you can change some configuration variables, tweak some of the included graphics, and have a nice blog up in minutes!
|
||||
|
||||
Some of the features Duckquill has to offer:
|
||||
|
||||
- Cute and informative social media cards for Discourse, Facebook, LinkedIn, Mastodon and more.
|
||||
- [Mastodon-powered comments](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/); comment under a post by using your Mastodon account.
|
||||
- Lightweight by default, powerful when needed; no mandatory JavaScript is used by default.
|
||||
- Privacy respecting analytics using [GoatCounter](https://www.goatcounter.com), with support for self-hosting.
|
||||
- Estimated read time of the post; put away those with short attention spans.
|
||||
- Light/dark/system theme switcher (for some reason everyone likes these).
|
||||
- Everything is tinted with the user-defined accent color for a pleasant look.
|
||||
- GitHub-style alerts. Yes, they're pretty, but don't overuse them.
|
||||
- Post banners; they're even used in the social media cards!
|
||||
- YouTube/Vimeo shortcodes for easy video embedding.
|
||||
- Tiny by default; only ~100kB. Take that, 5MB Medium!
|
||||
- Customizable copyright text; you Better Quack Soul!
|
||||
- Image styling via URL. Yes, you read that right.
|
||||
- Useless CRT style that everyone seems to like.
|
||||
- Fully localizeable, worry not, [it's pretty easy](#localization).
|
||||
- Social links in the footer, with special styling.
|
||||
- LaTeX markup support via the [KaTeX](https://katex.org) library.
|
||||
- Emoji favicon if you're lazy to draw one.
|
||||
- Copy button for code blocks.
|
||||
- Search functionality.
|
||||
|
||||
{% alert(tip=true) %}
|
||||
If you use Duckquill and enjoy it, or just like my work, please consider [buying me a coffee](https://daudix.one/coffee/), it would mean the world to me ^^.
|
||||
{% end %}
|
||||
|
||||
## Installation
|
||||
|
||||
First, if you already have Git setup, add this theme as a submodule:
|
||||
|
||||
```bash
|
||||
git submodule init
|
||||
git submodule add https://codeberg.org/daudix/duckquill.git themes/duckquill
|
||||
```
|
||||
|
||||
Otherwise, simply clone it to your `themes` directory:
|
||||
|
||||
```bash
|
||||
git clone https://codeberg.org/daudix/duckquill.git themes/duckquill
|
||||
```
|
||||
|
||||
{% alert(important=true) %}
|
||||
It is highly recommended to switch from the `main` branch to the latest release:
|
||||
{% end %}
|
||||
|
||||
```bash
|
||||
cd themes/duckquill
|
||||
git checkout tags/v6.3.0
|
||||
```
|
||||
|
||||
Then, enable it in your `config.toml`:
|
||||
|
||||
```toml
|
||||
theme = "duckquill"
|
||||
```
|
||||
|
||||
To update the theme, simply switch to a new tag:
|
||||
|
||||
```bash
|
||||
git submodule update --remote --merge
|
||||
cd themes/duckquill
|
||||
git checkout tags/v6.3.0
|
||||
```
|
||||
|
||||
{% alert(important=true) %}
|
||||
Check the changelog for all versions after the one you are using; there may be breaking changes that require manual involvement.
|
||||
{% end %}
|
||||
|
||||
## Options
|
||||
|
||||
Duckquill offers some configuration options to make it fit you better; most options have pretty descriptive comments, so it should be easy to understand what they do.
|
||||
|
||||
## Front Matter
|
||||
|
||||
Duckquill has some [front matter](https://www.getzola.org/documentation/content/page/#front-matter) variables that you can use by setting them in the `[extra]` section:
|
||||
|
||||
### Global
|
||||
|
||||
Configuration variables from `config.toml` that can be set/overriden per page/section:
|
||||
|
||||
- `default_theme`: Which theme should be used by default (light/dark).
|
||||
- `accent_color`: Sets theme and [browser theme](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name/theme-color) color.
|
||||
- `accent_color_dark`: Ditto but for the dark theme. If not set regular variant will be used.
|
||||
- `emoji_favicon`: Use emoji as a favicon. Only one emoji is being rendered, everything else is truncated.
|
||||
- `styles`: Additional CSS styles; expects them to be in the `./static/` directory. If you are using Sass it will be generated there automatically.
|
||||
- `scripts`: Additional JavaScript scripts; expects them to be in the `./static/` directory.
|
||||
- `katex`: Whether to enable the KaTeX library for rendering LaTeX.
|
||||
- `toc`: Enables table of contents. Only first 2 levels of headings are listed.
|
||||
- `toc_inline`: Whether to render inline table of contents at the top of all pages, in addition to floating quick navigation buttons.
|
||||
- `toc_ordered`: Whether to use numbered (ordered) list for table of contents.
|
||||
- `toc_sidebar`: Whether to display table of contents as a sidebar (useful for long pages).
|
||||
- `card`: When set to `false` disables share preview cards globally.
|
||||
|
||||
Other variables:
|
||||
|
||||
- `apple_touch_icon`: Filename of the [colocated](https://www.getzola.org/documentation/content/overview/#asset-colocation) Apple Touch Icon.
|
||||
- `favicon`: Filename of the [colocated](https://www.getzola.org/documentation/content/overview/#asset-colocation) favicon.
|
||||
- `card`: Filename of the [colocated](https://www.getzola.org/documentation/content/overview/#asset-colocation) metadata card.
|
||||
- `archive`: Displays an archived message.
|
||||
- `trigger`: Displays a trigger warning message.
|
||||
- `disclaimer`: Displays a disclaimer message.
|
||||
- `go_to_top`: Displays a "go to top" button.
|
||||
|
||||
### Blog post specific:
|
||||
|
||||
- `banner`: Filename of the [colocated](https://www.getzola.org/documentation/content/overview/#asset-colocation) banner image. Recommended dimensions are 2:1 aspect ratio and 1920x960 resolution.
|
||||
- `banner_pixels` Makes the banner use nearest neighbor algorithm for scaling, useful for keeping pixel-art sharp.
|
||||
- `archived`: Make the post visually stand out in the post list. Also accepts message as a value.
|
||||
- `featured`: Ditto but doesn't accept message as a value.
|
||||
- `hot`: Ditto.
|
||||
- `poor`: Ditto.
|
||||
|
||||
In `[extra.comments]` section:
|
||||
|
||||
- `host`: The Mastodon server on which the post was posted.
|
||||
- `user`: The username of the poster.
|
||||
- `id`: ID of the post; the one in the URL.
|
||||
|
||||
### Localization
|
||||
|
||||
Duckquill ships with a localization system based on one used in [tabi](https://github.com/welpo/tabi), it's very easy to use and quite flexible at the same time.
|
||||
|
||||
To add a translation, simply create a file in your site's `i18n` directory called `LANG_CODE.toml`, e.g `fr.toml`. The language code should be either [ISO 639-1](https://localizely.com/iso-639-1-list/) or [BCP 47](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry).
|
||||
|
||||
Inside that file, copy-paste one of the existing translations from Duckquill and adapt it to your needs. You can also check [tabi](https://github.com/welpo/tabi/tree/main/i18n) translation files for reference.
|
||||
|
||||
Additionally to translating Duckquill, you can also override the English stings by copy-pasting `en.toml` from Duckquill to the `i18n` directory of your website and adjusting the values to your liking.
|
||||
|
||||
### Custom Styles
|
||||
|
||||
To add your own or override existing styles, create a custom style and add it in the `config.toml`:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
styles = [
|
||||
"YOUR_STYLE.css",
|
||||
"ALSO_YOUR_STYLE.css"
|
||||
]
|
||||
```
|
||||
|
||||
Additional styles are expected it to be in the `static` directory. If you are using Sass they will be compiled there by default.
|
||||
|
||||
If for some reason overridden style is not respected, try using `!important` (don't use it unless needed). You can import styles from Duckquill using:
|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/NEEDED_FILE.scss";
|
||||
```
|
||||
|
||||
You can also load styles per page/section by setting them inside page's front matter:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
styles = [
|
||||
"YOUR_PAGE_STYLE.css"
|
||||
]
|
||||
```
|
||||
|
||||
### Accent Color
|
||||
|
||||
Duckquill respects chosen accent color everywhere. To use your own, simply change it in `config.toml`:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
accent_color = "#3584e4"
|
||||
```
|
||||
|
||||
Additionally, you can set a separate color for dark mode:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
accent_color_dark = "#ff7800"
|
||||
```
|
||||
|
||||
### Favicon
|
||||
|
||||
Files named `favicon.png` and `apple-touch-icon.png` are used as favicon and Apple Touch Icon respectively. For animated favicon you can use APNG with the `png` file extension.
|
||||
|
||||
## In the Wild
|
||||
|
||||
<details>
|
||||
<summary>This list is starting to get long, so click on it to expand it.</summary>
|
||||
|
||||
- [agustinramirodiaz.github.io](https://agustinramirodiaz.github.io)
|
||||
- [alavi.me](https://alavi.me)
|
||||
- [aparoksha.dev](https://www.aparoksha.dev)
|
||||
- [arfh.pages.dev](https://arfh.pages.dev)
|
||||
- [bambalabs.co](https://www.bambalabs.co)
|
||||
- [bano.dev](https://bano.dev)
|
||||
- [benjaminandre.be](https://benjaminandre.be)
|
||||
- [blog.digital-horror.co](https://blog.digital-horror.com)
|
||||
- [blog.millefeuille42.fr](https://blog.millefeuille42.fr)
|
||||
- [blog.pansi21.xyz](https://blog.pansi21.xyz)
|
||||
- [blog.thundernetwork.org](https://blog.thundernetwork.org)
|
||||
- [cabysm.github.io](https://cabysm.github.io)
|
||||
- [daveparr.info](https://www.daveparr.info)
|
||||
- [davepoltorak.com](https://davepoltorak.com)
|
||||
- [drismir.ca](https://drismir.ca)
|
||||
- [enriquekesslerm.com](https://enriquekesslerm.com)
|
||||
- [gregorni.gitlab.io](https://gregorni.gitlab.io)
|
||||
- [harrypotterexplained.com](http://harrypotterexplained.com)
|
||||
- [hyouteki.github.io](https://hyouteki.github.io)
|
||||
- [ikergimenez.neocities.org](https://ikergimenez.neocities.org)
|
||||
- [kaipeacock.com](https://kaipeacock.com)
|
||||
- [larrabyte.dev](https://larrabyte.dev)
|
||||
- [lifailon.github.io](https://lifailon.github.io)
|
||||
- [luciengheerbrant.com](https://luciengheerbrant.com)
|
||||
- [lukoktonos.com](http://www.lukoktonos.com)
|
||||
- [matteorisso.github.io](https://matteorisso.github.io)
|
||||
- [maxffarrell.com](https://maxffarrell.com)
|
||||
- [maxime.letemple.fr](https://maxime.letemple.fr)
|
||||
- [mourelask.xyz](https://mourelask.xyz)
|
||||
- [muelsyse.codeberg.page](https://muelsyse.codeberg.page)
|
||||
- [mukuljoshi.xyz](https://mukuljoshi.xyz)
|
||||
- [nbenedek.me](https://nbenedek.me)
|
||||
- [nikos-archive.org](https://nikos-archive.org)
|
||||
- [nisf.be](https://nisf.be)
|
||||
- [nullpuppy.github.io](https://nullpuppy.github.io)
|
||||
- [nutn-isc.gitlab.io](https://nutn-isc.gitlab.io/nutn-isc-website/)
|
||||
- [orzklv.uz](https://orzklv.uz)
|
||||
- [penandink.work](https://penandink.work)
|
||||
- [pyter.at](https://pyter.at)
|
||||
- [reallysimple.io](https://www.reallysimple.io)
|
||||
- [rerere.unlogic.co.uk](https://rerere.unlogic.co.uk)
|
||||
- [rossjr.dev](https://rossjr.dev)
|
||||
- [samienr.com](https://samienr.com)
|
||||
- [shrimple.srht.site](https://shrimple.srht.site)
|
||||
- [siddharthsabron.in](https://siddharthsabron.in)
|
||||
- [sorg.codeberg.page](https://sorg.codeberg.page)
|
||||
- [sungsphinx.codeberg.page](https://sungsphinx.codeberg.page)
|
||||
- [tmblog.pages.dev](https://tmblog.pages.dev)
|
||||
- [treeniks.github.io](https://treeniks.github.io)
|
||||
- [vegner.io](https://vegner.io)
|
||||
- [voluxyy.github.io](https://voluxyy.github.io/portfolio/)
|
||||
- [winnydows.com](https://winnydows.com)
|
||||
- [zlog.si-on.top](https://zlog.si-on.top)
|
||||
- [zstg.is-a.dev](https://zstg.is-a.dev)
|
||||
- [琳.tw](https://xn--jgy.tw/)
|
||||
- Yours? <small>(feel free to [contact me](https://daudix.one/find/#contacts) or send a pull request)</small>
|
||||
|
||||
</details>
|
||||
|
||||
## In Credits
|
||||
|
||||
- [andreatitolo.com](https://www.andreatitolo.com/credits)
|
||||
- [aplos.gxbs.me](https://aplos.gxbs.me)
|
||||
- [archaeoramblings.com](https://www.archaeoramblings.com/credits)
|
||||
- [oomfie.town](https://oomfie.town/credits)
|
||||
|
||||
## Assets Sources
|
||||
|
||||
All sources for Duckquill's assets are available [here](https://codeberg.org/daudix/archive/src/branch/main/duckquill/src) and licensed under CC BY-SA 4.0. The reason for not putting the sources in the same repo as Duckquill itself is simple: I want it to be as small as possible, so that repo cloning is fast and doesn't make the site significantly heavier; this is also why the demo uses remote images instead of local copies.
|
||||
|
||||
## Credits
|
||||
|
||||
- [Quill image used in the metadata card](https://commons.wikimedia.org/wiki/File:3quills.jpg)
|
||||
|
||||
## Tools Used
|
||||
|
||||
- [VSCodium](https://vscodium.com) - Free/Libre Open Source Software Binaries of VS Code
|
||||
- [Capitalize](https://marketplace.visualstudio.com/items?itemName=viablelab.capitalize) - Title capitalization without random websites.
|
||||
- [Even Better TOML](https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml) - For `config.toml` basically.
|
||||
- [Monokai Pro](https://marketplace.visualstudio.com/items?itemName=monokai.theme-monokai-pro-vscode) - Awfully pretty theme.
|
||||
- [PX to REM](https://marketplace.visualstudio.com/items?itemName=cipchk.cssrem) - Easy conversion from PX to REM and vice versa.
|
||||
- [SCSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-scss) - Not sure if it actually works. ¯\\\_(ツ)_/¯
|
||||
- [Sort CSS](https://marketplace.visualstudio.com/items?itemName=piyushsarkar.sort-css-properties) - A lifesaver for long CSS properties.
|
||||
- [Tera](https://marketplace.visualstudio.com/items?itemName=karunamurti.tera) - Tera template engine (the one Zola uses) support.
|
||||
- [Firefox developer tools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools) - Best of its kind.
|
||||
|
||||
As for the code formatter I use built-in VSCodium one. Prettier is good but I don't like how it tries to make code fit in a very narrow column, this can be changed of course, but built-in formatter does it's job so I don't bother doing so.
|
||||
|
||||
## Thanks To
|
||||
|
||||
- [Jakub Steiner](https://jimmac.eu) for the [OS Component Website](https://jimmac.github.io/os-component-website), which served as a starting point and inspiration.
|
||||
- [Óscar](https://osc.garden) for [tabi](https://welpo.github.io/tabi/) and its [translation system](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/macros/translate.html), [rel attributes](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/macros/rel_attributes.html), and [Content Security Policy](https://github.com/welpo/tabi/blob/7b00ed1d9dca5c529d2816c5b6679bfe600d63fc/templates/partials/content_security_policy.html).
|
||||
- [Carl Schwan](https://carlschwan.eu) for the [Mastodon-powered Comments](https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/).
|
||||
- [Jonathan Neal](https://jonneal.dev) for the [normalize.css](https://csstools.github.io/normalize.css/).
|
||||
- [GNOME design team](https://gitlab.gnome.org/Teams/Design) for the [icon development kit](https://gitlab.gnome.org/Teams/Design/icon-development-kit)
|
||||
- [Modern Font Stacks](https://modernfontstacks.com) for the system font stack.
|
||||
- [TheEvilSkeleton](https://tesk.page) for helping to improve the look and accessibility.
|
||||
- [Dexter Reed](https://sungsphinx.codeberg.page) for being the first Duckquill user, preventing it from being axed.
|
||||
- Everyone who supported me and said good stuff <3
|
1
content/_index.ms.md
Symbolic link
1
content/_index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/_index.ru.md
Symbolic link
1
content/_index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/_index.zh-Hans.md
Symbolic link
1
content/_index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.ar.md
Symbolic link
1
content/blog/_index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.es.md
Symbolic link
1
content/blog/_index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.fa.md
Symbolic link
1
content/blog/_index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.fr.md
Symbolic link
1
content/blog/_index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
9
content/blog/_index.md
Normal file
9
content/blog/_index.md
Normal file
@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Writings of Duck's Feet"
|
||||
sort_by = "date"
|
||||
template = "article_list.html"
|
||||
page_template = "article.html"
|
||||
paginate_by = 2
|
||||
+++
|
||||
|
||||
Welcome to my quack'in blog, I quack about various stuff, but mostly I'm a demo.
|
1
content/blog/_index.ms.md
Symbolic link
1
content/blog/_index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.ru.md
Symbolic link
1
content/blog/_index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/_index.zh-Hans.md
Symbolic link
1
content/blog/_index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
_index.md
|
1
content/blog/dolor/index.ar.md
Symbolic link
1
content/blog/dolor/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/dolor/index.es.md
Symbolic link
1
content/blog/dolor/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/dolor/index.fa.md
Symbolic link
1
content/blog/dolor/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/dolor/index.fr.md
Symbolic link
1
content/blog/dolor/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
16
content/blog/dolor/index.md
Normal file
16
content/blog/dolor/index.md
Normal file
@ -0,0 +1,16 @@
|
||||
+++
|
||||
authors = ["John Dolor"]
|
||||
title = "Dolor"
|
||||
description = "Lorem ipsum dolor sit amet."
|
||||
date = 1970-01-03
|
||||
[taxonomies]
|
||||
tags = ["Lorem", "Ipsum", "Dolor"]
|
||||
[extra]
|
||||
archive = true
|
||||
+++
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea.
|
1
content/blog/dolor/index.ms.md
Symbolic link
1
content/blog/dolor/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/dolor/index.ru.md
Symbolic link
1
content/blog/dolor/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/dolor/index.zh-Hans.md
Symbolic link
1
content/blog/dolor/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.ar.md
Symbolic link
1
content/blog/drafted-post/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.es.md
Symbolic link
1
content/blog/drafted-post/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.fa.md
Symbolic link
1
content/blog/drafted-post/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.fr.md
Symbolic link
1
content/blog/drafted-post/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
15
content/blog/drafted-post/index.md
Normal file
15
content/blog/drafted-post/index.md
Normal file
@ -0,0 +1,15 @@
|
||||
+++
|
||||
authors = ["John Draft"]
|
||||
title = "Drafty Draft"
|
||||
description = "Drafted post, very drafty."
|
||||
date = 2024-04-29
|
||||
draft = true
|
||||
[taxonomies]
|
||||
tags = ["Draft"]
|
||||
+++
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea.
|
1
content/blog/drafted-post/index.ms.md
Symbolic link
1
content/blog/drafted-post/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.ru.md
Symbolic link
1
content/blog/drafted-post/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/drafted-post/index.zh-Hans.md
Symbolic link
1
content/blog/drafted-post/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.ar.md
Symbolic link
1
content/blog/ipsum/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.es.md
Symbolic link
1
content/blog/ipsum/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.fa.md
Symbolic link
1
content/blog/ipsum/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.fr.md
Symbolic link
1
content/blog/ipsum/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
16
content/blog/ipsum/index.md
Normal file
16
content/blog/ipsum/index.md
Normal file
@ -0,0 +1,16 @@
|
||||
+++
|
||||
authors = ["John Ipsum"]
|
||||
title = "Ipsum"
|
||||
description = "Lorem ipsum dolor sit amet."
|
||||
date = 1970-01-02
|
||||
[taxonomies]
|
||||
tags = ["Lorem", "Ipsum"]
|
||||
[extra]
|
||||
hot = true
|
||||
+++
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea.
|
1
content/blog/ipsum/index.ms.md
Symbolic link
1
content/blog/ipsum/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.ru.md
Symbolic link
1
content/blog/ipsum/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/ipsum/index.zh-Hans.md
Symbolic link
1
content/blog/ipsum/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.ar.md
Symbolic link
1
content/blog/long-long-man/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.es.md
Symbolic link
1
content/blog/long-long-man/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.fa.md
Symbolic link
1
content/blog/long-long-man/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.fr.md
Symbolic link
1
content/blog/long-long-man/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
18
content/blog/long-long-man/index.md
Normal file
18
content/blog/long-long-man/index.md
Normal file
@ -0,0 +1,18 @@
|
||||
+++
|
||||
authors = ["Looong Looong Man", "Alexander Maximilian Jonathan"]
|
||||
title = "Loooooong Loooooong Loooooong Loooooong Loooooong Man"
|
||||
description = "Pneumonoultramicroscopicsilicovolcanoconiosis supercalifragilisticexpialidocious pseudopseudohypoparathyroidism."
|
||||
date = 2017-01-01
|
||||
[taxonomies]
|
||||
tags = ["Honorificabilitudinitatibus"]
|
||||
[extra]
|
||||
featured = true
|
||||
+++
|
||||
|
||||

|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea.
|
1
content/blog/long-long-man/index.ms.md
Symbolic link
1
content/blog/long-long-man/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.ru.md
Symbolic link
1
content/blog/long-long-man/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/long-long-man/index.zh-Hans.md
Symbolic link
1
content/blog/long-long-man/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.ar.md
Symbolic link
1
content/blog/lorem/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.es.md
Symbolic link
1
content/blog/lorem/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.fa.md
Symbolic link
1
content/blog/lorem/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.fr.md
Symbolic link
1
content/blog/lorem/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
16
content/blog/lorem/index.md
Normal file
16
content/blog/lorem/index.md
Normal file
@ -0,0 +1,16 @@
|
||||
+++
|
||||
authors = ["John Lorem"]
|
||||
title = "Lorem"
|
||||
description = "Lorem ipsum dolor sit amet."
|
||||
date = 1970-01-01
|
||||
[taxonomies]
|
||||
tags = ["Lorem"]
|
||||
[extra]
|
||||
poor = true
|
||||
+++
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||
|
||||
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea.
|
1
content/blog/lorem/index.ms.md
Symbolic link
1
content/blog/lorem/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.ru.md
Symbolic link
1
content/blog/lorem/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/lorem/index.zh-Hans.md
Symbolic link
1
content/blog/lorem/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
BIN
content/blog/the-quill-of-duck/banner.webp
Normal file
BIN
content/blog/the-quill-of-duck/banner.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 285 KiB |
1
content/blog/the-quill-of-duck/index.ar.md
Symbolic link
1
content/blog/the-quill-of-duck/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/the-quill-of-duck/index.es.md
Symbolic link
1
content/blog/the-quill-of-duck/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/the-quill-of-duck/index.fa.md
Symbolic link
1
content/blog/the-quill-of-duck/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/the-quill-of-duck/index.fr.md
Symbolic link
1
content/blog/the-quill-of-duck/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
106
content/blog/the-quill-of-duck/index.md
Normal file
106
content/blog/the-quill-of-duck/index.md
Normal file
@ -0,0 +1,106 @@
|
||||
+++
|
||||
authors = ["Scrooge McDuck", "Darkwing Duck"]
|
||||
title = "The Quill of Duck"
|
||||
description = "This is a Duckquill post example, this post has nothing but a bunch of text and random formatting, acting like a demo."
|
||||
date = 2023-08-31
|
||||
updated = "2024-06-21"
|
||||
[taxonomies]
|
||||
tags = ["Demo", "Test"]
|
||||
[extra]
|
||||
banner = "banner.webp"
|
||||
toc = true
|
||||
toc_inline = true
|
||||
toc_ordered = true
|
||||
trigger = "This page contains blackjack and hookers, and bad jokes such as this one."
|
||||
disclaimer = """
|
||||
- All tricks in this page are performed by the lab boys, don't try this at home.
|
||||
- Don't expose yourself to 4000° kelvin.
|
||||
- Don't take party escort submission position.
|
||||
- Don't interact with asbestos and moon rocks.
|
||||
"""
|
||||
[extra.comments]
|
||||
# Long thread with image
|
||||
#
|
||||
# host = "mastodon.social"
|
||||
# user = "brownpau"
|
||||
# id = "104529877688537579"
|
||||
#
|
||||
# Thread with multiple images per post
|
||||
#
|
||||
# host = "mastodon.blaede.family"
|
||||
# user = "cassidy"
|
||||
# id = "112774854109302186"
|
||||
#
|
||||
# Thread with preview cards
|
||||
# host = "mastodon.blaede.family"
|
||||
# user = "cassidy"
|
||||
# id = "110669429936617026"
|
||||
#
|
||||
# Post on GoToSocial
|
||||
#
|
||||
# host = "alpha.polymaths.social"
|
||||
# user = "orbitalmartian"
|
||||
# id = "01J7ETKJ19FGBDQGS1ZWZ3KEPP"
|
||||
#
|
||||
# Post on Sharkey
|
||||
#
|
||||
# host = "is-a.wyvern.rip"
|
||||
# user = "volpeon"
|
||||
# id = "9qy755nsnu2c0hbc"
|
||||
host = "toot.community"
|
||||
user = "sungsphinx"
|
||||
id = "111789185826519979"
|
||||
+++
|
||||
|
||||
{% alert(tip=true) %}
|
||||
Recommended banner dimensions are 2:1 aspect ratio and 1920x960 resolution.
|
||||
Other sizes will also work, but will be cut off at the bottom/won't be high enough.
|
||||
{% end %}
|
||||
|
||||
## The what?
|
||||
|
||||
This is a Duckquill post example, this post has nothing but a bunch of text and random formatting, acting like a demo.
|
||||
|
||||
## Some info
|
||||
|
||||
Well, open this file and look at how it's made, it includes all the essential front matter stuff.
|
||||
|
||||
Now to the _Stanley!_
|
||||
|
||||
## The _Stanley_!
|
||||
|
||||
This is the story of a man named _Stanley_.
|
||||
|
||||
_Stanley_ worked for a company in a big building where he was Employee `#427`.
|
||||
|
||||
<figure>
|
||||
|
||||

|
||||
<figcaption>The Office where Stanley works, it has yellow floor and beige walls</figcaption>
|
||||
</figure>
|
||||
|
||||
Employee `#427`'s job was simple: he sat at his desk in Room `427` and he pushed buttons on a keyboard.
|
||||
|
||||
Orders came to him through a monitor on his desk telling him what buttons to push, how long to push them, and in what order.
|
||||
|
||||
This is what Employee `#427` did every day of every month of every year, and although others may have considered it soul rending,
|
||||
|
||||
_Stanley_ relished every moment that the orders came in, as though he had been made exactly for this job.
|
||||
|
||||
And _Stanley_ was happy.
|
||||
|
||||
And then one day, something very peculiar happened.
|
||||
|
||||
Something that would forever change _Stanley_;
|
||||
|
||||
Something he would never quite forget.
|
||||
|
||||
He had been at his desk for nearly an hour when he had realized not one single order had arrived on the monitor for him to follow.
|
||||
|
||||
No one had shown up to give him instructions, call a meeting, or even say 'hi'. Never in all his years at the company had this happened, this complete isolation.
|
||||
|
||||
Something was very clearly wrong. Shocked, frozen solid, _Stanley_ found himself unable to move for the longest time.
|
||||
|
||||
But as he came to his wits and regained his senses, he got up from his desk and stepped out of his office.
|
||||
|
||||
All of his co-workers were gone. What could it mean? Stanley decided to go to the meeting room; perhaps he had simply missed a memo.
|
1
content/blog/the-quill-of-duck/index.ms.md
Symbolic link
1
content/blog/the-quill-of-duck/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/the-quill-of-duck/index.ru.md
Symbolic link
1
content/blog/the-quill-of-duck/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/blog/the-quill-of-duck/index.zh-Hans.md
Symbolic link
1
content/blog/the-quill-of-duck/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
BIN
content/blog/the-quill-of-duck/the-office.webp
Normal file
BIN
content/blog/the-quill-of-duck/the-office.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
43
content/demo/demo.css
Normal file
43
content/demo/demo.css
Normal file
@ -0,0 +1,43 @@
|
||||
#color-picker-container {
|
||||
-webkit-backdrop-filter: var(--blur);
|
||||
position: fixed;
|
||||
transform: translateX(calc(-100% + 1rem));
|
||||
z-index: 1;
|
||||
backdrop-filter: var(--blur);
|
||||
transition: var(--transition);
|
||||
inset-block-end: 1rem;
|
||||
inset-inline-start: 0;
|
||||
box-shadow: var(--edge-highlight), var(--shadow-glass);
|
||||
border-start-end-radius: var(--rounded-corner);
|
||||
border-end-end-radius: var(--rounded-corner);
|
||||
background-color: var(--glass-bg);
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
:root[dir*="rtl"] #color-picker-container {
|
||||
transform: translateX(calc(100% - 1rem));
|
||||
}
|
||||
|
||||
:root[dir*="rtl"] #color-picker-container:hover {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
#color-picker-container:hover {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
#color-picker-container > small {
|
||||
display: block;
|
||||
margin-block-end: 0.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#color-picker-container label {
|
||||
margin-inline-end: 0.25rem;
|
||||
color: var(--fg-muted-5);
|
||||
}
|
||||
|
||||
#color-picker-light,
|
||||
#color-picker-dark {
|
||||
margin-inline-end: 0.25rem;
|
||||
}
|
56
content/demo/demo.js
Normal file
56
content/demo/demo.js
Normal file
@ -0,0 +1,56 @@
|
||||
// Slider
|
||||
var slider = document.getElementById("range");
|
||||
var output = document.getElementById("range-value");
|
||||
output.innerHTML = slider.value;
|
||||
|
||||
slider.oninput = function() {
|
||||
output.innerHTML = this.value;
|
||||
}
|
||||
|
||||
// Spaceship control center
|
||||
const colorPickerLight = document.querySelector("#color-picker-light");
|
||||
const colorPickerDark = document.querySelector("#color-picker-dark");
|
||||
|
||||
let accentColorLight = colorPickerLight.value;
|
||||
let accentColorDark = colorPickerDark.value;
|
||||
|
||||
colorPickerLight.addEventListener("input", updateAccentColorLight);
|
||||
colorPickerDark.addEventListener("input", updateAccentColorDark);
|
||||
|
||||
function updateAccentColorLight() {
|
||||
accentColorLight = colorPickerLight.value;
|
||||
updateStyles();
|
||||
}
|
||||
|
||||
function updateAccentColorDark() {
|
||||
accentColorDark = colorPickerDark.value;
|
||||
updateStyles();
|
||||
}
|
||||
|
||||
function updateStyles() {
|
||||
let styleElement = document.getElementById("dynamic-styles");
|
||||
|
||||
if (!styleElement) {
|
||||
styleElement = document.createElement("style");
|
||||
styleElement.id = "dynamic-styles";
|
||||
document.head.appendChild(styleElement);
|
||||
}
|
||||
|
||||
let styles = `
|
||||
:root {
|
||||
--accent-color: ${accentColorLight};
|
||||
}
|
||||
[data-theme="dark"] {
|
||||
--accent-color: ${accentColorDark};
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root:not([data-theme="light"]) {
|
||||
--accent-color: ${accentColorDark};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
styleElement.textContent = styles;
|
||||
}
|
||||
|
||||
updateStyles();
|
1
content/demo/index.ar.md
Symbolic link
1
content/demo/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/index.es.md
Symbolic link
1
content/demo/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/index.fa.md
Symbolic link
1
content/demo/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/index.fr.md
Symbolic link
1
content/demo/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
677
content/demo/index.md
Normal file
677
content/demo/index.md
Normal file
@ -0,0 +1,677 @@
|
||||
+++
|
||||
title = "Demo Page"
|
||||
[extra]
|
||||
go_to_top = true
|
||||
styles = ["demo/demo.css"]
|
||||
scripts = ["demo/demo.js"]
|
||||
katex = true
|
||||
archive = "This page is in fact not archived. It is only here to demonstrate the archival statement."
|
||||
trigger = "This page contains blackjack and hookers, and bad jokes such as this one."
|
||||
disclaimer = """
|
||||
- All tricks in this page are performed by the lab boys, don't try this at home.
|
||||
- Don't expose yourself to 4000° kelvin.
|
||||
- Don't take party escort submission position.
|
||||
- Don't interact with asbestos and moon rocks.
|
||||
"""
|
||||
+++
|
||||
|
||||
## Markdown
|
||||
|
||||
Text can be **bold**, *italic*, ~~strikethrough~~, and ***~~all at the same time~~***.
|
||||
|
||||
[Link to another page](@/demo/page.md).
|
||||
|
||||
There should be whitespace between paragraphs[^1].
|
||||
|
||||
# Heading 1
|
||||
## Heading 2
|
||||
### Heading 3
|
||||
#### Heading 4
|
||||
##### Heading 5
|
||||
###### Heading 6
|
||||
|
||||
This is a normal paragraph[^2] following a header.
|
||||
|
||||
😭😂🥺🤣❤️✨🙏😍🥰😊
|
||||
|
||||
```
|
||||
Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
|
||||
```
|
||||
|
||||
> "Original content is original only for a few seconds before getting old"
|
||||
> > Rule #21 of the internet
|
||||
|
||||
- Item 1
|
||||
- Item 2
|
||||
- Item 2.1
|
||||
- Item 2.2
|
||||
- Item 3
|
||||
- `Item 4`
|
||||
|
||||
1. Perform step #1
|
||||
2. Proceed to step #2
|
||||
3. Conclude with step #3
|
||||
|
||||
- [ ] Milk
|
||||
- [x] Eggs
|
||||
- [x] Flour
|
||||
- [ ] Coffee
|
||||
- [x] Combustible lemons
|
||||
|
||||
[](https://upload.wikimedia.org/wikipedia/commons/2/24/Male_mallard_duck_2.jpg)
|
||||
|
||||
| Mare | Rating | Additional info |
|
||||
| :----------- | :---------------- | :--------------- |
|
||||
| Fluttershy | Best pone | Shy and adorable |
|
||||
| Apple Jack | Good pone | Honest and nice |
|
||||
| Pinkie Pie | Fun pone | Parties and ADHD |
|
||||
| Twilight | Main pone | Neeerd |
|
||||
| Rainbow Dash | Yes | Looks badass |
|
||||
| Rarity | Fancy pone | Generous |
|
||||
| Derpy Hooves | *M u f f i n s* | [REDACTED] |
|
||||
|
||||
```rust
|
||||
let highlight = true;
|
||||
```
|
||||
|
||||
```scss, linenos, linenostart=10, hl_lines=3-4 8-9, hide_lines=2 7
|
||||
pre mark {
|
||||
// If you want your highlights to take the full width
|
||||
display: block;
|
||||
color: currentcolor;
|
||||
}
|
||||
pre table td:nth-of-type(1) {
|
||||
// Select a colour matching your theme
|
||||
color: #6b6b6b;
|
||||
font-style: italic;
|
||||
}
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
## Extra
|
||||
|
||||
### KaTeX
|
||||
|
||||
Duckquill can render LaTeX using the [KaTeX](https://katex.org) library. It can be enabled using the `extra.katex` config variable.
|
||||
|
||||
```latex
|
||||
$$\relax f(x) = \int_{-\infty}^\infty\hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$$
|
||||
```
|
||||
|
||||
$$\relax f(x) = \int_{-\infty}^\infty\hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$$
|
||||
|
||||
```latex
|
||||
$\relax f(x) = \int_{-\infty}^\infty\hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$
|
||||
```
|
||||
|
||||
$\relax f(x) = \int_{-\infty}^\infty\hat{f}(\xi)\,e^{2 \pi i \xi x}\,d\xi$
|
||||
|
||||
### Shortcodes
|
||||
|
||||
Duckquill provides a few useful [shortcodes](https://www.getzola.org/documentation/content/shortcodes/) that simplify some tasks. They can be used on all pages.
|
||||
|
||||
#### Alerts
|
||||
|
||||
[GitHub-style](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts) alerts. Simply wrap the text of desired alert inside the shortcode to get the desired look.
|
||||
|
||||
Available alert types:
|
||||
|
||||
- `note`: Useful information that users should know, even when skimming content.
|
||||
- `tip`: Helpful advice for doing things better or more easily.
|
||||
- `important`: Key information users need to know to achieve their goal.
|
||||
- `warning`: Urgent info that needs immediate user attention to avoid problems.
|
||||
- `caution`: Advises about risks or negative outcomes of certain actions.
|
||||
|
||||
```jinja2
|
||||
{%/* alert(note=true) */%}
|
||||
-> Alert text <-
|
||||
{%/* end */%}
|
||||
```
|
||||
|
||||
{% alert(note=true) %}
|
||||
Useful information that users should know, even when skimming content.
|
||||
{% end %}
|
||||
|
||||
{% alert(tip=true) %}
|
||||
Helpful advice for doing things better or more easily.
|
||||
{% end %}
|
||||
|
||||
{% alert(important=true) %}
|
||||
Key information users need to know to achieve their goal.
|
||||
{% end %}
|
||||
|
||||
{% alert(warning=true) %}
|
||||
Urgent info that needs immediate user attention to avoid problems.
|
||||
{% end %}
|
||||
|
||||
{% alert(caution=true) %}
|
||||
Advises about risks or negative outcomes of certain actions.
|
||||
{% end %}
|
||||
|
||||
#### Images and Videos
|
||||
|
||||
By default images and videos come with some generic styling, such as rounded corners and shadow. To fine-tune these, you can use shortcodes with different variable combinations.
|
||||
|
||||
Available variables are:
|
||||
|
||||
- `url`: URL to an image.
|
||||
- `url_min`: URL to compressed version of an image, original can be opened by clicking on the image.
|
||||
- `alt`: Alt text, same as if the text were inside square brackets in Markdown.
|
||||
- `full`: Forces image to be full-width.
|
||||
- `full_bleed`: Forces image to fill all the available screen width. Removes shadow, rounded corners and zoom on hover.
|
||||
- `start`: Float image to the start of paragraph and scale it down.
|
||||
- `end`: Float image to the end of paragraph and scale it down.
|
||||
- `pixels`: Uses nearest neighbor algorithm for scaling, useful for keeping pixel-art sharp.
|
||||
- `transparent`: Removes rounded corners and shadow, useful for images with transparency.
|
||||
- `no_hover`: Removes zoom on hover.
|
||||
- `spoiler`: Blurs image until hovered over/pressed on, useful for plot rich game screenshots.
|
||||
- `spoiler` with `solid`: Ditto, but makes the image completely hidden.
|
||||
|
||||
```jinja2
|
||||
{{/* image(url="image.png", alt="This is an image", no_hover=true) */}}
|
||||
```
|
||||
|
||||
<figure>
|
||||
{{ image(url="https://i1.theportalwiki.net/img/2/23/Ashpd_blueprint.jpg", alt="Portal Gun blueprint", no_hover=true) }}
|
||||
<figcaption>Image with an alt text and without zoom on hover</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure>
|
||||
{{ image(url="https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg", url_min="https://upload.wikimedia.org/wikipedia/commons/3/38/JPEG_example_JPG_RIP_010.jpg", alt="The gravestone of J.P.G.", no_hover=true) }}
|
||||
<figcaption>Image with compressed version, an alt text, and without zoom on hover</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure>
|
||||
{{ image(url="https://files.catbox.moe/lk7nee.jpg", alt="Portal Gun blueprint", spoiler=true) }}
|
||||
<figcaption>Image with an alt text, hidden behind a spoiler</figcaption>
|
||||
</figure>
|
||||
|
||||
Alternatively, you can append the following URL anchors. It can be more handy in some cases, e.g. such images will render normally in any Markdown editor, opposed to the Zola shortcodes.
|
||||
|
||||
- `#full`: Forces image to be full-width.
|
||||
- `#full-bleed`: Forces image to fill all the available screen width. Removes shadow, rounded corners and zoom on hover.
|
||||
- `#start`: Float image to the start of paragraph and scale it down.
|
||||
- `#end`: Float image to the end of paragraph and scale it down.
|
||||
- `#pixels`: Uses nearest neighbor algorithm for scaling, useful for keeping pixel-art sharp.
|
||||
- `#transparent`: Removes rounded corners and shadow, useful for images with transparency.
|
||||
- `#no-hover`: Removes zoom on hover.
|
||||
- `#spoiler`: Blurs image until hovered over/pressed on, useful for plot rich game screenshots.
|
||||
- `#spoiler` with `#solid`: Ditto, but makes the image completely hidden.
|
||||
|
||||
<br />
|
||||
<figure>
|
||||
|
||||
[](https://containertoolbx.org)
|
||||
<figcaption>Full-width image with an alt text, pixel-art rendering, no shadow and rounded corners, and no zoom on hover</figcaption>
|
||||
</figure>
|
||||
|
||||
<br />
|
||||
|
||||

|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur.
|
||||
|
||||
\
|
||||
[](https://unsplash.com/photos/a-mountain-lake-surrounded-by-trees-and-snow-CqTOTZh5vrs)
|
||||
|
||||
For videos it's all the same except for a few differences: `no_hover` and `url_min` variables are not available.
|
||||
|
||||
Additionally, the following [attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attributes) can be set:
|
||||
|
||||
- `autoplay`: Start playing the video automatically.
|
||||
- `controls`: Display video controls such as volume control, seeking and pause/resume.
|
||||
- `loop`: Play the video again once it ends.
|
||||
- `muted`: Turn off the audio by default.
|
||||
- `playsinline`: Prevent the video from playing in fullscreen by default (depends on the browser).
|
||||
|
||||
```jinja2
|
||||
{{/* video(url="video.webm", alt="This is a video", controls=true) */}}
|
||||
```
|
||||
|
||||
<figure>
|
||||
{{ video(url="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm", alt="Red flower wakes up", controls=true) }}
|
||||
<figcaption>WebM video example from MDN</figcaption>
|
||||
</figure>
|
||||
|
||||
<figure>
|
||||
{{ video(url="https://upload.wikimedia.org/wikipedia/commons/transcoded/0/0e/Duckling_preening_%2881313%29.webm/Duckling_preening_%2881313%29.webm.720p.vp9.webm", alt="Duckling preening", full_bleed=true, controls=true) }}
|
||||
<figcaption>Duckling preening</figcaption>
|
||||
</figure>
|
||||
|
||||
#### CRT
|
||||
|
||||
Alright, this one doesn't simplify anything, it just adds a CRT-like effect around Markdown code blocks.
|
||||
|
||||
```jinja2
|
||||
{%/* crt() */%}
|
||||
-> Markdown code block <-
|
||||
{%/* end */%}
|
||||
```
|
||||
|
||||
{% crt() %}
|
||||
|
||||
```
|
||||
_____________________________________________
|
||||
|.'', Public_Library_Halls ,''.|
|
||||
|.'.'', ,''.'.|
|
||||
|.'.'.'', ,''.'.'.|
|
||||
|.'.'.'.'', ,''.'.'.'.|
|
||||
|.'.'.'.'.| |.'.'.'.'.|
|
||||
|.'.'.'.'.|===; ;===|.'.'.'.'.|
|
||||
|.'.'.'.'.|:::|', ,'|:::|.'.'.'.'.|
|
||||
|.'.'.'.'.|---|'.|, _______ ,|.'|---|.'.'.'.'.|
|
||||
|.'.'.'.'.|:::|'.|'|???????|'|.'|:::|.'.'.'.'.|
|
||||
|,',',',',|---|',|'|???????|'|,'|---|,',',',',|
|
||||
|.'.'.'.'.|:::|'.|'|???????|'|.'|:::|.'.'.'.'.|
|
||||
|.'.'.'.'.|---|',' /%%%\ ','|---|.'.'.'.'.|
|
||||
|.'.'.'.'.|===:' /%%%%%\ ':===|.'.'.'.'.|
|
||||
|.'.'.'.'.|%%%%%%%%%%%%%%%%%%%%%%%%%|.'.'.'.'.|
|
||||
|.'.'.'.',' /%%%%%%%%%\ ','.'.'.'.|
|
||||
|.'.'.',' /%%%%%%%%%%%\ ','.'.'.|
|
||||
|.'.',' /%%%%%%%%%%%%%\ ','.'.|
|
||||
|.',' /%%%%%%%%%%%%%%%\ ','.|
|
||||
|;____________/%%%%%Spicer%%%%%%\____________;|
|
||||
```
|
||||
|
||||
{% end %}
|
||||
|
||||
There's also a `cursor` class that you can add to a span with e.g. `█` character to simulate the terminal cursor. It doesn't work from inside Markdown code blocks though.
|
||||
|
||||
#### YouTube
|
||||
|
||||
Allows to embed a YouTube video using youtube-nocookie.
|
||||
|
||||
Available variables are:
|
||||
|
||||
- `autoplay`: Whether the video should autoplay.
|
||||
- `start`: On which second video should start.
|
||||
|
||||
```jinja2
|
||||
{{/* youtube(id="0Da8ZhKcNKQ") */}}
|
||||
```
|
||||
|
||||
{{ youtube(id="0Da8ZhKcNKQ") }}
|
||||
|
||||
#### Vimeo
|
||||
|
||||
Allows to embed a Vimeo video.
|
||||
|
||||
Available variables are:
|
||||
|
||||
- `autoplay`: Whether the video should autoplay.
|
||||
|
||||
```jinja2
|
||||
{{/* vimeo(id="869483483") */}}
|
||||
```
|
||||
|
||||
{{ vimeo(id="869483483") }}
|
||||
|
||||
#### Mastodon
|
||||
|
||||
Allows to embed a Mastodon post.
|
||||
|
||||
Available variables are:
|
||||
|
||||
- `host`: The instance on which the post resides. If not set, it will fallback to the one set in the `[extra.comments]` section of `config.toml`.
|
||||
- `user`: The poster. If not set, it will fallback to the one set in the `[extra.comments]` section of `config.toml`.
|
||||
- `id`: The ID of the post, usually at the end of the URL.
|
||||
|
||||
```jinja2
|
||||
{{/* mastodon(host="toot.community", user="sungsphinx", id="111789185826519979") */}}
|
||||
```
|
||||
|
||||
{{ mastodon(host="toot.community", user="sungsphinx", id="111789185826519979") }}
|
||||
|
||||
### Description List (`<dl>`)
|
||||
|
||||
```html
|
||||
<dl>
|
||||
<dt>Something</dt>
|
||||
<dd>And its description</dd>
|
||||
</dl>
|
||||
```
|
||||
|
||||
<dl>
|
||||
<dt>Name</dt>
|
||||
<dd>Godzilla</dd>
|
||||
<dt>Born</dt>
|
||||
<dd>1952</dd>
|
||||
<dt>Birthplace</dt>
|
||||
<dd>Japan</dd>
|
||||
<dt>Color</dt>
|
||||
<dd>Green</dd>
|
||||
</dl>
|
||||
|
||||
### Form Input (`<input>`)
|
||||
|
||||
```html
|
||||
<input type="checkbox" />
|
||||
<label>Checkbox</label>
|
||||
```
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="checkbox" />
|
||||
<label> Milk</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" />
|
||||
<label> Eggs</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" />
|
||||
<label> Flour</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" checked />
|
||||
<label> Coffee</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" disabled />
|
||||
<label> Combustible lemons</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
With `switch` class:
|
||||
|
||||
```html
|
||||
<input class="switch" type="checkbox" />
|
||||
<label>Checkbox</label>
|
||||
```
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input class="switch" type="checkbox" />
|
||||
<label> Milk</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch" type="checkbox" />
|
||||
<label> Eggs</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch" type="checkbox" />
|
||||
<label> Flour</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch" type="checkbox" checked />
|
||||
<label> Coffee</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch" type="checkbox" disabled />
|
||||
<label> Combustible lemons</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
With `switch` and `big` classes:
|
||||
|
||||
```html
|
||||
<input class="switch big" type="checkbox" />
|
||||
<label>Checkbox</label>
|
||||
```
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input class="switch big" type="checkbox" />
|
||||
<label> Milk</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch big" type="checkbox" />
|
||||
<label> Eggs</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch big" type="checkbox" />
|
||||
<label> Flour</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch big" type="checkbox" checked />
|
||||
<label> Coffee</label>
|
||||
</li>
|
||||
<li>
|
||||
<input class="switch big" type="checkbox" disabled />
|
||||
<label> Combustible lemons</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
With `radio` type:
|
||||
|
||||
```html
|
||||
<input type="radio" name="test" />
|
||||
<label>Radio</label>
|
||||
```
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="radio" name="test" />
|
||||
<label> Milk</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" name="test" />
|
||||
<label> Eggs</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" name="test" />
|
||||
<label> Flour</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" name="test" checked />
|
||||
<label> Coffee</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" name="test" disabled />
|
||||
<label> Combustible lemons</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
With `color` type:
|
||||
|
||||
```html
|
||||
<label>Color:</label>
|
||||
<input type="color" value="#000000" />
|
||||
```
|
||||
|
||||
<label for="color">Color:</label>
|
||||
<input id="color" type="color" value="#b57edc" />
|
||||
|
||||
<label for="color">Disabled:</label>
|
||||
<input id="color" type="color" value="#b57edc" disabled />
|
||||
|
||||
With `range` type:
|
||||
|
||||
```html
|
||||
<input type="range" max="100" value="33">
|
||||
```
|
||||
|
||||
<input type="range" max="100" value="33" id="range">
|
||||
<!-- For the demo purposes only -->
|
||||
<small id="range-value"></small>
|
||||
<!-- End -->
|
||||
|
||||
### Figure Captions (`<figcaption>`)
|
||||
|
||||
```markdown
|
||||
<figure>
|
||||
-> Whatever content <-
|
||||
<figcaption>Caption of content above</figcaption>
|
||||
</figure>
|
||||
```
|
||||
|
||||
<figure>
|
||||
|
||||

|
||||
<figcaption>The Office where Stanley works, it has yellow floor and beige walls</figcaption>
|
||||
</figure>
|
||||
|
||||
### Accordion (`<details>`)
|
||||
|
||||
```markdown
|
||||
<details>
|
||||
<summary>Accordion title</summary>
|
||||
-> Contents here <-
|
||||
</details>
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Reveal accordion</summary>
|
||||
|
||||
Get it? I know, it's an awful pun.
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
### Side Comment (`<small>`)
|
||||
|
||||
```html
|
||||
<small>Small, cute text that doesn't catch attention.</small>
|
||||
```
|
||||
|
||||
<small>Small, cute text that doesn't catch attention.</small>
|
||||
|
||||
### Abbreviation (`<abbr>`)
|
||||
|
||||
```html
|
||||
<abbr title="American Standard Code for Information Interchange">ASCII</abbr>
|
||||
```
|
||||
|
||||
The <abbr title="American Standard Code for Information Interchange">ASCII</abbr> art is awesome!
|
||||
|
||||
### Aside (`<aside>`)
|
||||
|
||||
```html
|
||||
<aside>
|
||||
|
||||
-> Contents here <-
|
||||
</aside>
|
||||
```
|
||||
|
||||
<aside>
|
||||
|
||||
Quill and a parchment
|
||||
|
||||
<img class="transparent no-hover" style="margin-block-end: 0; border-radius: 0;" alt="Quill and a parchment" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/%D7%A7%D7%9C%D7%A3%2C_%D7%A0%D7%95%D7%A6%D7%94_%D7%95%D7%93%D7%99%D7%95.jpg/326px-%D7%A7%D7%9C%D7%A3%2C_%D7%A0%D7%95%D7%A6%D7%94_%D7%95%D7%93%D7%99%D7%95.jpg" />
|
||||
</aside>
|
||||
|
||||
A quill is a writing tool made from a moulted flight feather (preferably a primary wing-feather) of a large bird. Quills were used for writing with ink before the invention of the dip pen, the metal-nibbed pen, the fountain pen, and, eventually, the ballpoint pen.
|
||||
|
||||
As with the earlier reed pen (and later dip pen), a quill has no internal ink reservoir and therefore needs to periodically be dipped into an inkwell during writing. The hand-cut goose quill is rarely used as a calligraphy tool anymore because many papers are now derived from wood pulp and would quickly wear a quill down. However it is still the tool of choice for a few scribes who have noted that quills provide an unmatched sharp stroke as well as greater flexibility than a steel pen.
|
||||
|
||||
### Keyboard Input (`<kbd>`)
|
||||
|
||||
```html
|
||||
<kbd>⌘ Command</kbd>.
|
||||
```
|
||||
|
||||
To switch the keyboard layout, press <kbd>⌘ Super</kbd> + <kbd>Space</kbd>.
|
||||
|
||||
### Mark Text (`<mark>`)
|
||||
|
||||
```html
|
||||
<mark>Marked text</mark>
|
||||
```
|
||||
|
||||
You know what? I'm gonna say some <mark>very important</mark> stuff, so <mark>important</mark> that even **bold** is not enough.
|
||||
|
||||
### Deleted and Inserted Text (`<del>` and `<ins>`)
|
||||
|
||||
```html
|
||||
<del>Something deleted</del> <ins>Something added</ins>
|
||||
```
|
||||
|
||||
<del>Text deleted</del> <ins>Text added</ins>
|
||||
|
||||
### Progress Indicator (`<progress>`)
|
||||
|
||||
```html
|
||||
<progress></progress>
|
||||
<progress value="33" max="100"></progress>
|
||||
```
|
||||
|
||||
<progress></progress>
|
||||
<progress value="33" max="100"></progress>
|
||||
|
||||
### Sample Output (`<samp>`)
|
||||
|
||||
```html
|
||||
<samp>Sample Output</samp>
|
||||
```
|
||||
|
||||
<samp>Sample Output</samp>
|
||||
|
||||
### Inline Quotation (`<q>`)
|
||||
|
||||
```html
|
||||
<q>Someone said something</q>
|
||||
```
|
||||
|
||||
Blah blah <q>Inline Quote</q> hmm.
|
||||
|
||||
### Unarticulated Annotation (`<u>`)
|
||||
|
||||
```html
|
||||
<u>Gmarrar mitsakes</u>
|
||||
```
|
||||
|
||||
<u>Yeet</u> the <u>sus</u> drip while <u>vibing</u> with the <u>TikTok</u> <u>fam</u> on a cap-free boomerang.
|
||||
|
||||
### External Links
|
||||
|
||||
```html
|
||||
<a class="external" href="https://example.org">External link</a>
|
||||
```
|
||||
|
||||
<a class="external" href="https://example.org">Link to site</a>
|
||||
|
||||
### Spoilers
|
||||
|
||||
```html
|
||||
<span class="spoiler">Some spoiler</span>
|
||||
```
|
||||
|
||||
You know, <span class="spoiler">Duckquill is a pretty dumb name.</span> I know, crazy.
|
||||
|
||||
With `solid` class:
|
||||
|
||||
```html
|
||||
<span class="spoiler solid">Some spoiler</span>
|
||||
```
|
||||
|
||||
You know, <span class="spoiler solid">Duckquill is a pretty dumb name.</span> I know, crazy.
|
||||
|
||||
### Buttons Dialog
|
||||
|
||||
```html.j2
|
||||
<div class="buttons">
|
||||
<a href="#top">Go to Top</a>
|
||||
<a class="colored external" href="https://example.org">Example</a>
|
||||
</div>
|
||||
```
|
||||
|
||||
<div class="buttons">
|
||||
<a href="#top">Go to Top</a>
|
||||
<a class="colored external" href="https://example.org">Example</a>
|
||||
</div>
|
||||
|
||||
With `centered` and `big` classes:
|
||||
|
||||
```html.j2
|
||||
<div class="buttons centered">
|
||||
<button class="big colored">Do Something…</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
<div class="buttons centered">
|
||||
<button class="big colored">Do Something…</button>
|
||||
</div>
|
||||
|
||||
[^1]: Footnote
|
||||
[^2]: [Footnote (link)](https://example.org)
|
||||
|
||||
<!-- For the demo purposes only -->
|
||||
<div id="color-picker-container">
|
||||
<small>Accent color:</small>
|
||||
<input id="color-picker-light" type="color" value="#ff7800" />
|
||||
<label for="color-picker-light">Light theme</label>
|
||||
<br />
|
||||
<input id="color-picker-dark" type="color" value="#ffa348" />
|
||||
<label for="color-picker-dark">Dark theme</label>
|
||||
</div>
|
||||
<!-- End -->
|
1
content/demo/index.ms.md
Symbolic link
1
content/demo/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/index.ru.md
Symbolic link
1
content/demo/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/index.zh-Hans.md
Symbolic link
1
content/demo/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/demo/page.ar.md
Symbolic link
1
content/demo/page.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/demo/page.es.md
Symbolic link
1
content/demo/page.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/demo/page.fa.md
Symbolic link
1
content/demo/page.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/demo/page.fr.md
Symbolic link
1
content/demo/page.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
11
content/demo/page.md
Normal file
11
content/demo/page.md
Normal file
@ -0,0 +1,11 @@
|
||||
+++
|
||||
title = "Cake Party"
|
||||
+++
|
||||
|
||||
<img class="transparent no-hover" style="width: min(calc(var(--container-width) / 2), 100%)" src="https://i1.theportalwiki.net/img/0/0a/Portal_Cake.png"/>
|
||||
|
||||
Sadly, the cake is a _lie_
|
||||
|
||||
<div class="buttons">
|
||||
<a href="../">Go Crying</a>
|
||||
</div>
|
1
content/demo/page.ms.md
Symbolic link
1
content/demo/page.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/demo/page.ru.md
Symbolic link
1
content/demo/page.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/demo/page.zh-Hans.md
Symbolic link
1
content/demo/page.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
page.md
|
1
content/mods/index.ar.md
Symbolic link
1
content/mods/index.ar.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/mods/index.es.md
Symbolic link
1
content/mods/index.es.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/mods/index.fa.md
Symbolic link
1
content/mods/index.fa.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/mods/index.fr.md
Symbolic link
1
content/mods/index.fr.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
116
content/mods/index.md
Normal file
116
content/mods/index.md
Normal file
@ -0,0 +1,116 @@
|
||||
+++
|
||||
title = "Mods"
|
||||
[extra]
|
||||
toc = true
|
||||
toc_sidebar = true
|
||||
+++
|
||||
|
||||
Mods enhance/change some Duckquill visuals. They are updated alongside Duckquill to ensure that you don't need to manually update them every release.
|
||||
|
||||
To enable these mods, you need to paste provided Sass to [appropriate file](@/_index.md#custom-styles), e.g `sass/mods.scss` under your website, then enable it in `config.toml`:
|
||||
|
||||
```toml
|
||||
[extra]
|
||||
styles = ["mods.css"]
|
||||
```
|
||||
|
||||
## Background Image
|
||||
|
||||
Want to set some nice image as a background? We got you covered:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
body {
|
||||
background-image: var(--bg-overlay), url("https://images.unsplash.com/photo-1523712999610-f77fbcfc3843");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
```
|
||||
|
||||
Most of the time contrast should be okay, but what if it's not? Simply adjust the opacity of `--bg-overlay` based on your needs:
|
||||
|
||||
```scss
|
||||
@import "../themes/duckquill/sass/_variables.scss";
|
||||
|
||||
@include theme-variables using ($theme) {
|
||||
@if $theme == "dark" {
|
||||
--bg-overlay: linear-gradient(rgb(0 0 0 / 0.9), rgb(0 0 0 / 0.9));
|
||||
}
|
||||
|
||||
@else {
|
||||
--bg-overlay: linear-gradient(rgb(255 255 255 / 0.8), rgb(255 255 255 / 0.8));
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Classic Article List
|
||||
|
||||
Prefer the less fancy look of the article list used in Duckquill some time ago (to some extent)? It can be done with the `classic-article-list` mod:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/classic-article-list";
|
||||
```
|
||||
|
||||
## Classic Navbar
|
||||
|
||||
You can make navbar have more traditional look by using the `classic-nav` mod:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/classic-nav";
|
||||
```
|
||||
|
||||
Or you can make it sticked to top but not full-width with the `sticked-nav` mod:
|
||||
|
||||
{% alert(note=true) %}
|
||||
Not compatible with the `classic-nav` mod.
|
||||
{% end %}
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/sticked-nav";
|
||||
```
|
||||
|
||||
## Classic Strikethrough
|
||||
|
||||
The default strikethrough style is too much? It can be fixed using the `classic-del` mod:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/classic-del";
|
||||
```
|
||||
|
||||
## Modern Headings
|
||||
|
||||
Default headings might not fit your taste, that's understandable. They can be ~~made boring~~ fixed with the `modern-headings` mod:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/modern-headings";
|
||||
```
|
||||
|
||||
## Modern Horizontal Rule
|
||||
|
||||
Don't like that fancy horizontal rule? Make it more modern with the `modern-hr` mod:
|
||||
|
||||

|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/modern-hr";
|
||||
```
|
||||
|
||||
## No Edge Highlight
|
||||
|
||||
Hate the skeuomorphic edge highlight on all semi-transparent elements? Let's get rid of it using the `no-edge-highlight` mod:
|
||||
|
||||
```scss
|
||||
@use "../themes/duckquill/sass/mods/no-edge-highlight";
|
||||
```
|
1
content/mods/index.ms.md
Symbolic link
1
content/mods/index.ms.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/mods/index.ru.md
Symbolic link
1
content/mods/index.ru.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
1
content/mods/index.zh-Hans.md
Symbolic link
1
content/mods/index.zh-Hans.md
Symbolic link
@ -0,0 +1 @@
|
||||
index.md
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user