引用标注

:information_source: Summary Adds Obsidian-style callouts as an alternative for markdown quotes.
:eyeglasses: Preview Theme Creator
:hammer_and_wrench: Repository GitHub - Arkshine/discourse-quote-callouts
:question: Install Guide How to install a theme or theme component
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

This theme component adds support for Obsidian-style callouts in Discourse as an alternative for markdown quotes.

Callouts are a great way to highlight content and add notes, warnings, or other special messages to your posts.


Usage

To create a callout, add [!type] to the first line of a quote, where type is the type identifier. The type identifier determines how the callout looks and feels. To see all available types, refer to Supported types.

:information_source: The type identifier is case-insensitive.

> [!tip] 
> **Tip**: Use `code snippets` to enhance readability. They provide clarity and precision.

Custom title

By default, the title of the callout is its type identifier in title case. You can change it by adding text after the type identifier:

> [!question] Custom Label 🤗
> Callouts labels can be customized.

> [!abstract] [date=2032-12-22 timezone="Europe/Paris"]
> They can also contain special inline formatting like dynamic dates.

You can also create title-only callouts:

> [!success] solved.

chrome_z53bS1GCew

Foldable callouts

You can make a callout foldable by adding a plus + or a minus - directly after the type identifier.

  • + expands the callout by default
  • - collapses it instead
> [!todo]- My Todo List
>
> - [x] Write documentation
> - [ ] Add tests
> - [ ] Review code

> [!todo]+ My Expanded Todo List
>
> - [x] Create repository
> - [ ] Setup CI/CD
> - [ ] Deploy to production

The image shows a Todoist project titled "arkshine" with checkboxes for "Create repository," "Setup CI/CD," and "Deploy to production" under "My Expanded Todo List," and options "My Todo List" and "My Expanded Todo List" visible. (Captioned by AI)

Nested callouts

You can nest callouts in multiple levels.

> [!question] Can callouts be nested?
>
> > [!todo] Yes!, they can.
> >
> > > [!example] You can even use multiple layers of nesting.

> [!tip]
> Here's a helpful tip
>
> > [!info]
> > With some additional information
> >
> > > [!example]
> > > And a nested example
>
> Back to the main tip

Supported default types

You can use several callout types and aliases.
Each type comes with a different background color and icon.

:information_source: You can create your callouts or manage the default ones.
See the callouts setting.

:information_source: Any unsupported type defaults to the note type. See Default Fallbacks section for more information.

:information_source: The type identifier is case-insensitive.

Type Description Aliases
note For general notes and information -
abstract For summaries or abstract sections summary, tldr
info For informational content -
todo For task lists or todo items -
tip For tips and important information hint, important
success For success messages check, done
question For questions and FAQs help, faq
warning For warnings caution, attention
failure For failure notices fail, missing
danger For danger or error messages error
bug For bug reports or known issues -
example For examples -
quote For quotes cite


Callout types examples 2

Customization

Icon

You can use either FontAwesome 6 icon or directly provide an SVG element.

SVG element

While the free FontAwesome version provides many choices, you may feel limited sometimes.
You can provide an SVG element <svg>...</svg>.

Example: Lucile icons – It’s a great set with the advantage of choosing the stroke width.

  1. Select an icon
  2. Adjust the Stroke width
  3. Click on Copy SVG
  4. Go to the theme component settings and paste the content



image

Default Fallbacks

You can set default values for when a specified callout type isn’t found with the following settings:

  • callout_fallback_type
  • callout_fallback_icon
  • callout_fallback_color
> [!discourse is fantastic]
> Yes.

Global configuration

You can customize various aspects of the callouts through

  • Background opacity
  • Border properties (width, style, color, radius)
  • Padding
  • Title font properties (size, weight)
  • Space between icon and title

Per-Callout configuration

Each callout type can be customized with:

  • Custom icon
  • Title text
  • Color scheme
  • Border properties

See the Settings section below.

Settings

Setting Description
callouts Define the callouts.
callout_fallback_type The default callout type to use when the specified type is not found.
Default value: note
callout_fallback_icon The default icon to use when the specified type is not found.
Default value: far-pen-to-square
callout_fallback_color The default color to use when the specified type is not found.
Default value: #027aff
callout_background_opacity The global background opacity for the callout (1 to 100).
Default value: 10
callout_border_width The global border width for the callout.
Default value: empty
callout_border_style The global border style for the callout.
Default value: empty
callout_border_color The global border color for the callout.
Default value: empty
callout_border_radius The global border radius for the callout.
Default value: var(--d-border-radius)
callout_padding The global padding for the callout.
Default value: 0.75em 0.75em 0.75em 1.5em
callout_title_font_size The global font size for the callout title.
Default value: inherit
callout_title_font_weight The global font weight for the callout title.
Default value: bold
callout_title_gap The global gap between the callout icon and title.
Default value: 0.5em
callout_icon_sizep The global size for the callout icon.
svg_icons List of FontAwesome 6 icons used in this theme component.

Per-callout setting page:

Setting Description
Type* The type of the callout.
This identifier will be used in the callout syntax: [!type]
Alias The aliases for the callout, separated by |.
Example: cite|quote
Icon The fontawesome icon for the callout.
You might need to add it to svg_icons setting if it’s not available in the default subset.
Alternatively, you can provide an SVG element directly, e.g. <svg>...</svg>
Icon size The size for the callout icon.
Note: Use only valid CSS values, e.g. 1em, 16px, 1.5rem
Title The title for the callout.
If no title is provided in the callout, this setting will be used.
Note: if both are empty, the title will be the callout type.
Color The color for the callout.
This will be used for the background, title, and icon.
Note: Use only hexadecimal color codes, e.g. #027aff
Border width The border width for the callout.
Border style The border style for the callout.
Border color The border color for the callout.
Important: if you’re using CSS functions to produce an alpha value, such as rgba, make sure not to use spaces between the values, e.g., rgba(145,145,145,0.1)
Border radius The border radius for the callout.

* Required setting

Roadmap

Future development plans may include:

  • Autocomplete types on typing

Credits

42 个赞

太好了!\n\n我认为这可以用于此目的?:\n\nAdditional Post "Colour" coding

6 个赞

这似乎是一个有效的用法!

8 个赞

太棒了!你真厉害

4 个赞

这是一个很棒的补充。比基础讨论似乎包含的要多得多(尽管我还没有使用过 Obsidian)。

2 个赞

这看起来太棒了。电子邮件中的标注也会被正确样式化吗?

2 个赞

将此组件添加到我的网站时,我收到一条错误消息,内容为:

:warning: 您的网站可能无法正常工作,因为某个主题/组件存在错误。
由“引用标注”引起。单击此处进行更新、重新配置或禁用。

1 个赞

您运行的是哪个版本的 Discourse?

我使用的是 Tests-passed(3.5 beta),看起来没问题。

如果您使用的是 Stable 版本,您可能仍然是 3.4 或更早的版本,因为 3.4 刚刚发布到 Stable 版本。

1 个赞

我最近没有升级,因为有PostgreSQL 的问题。我升级后会向你汇报!

2 个赞

不确定是不是这种情况……但这是一个可能的嫌疑,因为许多更改已经推出,并且 TC 等……结构已经改变。例如,迁移到 Glimmer 组件。

1 个赞

恐怕不会。这需要一个插件。

您当前的 Discourse 版本是多少?

2 个赞

我已经更新到最新版本,现在可以正常工作了。

不幸的是,缺乏电子邮件支持使得它在我们的情况下无法使用。我们的大多数成员都订阅了群组和类别,因此通过电子邮件阅读消息。真遗憾!

3 个赞

我稍后可能会尝试制作一个插件版本!

7 个赞

这是 Discourse 的一个绝佳补充!:heart: :heart: :heart:

这正是 Discourse 核心所缺少的,至少是四种最常见的 callout 类型,如 info、danger、warning 和 success。我们已经使用 blockquote + emoji 格式一段时间了,我们一定会尝试这个 :slight_smile:

5 个赞

很喜欢你在这里所做的!

6 个赞

太好了,谢谢!

2 个赞

您好,只有一件事,引用代码块出现在我主页的摘录中,最好不要出现:

3 个赞

@patrickemin 你能测试一下最新版本吗?它现在应该可以清理主题摘录了。

4 个赞

是的,它奏效了,谢谢!

2 个赞

感谢您提供的这个主题组件,我非常喜欢!

但不幸的是,我不得不暂时禁用它,因为它在我的网站上造成了视觉问题,并且我在控制台中看到了以下内容,我能够追溯到您的 callouts.gjs

2 个赞