From a8f5476e4ffe243fc868251a7d0beb4031535e71 Mon Sep 17 00:00:00 2001 From: Mar0xy Date: Sun, 31 Dec 2023 22:46:11 +0000 Subject: [PATCH] deploy: 8e824b507a73006b3e404ef524616b2e465aac16 --- 404.html | 2 +- categories/index.html | 2 +- contributors/index.html | 2 +- docs/comparsion/index.html | 8 +- docs/comparsion/index.xml | 6 +- docs/comparsion/misskey/index.html | 54 +++++--- docs/customisation/index.html | 14 ++ docs/customisation/index.xml | 4 + docs/customisation/sitemap.xml | 1 + docs/customisation/themes/index.html | 129 ++++++++++++++++++ docs/getting-started/index.html | 8 +- docs/getting-started/overview/index.html | 13 +- docs/index.html | 8 +- docs/install/faqs/index.html | 11 +- docs/install/fresh/index.html | 15 +- docs/install/index.html | 8 +- docs/install/migrate/index.html | 11 +- docs/sitemap.xml | 2 +- ...f3412fdaeb695ada6d4ceb477483a0fefd351fe.js | 28 +++- robots.txt | 4 + tags/index.html | 2 +- 21 files changed, 271 insertions(+), 61 deletions(-) create mode 100644 docs/customisation/index.html create mode 100644 docs/customisation/index.xml create mode 100644 docs/customisation/sitemap.xml create mode 100644 docs/customisation/themes/index.html rename index.min.5b2a1479ccaf96cf9db5642551a1f2cb20a18b20891406e15b17927c4f343a63bd2551e971eb6ccb14e617ae0f23e3bd58a782d7cfea60d7da5aa8db0711140b.js => index.min.dd430337a3613672bede08e73d103d8259991377efb845ab563693b23047977b35be7debc310c3db3f45753faf3412fdaeb695ada6d4ceb477483a0fefd351fe.js (57%) diff --git a/404.html b/404.html index f06f29e..42f0b49 100644 --- a/404.html +++ b/404.html @@ -3,4 +3,4 @@

Page not found :(

The page you are looking for doesn't exist or has been moved.

- \ No newline at end of file + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 82a4bad..7020461 100644 --- a/categories/index.html +++ b/categories/index.html @@ -3,4 +3,4 @@

Categories

- \ No newline at end of file + \ No newline at end of file diff --git a/contributors/index.html b/contributors/index.html index 27d1430..6d434cd 100644 --- a/contributors/index.html +++ b/contributors/index.html @@ -3,4 +3,4 @@

Contributors

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/comparsion/index.html b/docs/comparsion/index.html index 224ec4b..2decdb8 100644 --- a/docs/comparsion/index.html +++ b/docs/comparsion/index.html @@ -2,11 +2,13 @@
Browse docs



  • +Comparsion
  • - \ No newline at end of file + \ No newline at end of file diff --git a/docs/comparsion/index.xml b/docs/comparsion/index.xml index afac299..cafdf27 100644 --- a/docs/comparsion/index.xml +++ b/docs/comparsion/index.xml @@ -1,5 +1,5 @@ Comparsion onhttps://docs.joinsharkey.org/docs/comparsion/Recent content in Comparsion onHugo -- gohugo.ioSharkey vs Misskeyhttps://docs.joinsharkey.org/docs/comparsion/misskey/Mon, 01 Jan 0001 00:00:00 +0000https://docs.joinsharkey.org/docs/comparsion/misskey/A (probably comprehensive) list of differences # Big ones # -fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people’s replies to your posts may not get imported) admins can require approval for new users’ signups admins can silence users admins can mark all of a user’s media as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) Fun ones # -can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles “speak as cat” separate from “is a cat” (both setting are federated with compatible software) UI/UX # -option to open a note’s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish “sign out” button in user menu user profile page has “notes” / “all” / “including files” tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation one-button “like” (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a “open remote profile” option, and show custom fields (e. \ No newline at end of file +fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people’s replies to your posts may not get imported) admins can require approval for new users’ signups admins can silence users admins can mark all of a user’s media, or a whole remote instance, as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) “bubble” timeline, showing all known notes from an admin-configured list of remote instances you can specify the visibility of each boost / renote thread view updates in real time check signature on ActivityPub GET requests, also known as “secure mode” or “authorized fetch” (experimental) Fun ones # +can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles “speak as cat” separate from “is a cat” (both setting are federated with compatible software) themes can specify a font, so you can use whatever font is most legible for you you can change the way note threads are show to be more like Firefish (with lines connecting notes and their replies) MFM renders mathematical formulas UI/UX # +option to open a note’s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish “sign out” button in user menu user profile page has “notes” / “all” / “including files” tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation you can choose to always show long notes in their entirety you can choose to always expand notes that have a CW one-button “like” (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note italic, bold, hashtags accept more characters (so #æîç is a valid hashtag) supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a “open remote profile” option, and show custom fields (e. \ No newline at end of file diff --git a/docs/comparsion/misskey/index.html b/docs/comparsion/misskey/index.html index a622bc2..c1dd145 100644 --- a/docs/comparsion/misskey/index.html +++ b/docs/comparsion/misskey/index.html @@ -1,15 +1,18 @@ -Sharkey vs Misskey - Sharkey Documentation

    Sharkey vs Misskey

    +images)
  • the depth of the thread / detailed view of notes can be changed +(still defaults to 5)
  • there’s a search widget
  • the search functions (both the dedicated pages and the widget) also +cover the functionality of the “lookup” feature, so you can search +for a fully-qualified remote username and have their profile fetched +and shown
  • there’s a “back” button at the top of each page
  • timelines will show notes from users you follow, even if their +instance is muted
  • tag view respects blocks, mutes, suspensions
  • you won’t receive any notification for muted threads
  • Ones of interest to admins

    • quote-boosts federate correctly from/to Mastodon forks
    • the not-very-functional “automatically mark attachments as NSFW” has +been removed (smaller installation, faster image/video uploads)
    • argon2 instead of bcrypt for hashing users’ secrets
    • admins can delete remote emojis
    • admins can disable achievements
    • admins can refresh remote user details
    • admins can set a default emoji for likes/reactions
    • admins can set a list of custom “message of the day”
    • admins can change the maximum note length
    • the PWA icon matches the instance icon
    • deleted custom emoji are automatically removed from Drive
    • container images are much smaller (we don’t ship unused +dependencies)
    • CWs can be up to 500 characters
    • admins can use multiple configuration files by setting the +MISSKEY_CONFIG_YML environment variable to a path with wildcards +(e.g. MISSKEY_CONFIG_YML=/path/to/files/*.yml, they’ll be merged +in alphabetical order)
    - \ No newline at end of file + \ No newline at end of file diff --git a/docs/customisation/index.html b/docs/customisation/index.html new file mode 100644 index 0000000..09a5f80 --- /dev/null +++ b/docs/customisation/index.html @@ -0,0 +1,14 @@ +Customisation - Sharkey Documentation
    + + + \ No newline at end of file diff --git a/docs/customisation/index.xml b/docs/customisation/index.xml new file mode 100644 index 0000000..0cdf262 --- /dev/null +++ b/docs/customisation/index.xml @@ -0,0 +1,4 @@ +Customisation onhttps://docs.joinsharkey.org/docs/customisation/Recent content in Customisation onHugo -- gohugo.ioThemeshttps://docs.joinsharkey.org/docs/customisation/themes/Mon, 01 Jan 0001 00:00:00 +0000https://docs.joinsharkey.org/docs/customisation/themes/General structure # +{ id: "your-unique-identifier", name: "The Name of Your Theme", author: "your-name", desc: "Describe your fabulous theme", base: "light", props: { … } } The id must be unique across all the existing themes anywere. We suggest using a version 4 UUID (you may have a uuidgen command, or you may use an online generator) +Name, author, and description are pretty much free-form. +base must be either light or dark, and it marks your theme as a light theme or a dark theme, plus it pulls in the default values from the built-in base theme of that kind. \ No newline at end of file diff --git a/docs/customisation/sitemap.xml b/docs/customisation/sitemap.xml new file mode 100644 index 0000000..e0ec586 --- /dev/null +++ b/docs/customisation/sitemap.xml @@ -0,0 +1 @@ +https://docs.joinsharkey.org/docs/customisation/themes/ \ No newline at end of file diff --git a/docs/customisation/themes/index.html b/docs/customisation/themes/index.html new file mode 100644 index 0000000..6ed1443 --- /dev/null +++ b/docs/customisation/themes/index.html @@ -0,0 +1,129 @@ +Themes - Sharkey Documentation

    Themes

    General structure

    {
    +  id: "your-unique-identifier",
    +
    +  name: "The Name of Your Theme",
    +  author: "your-name",
    +  desc: "Describe your fabulous theme",
    +  base: "light",
    +
    +  props: {
    +    …
    +  }
    +}
    +

    The id must be unique across all the existing themes anywere. We +suggest using a version 4 UUID (you may have a uuidgen command, or +you may use an online generator)

    Name, author, and description are pretty much free-form.

    base must be either light or dark, and it marks your theme as a +light theme or a dark theme, plus it pulls in the default values from +the built-in base theme of that kind.

    List of properties

    These are the keys you can set inside the props dictionary. A few of +them are probably not used, and many are used in several places. The +simplest way to see where a key is used is to set it to something +obviously out of place (e.g. #FF0000 full red) and see what happens.

    Colours

    accent accentDarken accentLighten accentedBg focus bg +acrylicBg fg fgTransparentWeak fgTransparent fgHighlighted +fgOnAccent fgOnWhite divider indicator panel +panelHighlight panelHeaderBg panelHeaderFg panelHeaderDivider +acrylicPanel windowHeader popup shadow header navBg +navFg navHoverFg navActive navIndicator link hashtag +mention mentionMe renote modalBg scrollbarHandle +scrollbarHandleHover dateLabelFg infoBg infoFg infoWarnBg +infoWarnFg switchBg buttonBg buttonHoverBg buttonGradateA +buttonGradateB switchOffBg switchOffFg switchOnBg switchOnFg +inputBorder inputBorderHover listItemHoverBg driveFolderBg +wallpaperOverlay badge messageBg success error warn +codeString codeNumber codeBoolean deckBg htmlThemeColor X2 +X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 +X16 X17

    These can be specified in many ways:

    • #112233 RGB hex codes
    • rgb(0.5, 0.7, 1.0, 0.5) RGB floating-point tuples (values between +0 and 1)
    • rgba(0.5, 0.7, 1.0, 0.5) RGBA floating-point tuples (values +between 0 and 1), the last component is transparency
    • @fg reference to another colour
    • $something reference to a constant (see below)
    • :darken<0.5<@fg a function call with one floating-point argument +and one colour argument

    The available functions are: darken lighten alpha hue +saturate. The colour argument can be in any of the above forms (so +yes :darken<2<:alpha<0.4<@fg is a valid colour specification: it +takes the fg colour, makes it more transparent, then makes it +darker).

    Borders

    panelBorder is the only property that’s not used directly as a +colour. The default value is something like " solid 1px var(--divider). The value starts with a double-quote to tell the +theme engine “don’t try parsing this as a colour” (notice that it +doesn’t end with another quote!). var(--divider) here is CSS +syntax, with an effect pretty much the same as @divider in the +colour specifications described above.

    Fonts

    (This feature is currently only implemented by Sharkey)

    fontFaceSrc can be set to a string (no starting quote! this is never +parsed as a colour) describing the source of a font. It can be +anything that the FontFace constructor can understand as a +source:

    • local(Arial) a reference to a locally-installed font
    • url(https://example.com/somefont.ttf) a URL to a +network-accessible font file
    • url(https://example.com/somefont.ttf) format('truetype') a URL and +a specific format
    • url(https://example.com/somefont.woff) format('woff'), url(https://example.com/somefont.ttf) format('truetype'), local(Arial) a comma-separated list of any of the above (each +source is tried in order, the first one that the browser understands +and can fetch is used)

    fontFaceOpts can be set to a dictionary, that will be passed +straight to the descriptors argument to the FontFace +constructor. You +very rarely need this.

    If you want, you can even use a font from your drive: upload the file, +then click on its icon in the drive, copy the URL, and use it in +fontFaceSrc, like +url(https://instance.example.com/files/8b0cc94f-0307-4aef-867b-b2e9ee6fd79f).

    Constants

    You can also add extra values for colour specifications, using keys +starting with $. For example:

    props: {
    +  "$base": "#aa0044",
    +  "fg": ":darken<3<$base",
    +  "bg": ":lighten<4<$base",
    +  "accent": "$base"
    +}
    +

    The difference between $foo and foo is that the latter will be set +as a CSS variable, so a user’s custom CSS could refer to it, while the +former won’t escape the theme.

    Example

    This is one of the built-in Misskey themes:

    {
    +  id: "504debaf-4912-6a4c-5059-1db08a76b737",
    +
    +  name: "Mi Botanical Dark",
    +  author: "syuilo",
    +
    +  base: "dark",
    +
    +  props: {
    +    accent: "rgb(148, 179, 0)",
    +    bg: "rgb(37, 38, 36)",
    +    fg: "rgb(216, 212, 199)",
    +    fgHighlighted: "#fff",
    +    fgOnWhite: "@accent",
    +    divider: "rgba(255, 255, 255, 0.14)",
    +    panel: "rgb(47, 47, 44)",
    +    panelHeaderDivider: "rgba(0, 0, 0, 0)",
    +    header: ":alpha<0.7<@panel",
    +    navBg: "#363636",
    +    renote: "@accent",
    +    mention: "rgb(212, 153, 76)",
    +    mentionMe: "rgb(212, 210, 76)",
    +    hashtag: "#5bcbb0",
    +    link: "@accent",
    +  },
    +}
    +

    This is a minimal theme that just sets a font:

    {
    +  id: "0fb6f73a-02ea-4722-8394-4b02188b7cfa",
    +  name: "Prank",
    +  author: "dakkar",
    +  desc: "Sets a funny font",
    +  base: "light",
    +  props:{
    +    fontFaceSrc: "url(https://fonts.gstatic.com/s/rubikbubbles/v3/JIA1UVdwbHFJtwA7Us1BPFbRNTE.ttf) format('truetype')",
    +  }
    +}
    +
    + + + \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 65714fb..eba724c 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -2,11 +2,13 @@
    Browse docs



  • +Comparsion
  • - \ No newline at end of file + \ No newline at end of file diff --git a/docs/getting-started/overview/index.html b/docs/getting-started/overview/index.html index 38e65e5..76b8fab 100644 --- a/docs/getting-started/overview/index.html +++ b/docs/getting-started/overview/index.html @@ -6,14 +6,17 @@
    Browse docs



  • Overview

    Welcome to Sharkey’s documentation!

    Sharkey is a Misskey fork following upstream changes when possible, +Comparsion

  • Overview

    Welcome to Sharkey’s documentation!

    Sharkey is a Misskey fork following upstream changes when possible, with added features. Like any other ActivityPub software Sharkey can interface with the thousands of servers that form the fediverse, an interconnected social network, working in tandem with software such as @@ -22,7 +25,7 @@ there? Go to our directory site.

    Do you want to install Sharkey? Go to the “Fresh Install” instructions.

    Are you running a Misskey or Firefish instance, and want to migrate to Sharkey? Go the migration instructions.

    Have you just started using Sharkey, and are confused? Try the -FAQs.

    +FAQs.

    - \ No newline at end of file + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index b0704bf..16359c3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,11 +2,13 @@
    Browse docs



  • +Comparsion
  • - \ No newline at end of file + \ No newline at end of file diff --git a/docs/install/faqs/index.html b/docs/install/faqs/index.html index d9f3050..af99ffd 100644 --- a/docs/install/faqs/index.html +++ b/docs/install/faqs/index.html @@ -4,14 +4,17 @@
    Browse docs



  • FAQs

    You use the “roles” system. Log in as administrator, go to the +Comparsion

  • FAQs

    You use the “roles” system. Log in as administrator, go to the “control panel”, select the “roles” section (under “management”). Then either expand the “role template” (if you want to give every user access to search) or create a new role (if you want to give access to @@ -29,4 +32,4 @@ enable the “Enable Push-Notifications for your Browser” toggle.

    - \ No newline at end of file + \ No newline at end of file diff --git a/docs/install/fresh/index.html b/docs/install/fresh/index.html index d5d3e86..00c8125 100644 --- a/docs/install/fresh/index.html +++ b/docs/install/fresh/index.html @@ -10,14 +10,17 @@

    Fresh Installation

    +previous build, then you can install+build+migrate+restart again.

    - \ No newline at end of file + \ No newline at end of file diff --git a/docs/install/index.html b/docs/install/index.html index 81f3d88..4bcc32d 100644 --- a/docs/install/index.html +++ b/docs/install/index.html @@ -2,11 +2,13 @@
    Browse docs



  • +Comparsion
  • - \ No newline at end of file + \ No newline at end of file diff --git a/docs/install/migrate/index.html b/docs/install/migrate/index.html index 92b1f42..3c2cedb 100644 --- a/docs/install/migrate/index.html +++ b/docs/install/migrate/index.html @@ -6,14 +6,17 @@
    Browse docs



  • Migrating from another software

    - \ No newline at end of file + \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index e30ea96..8473afa 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1 +1 @@ -https://docs.joinsharkey.org/docs/getting-started/https://docs.joinsharkey.org/docs/install/https://docs.joinsharkey.org/docs/comparsion/https://docs.joinsharkey.org/docs/getting-started/overview/https://docs.joinsharkey.org/docs/install/fresh/https://docs.joinsharkey.org/docs/install/migrate/https://docs.joinsharkey.org/docs/install/faqs/https://docs.joinsharkey.org/docs/comparsion/misskey/ \ No newline at end of file +https://docs.joinsharkey.org/docs/getting-started/https://docs.joinsharkey.org/docs/install/https://docs.joinsharkey.org/docs/comparsion/https://docs.joinsharkey.org/docs/customisation/https://docs.joinsharkey.org/docs/getting-started/overview/https://docs.joinsharkey.org/docs/install/fresh/https://docs.joinsharkey.org/docs/install/migrate/https://docs.joinsharkey.org/docs/install/faqs/https://docs.joinsharkey.org/docs/comparsion/misskey/https://docs.joinsharkey.org/docs/customisation/themes/ \ No newline at end of file diff --git a/index.min.5b2a1479ccaf96cf9db5642551a1f2cb20a18b20891406e15b17927c4f343a63bd2551e971eb6ccb14e617ae0f23e3bd58a782d7cfea60d7da5aa8db0711140b.js b/index.min.dd430337a3613672bede08e73d103d8259991377efb845ab563693b23047977b35be7debc310c3db3f45753faf3412fdaeb695ada6d4ceb477483a0fefd351fe.js similarity index 57% rename from index.min.5b2a1479ccaf96cf9db5642551a1f2cb20a18b20891406e15b17927c4f343a63bd2551e971eb6ccb14e617ae0f23e3bd58a782d7cfea60d7da5aa8db0711140b.js rename to index.min.dd430337a3613672bede08e73d103d8259991377efb845ab563693b23047977b35be7debc310c3db3f45753faf3412fdaeb695ada6d4ceb477483a0fefd351fe.js index 38a5955..3245ef5 100644 --- a/index.min.5b2a1479ccaf96cf9db5642551a1f2cb20a18b20891406e15b17927c4f343a63bd2551e971eb6ccb14e617ae0f23e3bd58a782d7cfea60d7da5aa8db0711140b.js +++ b/index.min.dd430337a3613672bede08e73d103d8259991377efb845ab563693b23047977b35be7debc310c3db3f45753faf3412fdaeb695ada6d4ceb477483a0fefd351fe.js @@ -7,7 +7,25 @@ Do you want to find an instance running Sharkey, and create an account there? Go Do you want to install Sharkey? Go to the \u0026ldquo;Fresh Install\u0026rdquo; instructions. Are you running a Misskey or Firefish instance, and want to migrate to Sharkey? Go the migration instructions. Have you just started using Sharkey, and are confused? Try the FAQs. -`}),e.add({id:2,href:"/docs/install/",title:"Install",description:"",content:""}),e.add({id:3,href:"/docs/install/fresh/",title:"Fresh Installation",description:`Before you start, you really need: +`}),e.add({id:2,href:"/docs/install/",title:"Install",description:"",content:""}),e.add({id:3,href:"/docs/customisation/themes/",title:"Themes",description:`General structure # { id: \u0026quot;your-unique-identifier\u0026quot;, name: \u0026quot;The Name of Your Theme\u0026quot;, author: \u0026quot;your-name\u0026quot;, desc: \u0026quot;Describe your fabulous theme\u0026quot;, base: \u0026quot;light\u0026quot;, props: { … } } The id must be unique across all the existing themes anywere. We suggest using a version 4 UUID (you may have a uuidgen command, or you may use an online generator) +Name, author, and description are pretty much free-form. +base must be either light or dark, and it marks your theme as a light theme or a dark theme, plus it pulls in the default values from the built-in base theme of that kind.`,content:`General structure # { id: \u0026quot;your-unique-identifier\u0026quot;, name: \u0026quot;The Name of Your Theme\u0026quot;, author: \u0026quot;your-name\u0026quot;, desc: \u0026quot;Describe your fabulous theme\u0026quot;, base: \u0026quot;light\u0026quot;, props: { … } } The id must be unique across all the existing themes anywere. We suggest using a version 4 UUID (you may have a uuidgen command, or you may use an online generator) +Name, author, and description are pretty much free-form. +base must be either light or dark, and it marks your theme as a light theme or a dark theme, plus it pulls in the default values from the built-in base theme of that kind. +List of properties # These are the keys you can set inside the props dictionary. A few of them are probably not used, and many are used in several places. The simplest way to see where a key is used is to set it to something obviously out of place (e.g. #FF0000 full red) and see what happens. +Colours # accent accentDarken accentLighten accentedBg focus bg acrylicBg fg fgTransparentWeak fgTransparent fgHighlighted fgOnAccent fgOnWhite divider indicator panel panelHighlight panelHeaderBg panelHeaderFg panelHeaderDivider acrylicPanel windowHeader popup shadow header navBg navFg navHoverFg navActive navIndicator link hashtag mention mentionMe renote modalBg scrollbarHandle scrollbarHandleHover dateLabelFg infoBg infoFg infoWarnBg infoWarnFg switchBg buttonBg buttonHoverBg buttonGradateA buttonGradateB switchOffBg switchOffFg switchOnBg switchOnFg inputBorder inputBorderHover listItemHoverBg driveFolderBg wallpaperOverlay badge messageBg success error warn codeString codeNumber codeBoolean deckBg htmlThemeColor X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 +These can be specified in many ways: +#112233 RGB hex codes rgb(0.5, 0.7, 1.0, 0.5) RGB floating-point tuples (values between 0 and 1) rgba(0.5, 0.7, 1.0, 0.5) RGBA floating-point tuples (values between 0 and 1), the last component is transparency @fg reference to another colour \$something reference to a constant (see below) :darken\u0026lt;0.5\u0026lt;@fg a function call with one floating-point argument and one colour argument The available functions are: darken lighten alpha hue saturate. The colour argument can be in any of the above forms (so yes :darken\u0026lt;2\u0026lt;:alpha\u0026lt;0.4\u0026lt;@fg is a valid colour specification: it takes the fg colour, makes it more transparent, then makes it darker). +Borders # panelBorder is the only property that\u0026rsquo;s not used directly as a colour. The default value is something like \u0026quot; solid 1px var(--divider). The value starts with a double-quote to tell the theme engine \u0026ldquo;don\u0026rsquo;t try parsing this as a colour\u0026rdquo; (notice that it doesn\u0026rsquo;t end with another quote!). var(--divider) here is CSS syntax, with an effect pretty much the same as @divider in the colour specifications described above. +Fonts # (This feature is currently only implemented by Sharkey) +fontFaceSrc can be set to a string (no starting quote! this is never parsed as a colour) describing the source of a font. It can be anything that the FontFace constructor can understand as a source: +local(Arial) a reference to a locally-installed font url(https://example.com/somefont.ttf) a URL to a network-accessible font file url(https://example.com/somefont.ttf) format('truetype') a URL and a specific format url(https://example.com/somefont.woff) format('woff'), url(https://example.com/somefont.ttf) format('truetype'), local(Arial) a comma-separated list of any of the above (each source is tried in order, the first one that the browser understands and can fetch is used) fontFaceOpts can be set to a dictionary, that will be passed straight to the descriptors argument to the FontFace constructor. You very rarely need this. +If you want, you can even use a font from your drive: upload the file, then click on its icon in the drive, copy the URL, and use it in fontFaceSrc, like url(https://instance.example.com/files/8b0cc94f-0307-4aef-867b-b2e9ee6fd79f). +Constants # You can also add extra values for colour specifications, using keys starting with \$. For example: +props: { \u0026quot;\$base\u0026quot;: \u0026quot;#aa0044\u0026quot;, \u0026quot;fg\u0026quot;: \u0026quot;:darken\u0026lt;3\u0026lt;\$base\u0026quot;, \u0026quot;bg\u0026quot;: \u0026quot;:lighten\u0026lt;4\u0026lt;\$base\u0026quot;, \u0026quot;accent\u0026quot;: \u0026quot;\$base\u0026quot; } The difference between \$foo and foo is that the latter will be set as a CSS variable, so a user\u0026rsquo;s custom CSS could refer to it, while the former won\u0026rsquo;t escape the theme. +Example # This is one of the built-in Misskey themes: +{ id: \u0026quot;504debaf-4912-6a4c-5059-1db08a76b737\u0026quot;, name: \u0026quot;Mi Botanical Dark\u0026quot;, author: \u0026quot;syuilo\u0026quot;, base: \u0026quot;dark\u0026quot;, props: { accent: \u0026quot;rgb(148, 179, 0)\u0026quot;, bg: \u0026quot;rgb(37, 38, 36)\u0026quot;, fg: \u0026quot;rgb(216, 212, 199)\u0026quot;, fgHighlighted: \u0026quot;#fff\u0026quot;, fgOnWhite: \u0026quot;@accent\u0026quot;, divider: \u0026quot;rgba(255, 255, 255, 0.14)\u0026quot;, panel: \u0026quot;rgb(47, 47, 44)\u0026quot;, panelHeaderDivider: \u0026quot;rgba(0, 0, 0, 0)\u0026quot;, header: \u0026quot;:alpha\u0026lt;0.7\u0026lt;@panel\u0026quot;, navBg: \u0026quot;#363636\u0026quot;, renote: \u0026quot;@accent\u0026quot;, mention: \u0026quot;rgb(212, 153, 76)\u0026quot;, mentionMe: \u0026quot;rgb(212, 210, 76)\u0026quot;, hashtag: \u0026quot;#5bcbb0\u0026quot;, link: \u0026quot;@accent\u0026quot;, }, } This is a minimal theme that just sets a font: +{ id: \u0026quot;0fb6f73a-02ea-4722-8394-4b02188b7cfa\u0026quot;, name: \u0026quot;Prank\u0026quot;, author: \u0026quot;dakkar\u0026quot;, desc: \u0026quot;Sets a funny font\u0026quot;, base: \u0026quot;light\u0026quot;, props:{ fontFaceSrc: \u0026quot;url(https://fonts.gstatic.com/s/rubikbubbles/v3/JIA1UVdwbHFJtwA7Us1BPFbRNTE.ttf) format('truetype')\u0026quot;, } } `}),e.add({id:4,href:"/docs/install/fresh/",title:"Fresh Installation",description:`Before you start, you really need: an always-on machine that can receive connections from the Internet a domain name to dedicate to your Sharkey instance, resolving to the address(es) of that machine a web server running on that machine, with valid TLS certificates for the domain name With Docker # Prerequisites: Docker Compose Plugin Create multiple directories: mkdir Sharkey \u0026amp;\u0026amp; mkdir Sharkey/.config Fetch all required examples and enter directory: @@ -15,7 +33,7 @@ wget -O Sharkey/docker-compose.`,content:`Before you start, you really need: an always-on machine that can receive connections from the Internet a domain name to dedicate to your Sharkey instance, resolving to the address(es) of that machine a web server running on that machine, with valid TLS certificates for the domain name With Docker # Prerequisites: Docker Compose Plugin Create multiple directories: mkdir Sharkey \u0026amp;\u0026amp; mkdir Sharkey/.config Fetch all required examples and enter directory: -wget -O Sharkey/docker-compose.yml https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/docker-compose.yml.example wget -O Sharkey/.config/default.yml https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/.config/example.yml wget -O Sharkey/.config/docker.env https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/.config/docker_example.env cd Sharkey Edit .config/default.yml, there are comments explaining what each option means. In particular, we\u0026rsquo;re going to assume you have: +wget -O Sharkey/docker-compose.yml https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/docker-compose.yml.example wget -O Sharkey/.config/default.yml https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/.config/docker_example.yml wget -O Sharkey/.config/docker.env https://git.joinsharkey.org/Sharkey/Sharkey/raw/branch/stable/.config/docker_example.env cd Sharkey Edit .config/default.yml, there are comments explaining what each option means. In particular, we\u0026rsquo;re going to assume you have: url: https://{YOUR DOMAIN NAME}/ (replace {YOUR DOMAIN NAME} with the domain name we talked about at the start). Edit docker-compose.yml, there are multiple comments there as well. If you want to set up note search with meilisearch, uncomment all of meilisearch options, otherwise proceed to do the following changes in the services: / web: section: uncomment the line that starts with image: remove the line build: . Starting: @@ -45,7 +63,7 @@ Configure the web server # NGINX # See Misskey\u0026rsquo;s instructions Update Sharkey # Very similar to the installation process: sudo -u sharkey -i cd Sharkey git checkout stable git pull --recurse-submodules pnpm install --frozen-lockfile pnpm run build pnpm run migrate Then restart the service (sudo systemctl restart sharkey or rc-service sharkey restart). If there\u0026rsquo;s problems with updating, you can run pnpm run clean and/or pnpm run clean-all which will remove all the effects of a previous build, then you can install+build+migrate+restart again. -`}),e.add({id:4,href:"/docs/install/migrate/",title:"Migrating from another software",description:`From Misskey # Let\u0026rsquo;s say you have a working Misskey, running as user misskey from /home/misskey/misskey. +`}),e.add({id:5,href:"/docs/install/migrate/",title:"Migrating from another software",description:`From Misskey # Let\u0026rsquo;s say you have a working Misskey, running as user misskey from /home/misskey/misskey. Migrating to Sharkey is the same as updating to a newer Misskey version: sudo -u misskey -i cd misskey git remote rename origin misskey git remote add origin https://github.com/transfem-org/Sharkey.git git remote update -p git checkout -b stable --track origin/stable git pull --recurse-submodules pnpm install --frozen-lockfile pnpm run build pnpm run migrate Then you can restart your service.`,content:`From Misskey # Let\u0026rsquo;s say you have a working Misskey, running as user misskey from /home/misskey/misskey. Migrating to Sharkey is the same as updating to a newer Misskey version: @@ -75,11 +93,11 @@ BEGIN; -- all existing users are approved, because Firefish doesn't have a -- co Start everything up again, you should see no errors in the logs. Log in as an administrator, and go to the control panel. If you use an object store such as S3, double-check your settings (it\u0026rsquo;s possible, for example, that the URL now looks like https://https://yourdomain.com, fix it). If you want your users to be able to search notes, you must enable it via the \u0026ldquo;roles\u0026rdquo; system. Congratulations, you\u0026rsquo;re now running Sharkey! -`}),e.add({id:5,href:"/docs/comparsion/",title:"Comparsion",description:"",content:""}),e.add({id:6,href:"/docs/comparsion/misskey/",title:"Sharkey vs Misskey",description:`A (probably comprehensive) list of differences # Big ones # fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people\u0026rsquo;s replies to your posts may not get imported) admins can require approval for new users\u0026rsquo; signups admins can silence users admins can mark all of a user\u0026rsquo;s media as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) Fun ones # can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles \u0026ldquo;speak as cat\u0026rdquo; separate from \u0026ldquo;is a cat\u0026rdquo; (both setting are federated with compatible software) UI/UX # option to open a note\u0026rsquo;s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish \u0026ldquo;sign out\u0026rdquo; button in user menu user profile page has \u0026ldquo;notes\u0026rdquo; / \u0026ldquo;all\u0026rdquo; / \u0026ldquo;including files\u0026rdquo; tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation one-button \u0026ldquo;like\u0026rdquo; (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a \u0026ldquo;open remote profile\u0026rdquo; option, and show custom fields (e.`,content:`A (probably comprehensive) list of differences # Big ones # fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people\u0026rsquo;s replies to your posts may not get imported) admins can require approval for new users\u0026rsquo; signups admins can silence users admins can mark all of a user\u0026rsquo;s media as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) Fun ones # can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles \u0026ldquo;speak as cat\u0026rdquo; separate from \u0026ldquo;is a cat\u0026rdquo; (both setting are federated with compatible software) UI/UX # option to open a note\u0026rsquo;s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish \u0026ldquo;sign out\u0026rdquo; button in user menu user profile page has \u0026ldquo;notes\u0026rdquo; / \u0026ldquo;all\u0026rdquo; / \u0026ldquo;including files\u0026rdquo; tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation one-button \u0026ldquo;like\u0026rdquo; (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a \u0026ldquo;open remote profile\u0026rdquo; option, and show custom fields (e.g. the user\u0026rsquo;s website address) MFM cheatsheet when composing notes emoji auto-complete is case-insensitive it\u0026rsquo;s always clear if a note has a poll (misskey sometimes hides that) multiple-choice polls are clearly marked as such boosts and quote-boost are accounted separately only 1 boost per note per user is allowed admins can remove bots from \u0026ldquo;trending\u0026rdquo; users can hide bots from their timelines translatable notes are shown translated regardless of where they\u0026rsquo;re shown (e.g. when quoted, or when looking at their replies) when searching, users can restrict results to notes with attachments CSS class names are human-readable, to simplify browser-side customisation users can disable indexing of their notes (the setting is federated) \u0026ldquo;likes\u0026rdquo; and \u0026ldquo;reactions\u0026rdquo; federate correctly to Mastodon / Pleroma / Akkoma (Misskey sends them all as reactions) different error icons users can disable the \u0026ldquo;disconnected\u0026rdquo; warning (connection is usually re-established automatically, so the warning is rarely useful) users can set a default emoji for their likes/reactions when the instance is using meilisearch to index notes, Sharkey will use it in more cases (e.g. when limiting results to notes containing images) when showing a reply containing many mentions, they are shortened there\u0026rsquo;s a search widget Ones of interest to admins # quote-boosts federate correctly from/to Mastodon forks the not-very-functional \u0026ldquo;automatically mark attachments as NSFW\u0026rdquo; has been removed (smaller installation, faster image/video uploads) argon2 instead of bcrypt for hashing users\u0026rsquo; secrets admins can delete remote emojis admins can disable achievements admins can refresh remote user details admins can set a default emoji for likes/reactions the PWA icon matches the instance icon deleted custom emoji are automatically removed from Drive `}),e.add({id:7,href:"/docs/install/faqs/",title:"FAQs",description:`How do I enable note search? # You use the \u0026ldquo;roles\u0026rdquo; system. Log in as administrator, go to the \u0026ldquo;control panel\u0026rdquo;, select the \u0026ldquo;roles\u0026rdquo; section (under \u0026ldquo;management\u0026rdquo;). Then either expand the \u0026ldquo;role template\u0026rdquo; (if you want to give every user access to search) or create a new role (if you want to give access to only some users), then change the \u0026ldquo;Usage of note search\u0026rdquo; setting. +`}),e.add({id:6,href:"/docs/comparsion/",title:"Comparsion",description:"",content:""}),e.add({id:7,href:"/docs/comparsion/misskey/",title:"Sharkey vs Misskey",description:`A (probably comprehensive) list of differences # Big ones # fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people\u0026rsquo;s replies to your posts may not get imported) admins can require approval for new users\u0026rsquo; signups admins can silence users admins can mark all of a user\u0026rsquo;s media, or a whole remote instance, as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) \u0026ldquo;bubble\u0026rdquo; timeline, showing all known notes from an admin-configured list of remote instances you can specify the visibility of each boost / renote thread view updates in real time check signature on ActivityPub GET requests, also known as \u0026ldquo;secure mode\u0026rdquo; or \u0026ldquo;authorized fetch\u0026rdquo; (experimental) Fun ones # can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles \u0026ldquo;speak as cat\u0026rdquo; separate from \u0026ldquo;is a cat\u0026rdquo; (both setting are federated with compatible software) themes can specify a font, so you can use whatever font is most legible for you you can change the way note threads are show to be more like Firefish (with lines connecting notes and their replies) MFM renders mathematical formulas UI/UX # option to open a note\u0026rsquo;s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish \u0026ldquo;sign out\u0026rdquo; button in user menu user profile page has \u0026ldquo;notes\u0026rdquo; / \u0026ldquo;all\u0026rdquo; / \u0026ldquo;including files\u0026rdquo; tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation you can choose to always show long notes in their entirety you can choose to always expand notes that have a CW one-button \u0026ldquo;like\u0026rdquo; (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note italic, bold, hashtags accept more characters (so #æîç is a valid hashtag) supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a \u0026ldquo;open remote profile\u0026rdquo; option, and show custom fields (e.`,content:`A (probably comprehensive) list of differences # Big ones # fully federated note editing, you can also see previous versions of edited notes Mastodon-compatible API, including OAuth2 can import your exported posts from Mastodon and most of its forks, Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram, Facebook, including attachments (threading may not work perfectly, and other people\u0026rsquo;s replies to your posts may not get imported) admins can require approval for new users\u0026rsquo; signups admins can silence users admins can mark all of a user\u0026rsquo;s media, or a whole remote instance, as NSFW GDPR-style Data Subject Access Requests (users can export all data related to themselves) \u0026ldquo;bubble\u0026rdquo; timeline, showing all known notes from an admin-configured list of remote instances you can specify the visibility of each boost / renote thread view updates in real time check signature on ActivityPub GET requests, also known as \u0026ldquo;secure mode\u0026rdquo; or \u0026ldquo;authorized fetch\u0026rdquo; (experimental) Fun ones # can play module / tracker music files (federated) listenbrainz integration (federated) background image on user profiles \u0026ldquo;speak as cat\u0026rdquo; separate from \u0026ldquo;is a cat\u0026rdquo; (both setting are federated with compatible software) themes can specify a font, so you can use whatever font is most legible for you you can change the way note threads are show to be more like Firefish (with lines connecting notes and their replies) MFM renders mathematical formulas UI/UX # option to open a note\u0026rsquo;s detailed view by clicking on the note (most useful on mobile) images lacking alt text are marked as such UI elements can be round (as in Misskey) or square-ish \u0026ldquo;sign out\u0026rdquo; button in user menu user profile page has \u0026ldquo;notes\u0026rdquo; / \u0026ldquo;all\u0026rdquo; / \u0026ldquo;including files\u0026rdquo; tabs attachments can be collapsed by default buttons to show/hide all notes with CWs in a conversation you can choose to always show long notes in their entirety you can choose to always expand notes that have a CW one-button \u0026ldquo;like\u0026rdquo; (plus custom reactions on a separate button) animated MFM can be enabled/disabled on each note italic, bold, hashtags accept more characters (so #æîç is a valid hashtag) supports longer alt text pop-up user profiles show if follow requests to the user require approval, have a \u0026ldquo;open remote profile\u0026rdquo; option, and show custom fields (e.g. the user\u0026rsquo;s website address) user profile pages always show the whole user description MFM cheatsheet when composing notes MFM won\u0026rsquo;t create a search box just because a sentence ends in \u0026ldquo;search\u0026rdquo; usernames with dots (like @some.one@example.com) are correctly recognised emoji auto-complete is case-insensitive it\u0026rsquo;s always clear if a note has a poll (misskey sometimes hides that) multiple-choice polls are clearly marked as such boosts and quote-boost are accounted separately only 1 boost per note per user is allowed admins can remove bots from \u0026ldquo;trending\u0026rdquo; you can hide bots from your timelines translatable notes are shown translated regardless of where they\u0026rsquo;re shown (e.g. when quoted, or when looking at their replies) when searching, you can restrict results to notes with attachments CSS class names are human-readable, to simplify browser-side customisation you can disable indexing of your notes (the setting is federated) \u0026ldquo;likes\u0026rdquo; and \u0026ldquo;reactions\u0026rdquo; federate correctly to Mastodon / Pleroma / Akkoma (Misskey sends them all as reactions) different error icons you can disable the \u0026ldquo;disconnected\u0026rdquo; warning (connection is usually re-established automatically, so the warning is rarely useful) you can set a default emoji for your likes/reactions when the instance is using meilisearch to index notes, Sharkey will use it in more cases (e.g. when limiting results to notes containing images) the depth of the thread / detailed view of notes can be changed (still defaults to 5) there\u0026rsquo;s a search widget the search functions (both the dedicated pages and the widget) also cover the functionality of the \u0026ldquo;lookup\u0026rdquo; feature, so you can search for a fully-qualified remote username and have their profile fetched and shown there\u0026rsquo;s a \u0026ldquo;back\u0026rdquo; button at the top of each page timelines will show notes from users you follow, even if their instance is muted tag view respects blocks, mutes, suspensions you won\u0026rsquo;t receive any notification for muted threads Ones of interest to admins # quote-boosts federate correctly from/to Mastodon forks the not-very-functional \u0026ldquo;automatically mark attachments as NSFW\u0026rdquo; has been removed (smaller installation, faster image/video uploads) argon2 instead of bcrypt for hashing users\u0026rsquo; secrets admins can delete remote emojis admins can disable achievements admins can refresh remote user details admins can set a default emoji for likes/reactions admins can set a list of custom \u0026ldquo;message of the day\u0026rdquo; admins can change the maximum note length the PWA icon matches the instance icon deleted custom emoji are automatically removed from Drive container images are much smaller (we don\u0026rsquo;t ship unused dependencies) CWs can be up to 500 characters admins can use multiple configuration files by setting the MISSKEY_CONFIG_YML environment variable to a path with wildcards (e.g. MISSKEY_CONFIG_YML=/path/to/files/*.yml, they\u0026rsquo;ll be merged in alphabetical order) `}),e.add({id:8,href:"/docs/customisation/",title:"Customisation",description:"",content:""}),e.add({id:9,href:"/docs/install/faqs/",title:"FAQs",description:`How do I enable note search? # You use the \u0026ldquo;roles\u0026rdquo; system. Log in as administrator, go to the \u0026ldquo;control panel\u0026rdquo;, select the \u0026ldquo;roles\u0026rdquo; section (under \u0026ldquo;management\u0026rdquo;). Then either expand the \u0026ldquo;role template\u0026rdquo; (if you want to give every user access to search) or create a new role (if you want to give access to only some users), then change the \u0026ldquo;Usage of note search\u0026rdquo; setting. How do I give my users more Drive space?`,content:`How do I enable note search? # You use the \u0026ldquo;roles\u0026rdquo; system. Log in as administrator, go to the \u0026ldquo;control panel\u0026rdquo;, select the \u0026ldquo;roles\u0026rdquo; section (under \u0026ldquo;management\u0026rdquo;). Then either expand the \u0026ldquo;role template\u0026rdquo; (if you want to give every user access to search) or create a new role (if you want to give access to only some users), then change the \u0026ldquo;Usage of note search\u0026rdquo; setting. How do I give my users more Drive space? # You use the \u0026ldquo;roles\u0026rdquo; system. Log in as administrator, go to the \u0026ldquo;control panel\u0026rdquo;, select the \u0026ldquo;roles\u0026rdquo; section (under \u0026ldquo;management\u0026rdquo;). Then either expand the \u0026ldquo;role template\u0026rdquo; (if you want to give every user the same amount space) or create a new role (if you want to give different amounts of space to different users), then change the \u0026ldquo;Drive capacity\u0026rdquo; setting. How do I enable push notifications for the web interface? # First of all, you need to generate a pair of so-called \u0026ldquo;VAPID\u0026rdquo; keys. One way to do that is, from your Sharkey directory (git clone, or inside the Docker image): ./packages/backend/node_modules/.bin/web-push generate-vapid-keys Alternatively, you can use an online generator. Once you have that public and private keys, log in as administrator, go to the \u0026ldquo;control panel\u0026rdquo;, select the \u0026ldquo;general\u0026rdquo; section (under \u0026ldquo;settings\u0026rdquo;), scroll to the \u0026ldquo;ServiceWorker\u0026rdquo; bit, enter both keys, and enable the \u0026ldquo;Enable Push-Notifications for your Browser\u0026rdquo; toggle. -`}),e.add({id:8,href:"/docs/",title:"Docs",description:"Docs.",content:""}),search.addEventListener("input",t,!0);function t(){const s=5;var n=this.value,o=e.search(n,{limit:s,enrich:!0});const t=new Map;for(const e of o.flatMap(e=>e.result)){if(t.has(e.doc.href))continue;t.set(e.doc.href,e.doc)}if(suggestions.innerHTML="",suggestions.classList.remove("d-none"),t.size===0&&n){const e=document.createElement("div");e.innerHTML=`No results for "${n}"`,e.classList.add("suggestion__no-results"),suggestions.appendChild(e);return}for(const[r,a]of t){const n=document.createElement("div");suggestions.appendChild(n);const e=document.createElement("a");e.href=r,n.appendChild(e);const o=document.createElement("span");o.textContent=a.title,o.classList.add("suggestion__title"),e.appendChild(o);const i=document.createElement("span");if(i.textContent=a.description,i.classList.add("suggestion__description"),e.appendChild(i),suggestions.appendChild(n),suggestions.childElementCount==s)break}}})() \ No newline at end of file +`}),e.add({id:10,href:"/docs/",title:"Docs",description:"Docs.",content:""}),search.addEventListener("input",t,!0);function t(){const s=5;var n=this.value,o=e.search(n,{limit:s,enrich:!0});const t=new Map;for(const e of o.flatMap(e=>e.result)){if(t.has(e.doc.href))continue;t.set(e.doc.href,e.doc)}if(suggestions.innerHTML="",suggestions.classList.remove("d-none"),t.size===0&&n){const e=document.createElement("div");e.innerHTML=`No results for "${n}"`,e.classList.add("suggestion__no-results"),suggestions.appendChild(e);return}for(const[r,a]of t){const n=document.createElement("div");suggestions.appendChild(n);const e=document.createElement("a");e.href=r,n.appendChild(e);const o=document.createElement("span");o.textContent=a.title,o.classList.add("suggestion__title"),e.appendChild(o);const i=document.createElement("span");if(i.textContent=a.description,i.classList.add("suggestion__description"),e.appendChild(i),suggestions.appendChild(n),suggestions.childElementCount==s)break}}})() \ No newline at end of file diff --git a/robots.txt b/robots.txt index fc896ea..a1a084e 100644 --- a/robots.txt +++ b/robots.txt @@ -6,6 +6,8 @@ Disallow: /docs/getting-started/overview/ Disallow: /docs/install/ +Disallow: /docs/customisation/themes/ + Disallow: /docs/install/fresh/ Disallow: /docs/install/migrate/ @@ -14,6 +16,8 @@ Disallow: /docs/comparsion/ Disallow: /docs/comparsion/misskey/ +Disallow: /docs/customisation/ + Disallow: /docs/install/faqs/ Disallow: /docs/ diff --git a/tags/index.html b/tags/index.html index 3546a21..375c023 100644 --- a/tags/index.html +++ b/tags/index.html @@ -3,4 +3,4 @@

    Tags

    - \ No newline at end of file + \ No newline at end of file