CINXE.COM

Salmention - IndieWeb

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-zebra-design-disabled vector-feature-custom-font-size-clientpref-disabled vector-feature-client-preferences-disabled vector-feature-typography-survey-disabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Salmention - IndieWeb</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-zebra-design-disabled vector-feature-custom-font-size-clientpref-disabled vector-feature-client-preferences-disabled vector-feature-typography-survey-disabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )wikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"9cf7a8cb1e7c5a93c0ce943f","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Salmention","wgTitle":"Salmention","wgCurRevisionId":90723,"wgRevisionId":90723,"wgArticleId":4087,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Salmention","wgRelevantArticleId":4087,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"salmention","wgInternalRedirectTargetUrl":"/Salmention"};RLSTATE={"skins.vector.user.styles":"ready","site.styles":"ready","user.styles":"ready","skins.vector.user":"ready","user":"ready","user.options": "loading","codex-search-styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/wiki/load.php?lang=en&amp;modules=codex-search-styles%7Cskins.vector.icons%2Cstyles&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/wiki/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/wiki/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.41.0"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="description" content="Salmention is a protocol extension to Webmention to propagate comments and other interactions upstream by sending a webmention from a response to the original post when the response itself receives a response (comment, like, etc.). The original post then checks the response to the original, parses the response to the response (e.g. comment on a comment) and then displays it as an additional response on the original post."> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=5.0"> <link rel="icon" href="/favicon.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/wiki/opensearch_desc.php" title="IndieWeb (en)"> <link rel="EditURI" type="application/rsd+xml" href="https://indieweb.org/wiki/api.php?action=rsd"> <link rel="canonical" href="https://indieweb.org/Salmention"> <link rel="license" href="/IndieWebCamp:Copyrights"> <link rel="alternate" type="application/atom+xml" title="IndieWeb Atom feed" href="/wiki/index.php?title=Special:RecentChanges&amp;feed=atom"> <meta property="og:type" content="article"> <meta property="og:site_name" content="IndieWeb"> <meta property="og:title" content="Salmention"> <meta property="og:description" content="Salmention is a protocol extension to Webmention to propagate comments and other interactions upstream by sending a webmention from a response to the original post when the response itself receives a response (comment, like, etc.). The original post then checks the response to the original, parses the response to the response (e.g. comment on a comment) and then displays it as an additional response on the original post."> <meta property="og:url" content="https://indieweb.org/Salmention"> <link rel="webmention" href="https://webmention.io/indiewebcamp/webmention"> <script src="https://cdn.usefathom.com/script.js" site="ZPHFRYAA" defer></script> </head> <body class="skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Salmention rootpage-Salmention skin-vector-2022 action-view skin--responsive"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site" role="navigation"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-" class="vector-menu mw-portlet mw-portlet- emptyPortlet" > <div class="vector-menu-heading"> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-Join_the_community!" class="vector-menu mw-portlet mw-portlet-Join_the_community" > <div class="vector-menu-heading"> Join the community! </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-🌈-Code-of-conduct" class="mw-list-item"><a href="/code-of-conduct"><span>🌈 Code of conduct</span></a></li><li id="n-🎁-2024-Gift-Calendar!" class="mw-list-item"><a href="/IndieWeb_Gift_Calendar"><span>🎁 2024 Gift Calendar!</span></a></li><li id="n-📅-Events:-IndieWebCamps,-Homebrew-Website-Clubs-(HWC),-Create-Days,-and-more!" class="mw-list-item"><a href="https://events.indieweb.org/"><span>📅 Events: IndieWebCamps, Homebrew Website Clubs (HWC), Create Days, and more!</span></a></li><li id="n-👥--Meetups:-2024-12-18" class="mw-list-item"><a href="https://events.indieweb.org/tag/hwc"><span>👥 Meetups: 2024-12-18</span></a></li><li id="n-🎪-IWC-San-Diego-12/7…8" class="mw-list-item"><a href="/next-iwc"><span>🎪 IWC San Diego 12/7…8</span></a></li><li id="n-❤️-Sponsor" class="mw-list-item"><a href="/how-to-sponsor"><span>❤️ Sponsor</span></a></li><li id="n-💬-Join-#indieweb-chat" class="mw-list-item"><a href="/discuss"><span>💬 Join #indieweb chat</span></a></li><li id="n-📜-Chat-log" class="mw-list-item"><a href="https://chat.indieweb.org/"><span>📜 Chat log</span></a></li> </ul> </div> </div> <div id="p-Get_on_the_IndieWeb" class="vector-menu mw-portlet mw-portlet-Get_on_the_IndieWeb" > <div class="vector-menu-heading"> Get on the IndieWeb </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-🎉-Get-started" class="mw-list-item"><a href="/Getting_Started"><span>🎉 Get started</span></a></li><li id="n-ℹ️-FAQ" class="mw-list-item"><a href="/FAQ"><span>ℹ️ FAQ</span></a></li><li id="n-🗽-Principles" class="mw-list-item"><a href="/principles"><span>🗽 Principles</span></a></li> </ul> </div> </div> <div id="p-Recent" class="vector-menu mw-portlet mw-portlet-Recent" > <div class="vector-menu-heading"> Recent </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-📜-Community-Posts" class="mw-list-item"><a href="https://stream.indieweb.org/"><span>📜 Community Posts</span></a></li><li id="n-📢-IndieWeb-Podcasts" class="mw-list-item"><a href="/podcasts_about_the_indieweb"><span>📢 IndieWeb Podcasts</span></a></li><li id="n-📩-Subscribe-to-the-weekly-IndieWeb-newsletter" class="mw-list-item"><a href="/this-week-in-the-indieweb"><span>📩 Subscribe to the weekly IndieWeb newsletter</span></a></li> </ul> </div> </div> <div id="p-Developers" class="vector-menu mw-portlet mw-portlet-Developers" > <div class="vector-menu-heading"> Developers </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-🔩-Building-Blocks" class="mw-list-item"><a href="/Category:building-blocks"><span>🔩 Building Blocks</span></a></li><li id="n-📑-Projects" class="mw-list-item"><a href="/Projects"><span>📑 Projects</span></a></li><li id="n-🧰-Standards" class="mw-list-item"><a href="https://spec.indieweb.org/"><span>🧰 Standards</span></a></li><li id="n-💬-Join-developer-chat" class="mw-list-item"><a href="https://chat.indieweb.org/dev/"><span>💬 Join developer chat</span></a></li> </ul> </div> </div> <div id="p-Wiki_resources" class="vector-menu mw-portlet mw-portlet-Wiki_resources" > <div class="vector-menu-heading"> Wiki resources </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-👤-Login" class="mw-list-item"><a href="https://sso.indieweb.org/login?url=https%3A%2F%2Findieweb.org%2F"><span>👤 Login</span></a></li><li id="n-✳️-Recent-changes" class="mw-list-item"><a href="/Special:RecentChanges"><span>✳️ Recent changes</span></a></li><li id="n-🖼-Recent-uploads" class="mw-list-item"><a href="/Special:ListFiles"><span>🖼 Recent uploads</span></a></li><li id="n-🎲-Random-page" class="mw-list-item"><a href="/Special:Random"><span>🎲 Random page</span></a></li><li id="n-📑-5,537-articles" class="mw-list-item"><a href="/Special:Statistics"><span>📑 5,537 articles</span></a></li><li id="n-©-Wiki-content-is-CC0" class="mw-list-item"><a href="/IndieWebCamp:Copyrights"><span>© Wiki content is CC0</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/Main_Page" class="mw-logo"> <span class="mw-logo-container"> <img class="mw-logo-wordmark" alt="IndieWeb" src="/img/indiewebcamp-logo-lockup-color@1x.png" style="width: 10.125em; height: 4.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" id="" title="Search IndieWeb [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/wiki/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search IndieWeb" aria-label="Search IndieWeb" autocapitalize="none" title="Search IndieWeb [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links" aria-label="Personal tools" role="navigation" > <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet mw-portlet-vector-user-menu-overflow" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item"><a href="https://sso.indieweb.org/login?url=https%3A%2F%2Findieweb.org%2FSalmention" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span>Log in</span></a></li> </ul> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="https://sso.indieweb.org/login?url=https%3A%2F%2Findieweb.org%2FSalmention" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"></div> </div> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site" role="navigation"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <input type="checkbox" id="vector-toc-collapsed-checkbox" class="vector-menu-checkbox"> <nav id="mw-panel-toc" role="navigation" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark vector-sticky-pinned-container"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-Summary" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Summary"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span>Summary</div> </a> <ul id="toc-Summary-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Protocol" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Protocol"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span>Protocol</div> </a> <button aria-controls="toc-Protocol-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon vector-icon--x-small mw-ui-icon-wikimedia-expand"></span> <span>Toggle Protocol subsection</span> </button> <ul id="toc-Protocol-sublist" class="vector-toc-list"> <li id="toc-Sending_Salmentions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Sending_Salmentions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span>Sending Salmentions</div> </a> <ul id="toc-Sending_Salmentions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Receiving_Salmentions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Receiving_Salmentions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span>Receiving Salmentions</div> </a> <ul id="toc-Receiving_Salmentions-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-IndieWeb_Examples" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#IndieWeb_Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span>IndieWeb Examples</div> </a> <button aria-controls="toc-IndieWeb_Examples-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon vector-icon--x-small mw-ui-icon-wikimedia-expand"></span> <span>Toggle IndieWeb Examples subsection</span> </button> <ul id="toc-IndieWeb_Examples-sublist" class="vector-toc-list"> <li id="toc-Ben_Roberts" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ben_Roberts"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span>Ben Roberts</div> </a> <ul id="toc-Ben_Roberts-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Aaron_Parecki" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Aaron_Parecki"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span>Aaron Parecki</div> </a> <ul id="toc-Aaron_Parecki-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-capjamesg" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#capjamesg"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span>capjamesg</div> </a> <ul id="toc-capjamesg-sublist" class="vector-toc-list"> <li id="toc-Implementation_Path" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Implementation_Path"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3.1</span>Implementation Path</div> </a> <ul id="toc-Implementation_Path-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Previous_Examples" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Previous_Examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span>Previous Examples</div> </a> <ul id="toc-Previous_Examples-sublist" class="vector-toc-list"> <li id="toc-Kyle_Mahan" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Kyle_Mahan"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.1</span>Kyle Mahan</div> </a> <ul id="toc-Kyle_Mahan-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ashton_Macallan" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Ashton_Macallan"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.2</span>Ashton Macallan</div> </a> <ul id="toc-Ashton_Macallan-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Software_Support" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Software_Support"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span>Software Support</div> </a> <button aria-controls="toc-Software_Support-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon vector-icon--x-small mw-ui-icon-wikimedia-expand"></span> <span>Toggle Software Support subsection</span> </button> <ul id="toc-Software_Support-sublist" class="vector-toc-list"> <li id="toc-Known" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Known"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span>Known</div> </a> <ul id="toc-Known-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Issues" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Issues"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span>Issues</div> </a> <button aria-controls="toc-Issues-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon vector-icon--x-small mw-ui-icon-wikimedia-expand"></span> <span>Toggle Issues subsection</span> </button> <ul id="toc-Issues-sublist" class="vector-toc-list"> <li id="toc-Comment_thread_on_separate_page_from_post" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Comment_thread_on_separate_page_from_post"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span>Comment thread on separate page from post</div> </a> <ul id="toc-Comment_thread_on_separate_page_from_post-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Related" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Related"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span>Related</div> </a> <button aria-controls="toc-Related-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon vector-icon--x-small mw-ui-icon-wikimedia-expand"></span> <span>Toggle Related subsection</span> </button> <ul id="toc-Related-sublist" class="vector-toc-list"> <li id="toc-ActivityPub" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ActivityPub"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span>ActivityPub</div> </a> <ul id="toc-ActivityPub-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Salmon" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Salmon"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span>Salmon</div> </a> <ul id="toc-Salmon-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_Also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_Also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span>See Also</div> </a> <ul id="toc-See_Also-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> <div class="mw-content-container"> <main id="content" class="mw-body h-entry" role="main"> <header class="mw-body-header vector-page-titlebar"> <label id="vector-toc-collapsed-button" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet vector-button-flush-left cdx-button--icon-only" for="vector-toc-collapsed-checkbox" role="button" aria-controls="vector-toc" tabindex="0" title="Table of Contents"> <span class="vector-icon mw-ui-icon-wikimedia-listBullet"></span> <span>Toggle the table of contents</span> </label> <nav role="navigation" aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Salmention</span></h1> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/Salmention" title="View the content page [c]" accesskey="c"><span>Page</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/wiki/index.php?title=Talk:Salmention&amp;action=edit&amp;redlink=1" rel="discussion" title="Discussion about the content page (page does not exist) [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="p-variants" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="p-variants-label" for="p-variants-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/Salmention"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/Salmention"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/Special:WhatLinksHere/Salmention" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/Special:RecentChangesLinked/Salmention" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;oldid=90723" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/wiki/index.php?title=Salmention&amp;action=info" title="More information about this page"><span>Page information</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <nav class="vector-page-tools-landmark vector-sticky-pinned-container" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From IndieWeb</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Redirected from <a href="/wiki/index.php?title=salmention&amp;redirect=no" class="mw-redirect" title="salmention">salmention</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><p><br /> </p> <figure class="mw-halign-right" typeof="mw:File/Frameless"><a href="/File:salmention.svg" class="mw-file-description" title="Salmention icon"><img alt="Salmention icon" src="/images/thumb/9/93/salmention.svg/128px-salmention.svg.png" decoding="async" width="128" height="128" class="mw-file-element" srcset="/images/thumb/9/93/salmention.svg/192px-salmention.svg.png 1.5x, /images/thumb/9/93/salmention.svg/256px-salmention.svg.png 2x" /></a><figcaption>Salmention icon</figcaption></figure> <p class="plainlinks template_stub" style="text-indent: 2em; font-style: italic;"> <b>This article is a <a href="/stub" title="stub">stub</a>.</b> You can help the IndieWeb wiki by <a class="external text" href="https://indieweb.org/wiki/index.php?title=Salmention&amp;action=edit">expanding it</a>. </p> <p><br /> <span class="p-summary"><b><dfn>Salmention</dfn></b> is a protocol extension to <a href="/Webmention" title="Webmention">Webmention</a> to <a href="/comment-propagation" title="comment-propagation">propagate comments</a> and other interactions upstream by sending a webmention from a response to the original post when the response itself receives a response (comment, like, etc.). </span> The original post then checks the response to the original, parses the response to the response (e.g. comment on a comment) and then displays it as an additional response on the original post. </p><p><dfn>Webmention with Salmention</dfn> depends on understanding <a href="/Webmention" title="Webmention">Webmention</a>. Please read that first. </p><p>The name is a portmanteau of <a href="#Salmon">#Salmon</a> and <a href="/mention" title="mention">mention</a>. </p> <dl><dt>Status</dt> <dd>This is a <b>Living Specification</b> yet mature enough to encourage <a href="#IndieWeb_Examples">implementations</a> and <a href="#Issues">feedback</a>.</dd> <dt>Latest Published Version</dt> <dd><a class="external free" href="https://indieweb.org/Salmention">https://indieweb.org/Salmention</a></dd> <dt>Participate</dt> <dd><a class="external text" href="https://github.com/indieweb/salmention/issues">issues</a></dd> <dd><a class="external text" href="https://chat.indieweb.org/dev">discussion on #indieweb-dev</a> (<a class="external text" href="irc://irc.libera.chat/indieweb-dev">on Libera IRC</a>)</dd> <dt>Editors</dt> <dd><a class="external text" href="https://ben.thatmustbe.me">Ben Roberts</a></dd> <dd><a class="external text" href="http://tantek.com">Tantek Çelik</a></dd> <dt>Authors</dt> <dd>Other contributors: <a class="external text" href="https://indiewebcamp.com/wiki/index.php?title=Salmentions&amp;action=history">revision history</a></dd> <dt>License</dt> <dd><small>Per <a class="external text" href="http://creativecommons.org/publicdomain/zero/1.0/">CC0</a>, to the extent possible under law, the editor(s) and contributors have waived all copyright and related or neighboring rights to this work. In addition, as of 2024-12-19, the editor(s) and contributors (2015-04-07 onward) have made this specification available under the <a class="external text" href="http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0">Open Web Foundation Agreement Version 1.0</a>.</small></dd></dl> <meta property="mw:PageProp/toc" /> <h2><span class="mw-headline" id="Summary">Summary</span></h2> <p>A Webmention is a notification that one URL links to another, usually a <a href="/comment" title="comment">comment</a> or other <a href="/response" class="mw-redirect" title="response">response</a>. A Salmention is a special Webmention notification both that one URL links to another, and that one URL received and displayed the result of a Webmention itself. For example: </p><p>When Bob writes a reply on his website in response to a post on Alice's website, his site sends a webmention notifying her of his response, which her site's software can do with as it wishes, like display it as a comment on her post. </p><p>When Carol writes a reply on her site in response to Bob's comment, her site similarly sends a webmention to Bob … but what about Alice, who may wish to display this nested comment on her post? </p><p>This is where the Salmention extension comes in. </p><p>When Bob's post is updated to display Carol's reply, Bob's site <b>sends a webmention update (a salmention)</b> to Alice, even though Bob's post content itself hasn't changed. Alice's website software <b>looks for new information on Bob's post, which now includes Carol's response and displays it</b> as a nested response. </p><p>Salmention is a protocol between a salmention sender and a salmention receiver. In the example above: </p> <ul><li>The <b>salmention sender</b> is Bob’s site, it sends a webmention upstream whenever it itself displays the result of receiving a webmention.</li> <li>The <b>salmention receiver</b> is Alice's site, when it receives the webmention update from Bob's site, it not only parses Bob's reply for any updates, but it also explicitly looks for responses to Bob's post, parses those, finds Carol's reply to Bob, and displays it as well.</li></ul> <h2><span class="mw-headline" id="Protocol">Protocol</span></h2> <h3><span class="mw-headline" id="Sending_Salmentions">Sending Salmentions</span></h3> <p>An implementation that sends and receives <a href="/Webmention" title="Webmention">Webmentions</a> can send Salmentions by doing the following: </p><p>When it receives and accepts a Webmention from a response to an original post: </p> <ul><li>Incorporate (or update) the response into the original post’s permalink by nesting the response inside the original, keeping track of whether any changes actually occurred. <ul><li>E.g. incorporate a <a href="/reply" title="reply">reply</a> as a nested comment <a href="/h-entry" title="h-entry">h-entry</a> inside the original’s <a href="/h-entry" title="h-entry">h-entry</a></li></ul></li> <li>If there were any changes (a new or updated response), then resend Webmentions to everything the original post sent webmentions to.</li></ul> <p>That act of resending those Webmentions when an original post is updated in response to responses is called “sending Salmentions”. </p> <h3><span class="mw-headline" id="Receiving_Salmentions">Receiving Salmentions</span></h3> <p>An implementation that receives <a href="/Webmention" title="Webmention">Webmentions</a> can receive Salmentions by doing the following: </p><p>When it receives a Webmention, in addition to normal Webmention processing: </p> <ul><li>Store the contents of the source of the Webmention in such a way that it can be rechecked in the future for any changes.</li></ul> <p>When it receives a previously received Webmention: </p> <ul><li>Check the source of the Webmention for any changes since the previous Webmention (using aforementioned stored contents), in particular any new responses to the source <ul><li>E.g. check for new nested comment <a href="/h-entry" title="h-entry">h-entry</a>(s) inside the source’s <a href="/h-entry" title="h-entry">h-entry</a></li></ul></li> <li>Incorporate any new response(s) to the source both into those stored contents, and display as inline responses to the target itself. <ul><li>E.g. displaying a reply to a reply, as an additional comment on the original post.</li> <li>If the previous Webmention generated a <a href="/notification" title="notification">notification</a>, then the new response(s) should as well.</li></ul></li></ul> <p>The act of noticing a re-receiving of a Webmention and doing something when there are changes in the source, specifically nested responses, is called “receiving Salmentions”. </p> <h2><span class="mw-headline" id="IndieWeb_Examples">IndieWeb Examples</span></h2> <p>In order of implementation </p> <h3><span class="mw-headline" id="Ben_Roberts">Ben Roberts</span></h3> <p><span class="h-card"><a href="https://ben.thatmustbe.me" class="external u-url"><img src="https&#58;//ben.thatmustbe.me/image/static/icon_64.jpg" class="" style="height:1.1em;vertical-align:-.1em" alt="" /></a> <span class="p-name p-nickname"><a href="/User:Ben.thatmustbe.me" title="User:Ben.thatmustbe.me">Ben Roberts</a></span></span> supports sending Salmentions on his site since at least 2015-07-12 and built his support to help pass <a href="/SWAT0" title="SWAT0">SWAT0</a> as Player A.<a class="external autonumber" href="https://aaronparecki.com/notes/2015/07/14/1/swat0">[1]</a> Support for receiving was added since then (date unsure) <a class="external autonumber" href="https://ben.thatmustbe.me/note/2016/5/16/2/">[2]</a> </p> <h3><span class="mw-headline" id="Aaron_Parecki">Aaron Parecki</span></h3> <p><span class="h-card" style="white-space:nowrap"><img src="https&#58;//aaronparecki.com/images/profile.jpg" class="" style="height:1.1em;vertical-align:-.1em" alt="" /> <a href="/User:Aaronparecki.com" title="User:Aaronparecki.com">Aaron Parecki</a></span> supports sending Salmentions since 2016-03-23, and receiving Salmentions on his site since 2015-07-12 and built this support to help pass <a href="/SWAT0" title="SWAT0">SWAT0</a> as Player B.<a class="external autonumber" href="https://aaronparecki.com/notes/2015/07/14/1/swat0">[3]</a> </p> <h3><span class="mw-headline" id="capjamesg">capjamesg</span></h3> <p><span class="h-card" style="white-space:nowrap"><img src="https&#58;//jamesg.blog/assets/coffeeshop.jpg" class="" style="height:1.1em;vertical-align:-.1em" alt="" /> <a href="/User:Jamesg.blog" title="User:Jamesg.blog">capjamesg</a></span> is building features to send and receive Salmentions in the <a href="/IndieWeb_Utils" title="IndieWeb Utils">IndieWeb_Utils</a> library. Until the feature is complete, the code for Salmention functionality lives in a separate <a class="external text" href="https://github.com/capjamesg/salmention">capjamesg/salmention</a> GitHub repository. </p> <h4><span class="mw-headline" id="Implementation_Path">Implementation Path</span></h4> <p>Here are the steps James has been using to implement Salmention: </p><p>1. Understand the algorithm. 2. Implement receiving Salmentions in Python, for use in his <a href="/SSG" class="mw-redirect" title="SSG">SSG</a>. 3. Test the implementation and facilitate feedback. (NB: Salmentions are not as implemented as other IndieWeb specifications, so he is seeking guidance to ensure the spec is implemented correctly). 4. TODO: Write JavaScript code to facilitate displaying Salmentions on his personal website. </p> <h3><span class="mw-headline" id="Previous_Examples">Previous Examples</span></h3> <h4><span class="mw-headline" id="Kyle_Mahan">Kyle Mahan</span></h4> <p><span class="h-card"><img src="https&#58;//kylewm.com/photo.jpg" class="" style="height:1.1em;vertical-align:-.1em" alt="" /> <a href="/User:Kylewm.com" title="User:Kylewm.com">Kyle Mahan</a></span> supported sending and receiving Salmentions on his site from 2015-06-09 until ~2019. </p> <ul><li>First mention sent: <a class="external text" href="https://web.archive.org/web/20190405185033/https://kylewm.com/2015/06/i-have-to-go-to-bed-now-if-this-works-or-not-so-i">kylewm.com/2015/06/i-have-to-go-to-bed-now-if-this-works-or-not-so-i</a> (2019 archive org link)</li> <li>and received: <a class="external text" href="https://web.archive.org/web/20190405185033/https://kylewm.com/2015/06/yeah-comment-threads-are-sort-of-a-todo-for-the-indieweb#kyle_mahan-4565">kylewm.com/2015/06/yeah-comment-threads-are-sort-of-a-todo-for-the-indieweb#kyle_mahan-4565</a> (2019 archive org link)</li></ul> <h4><span class="mw-headline" id="Ashton_Macallan">Ashton Macallan</span></h4> <p><span class="h-card"><img src="https&#58;//acegiak.net/files/2015/03/facesmm.gif" class="" style="height:1.1em;vertical-align:-.1em" alt="" /> <a href="/User:Acegiak.net" title="User:Acegiak.net">Ashton McAllan</a></span> supported sending and receiving Salmentions on her site from 2015-06-13 to ~2021. </p> <ul><li>Receiving: <a class="external text" href="https://web.archive.org/web/20210521031237/https://acegiak.net/2015/06/09/not-necessarily-threaded-comments-like-reddit-but-i-think-theres-broad-consensus-that-if-you-reply-to-a-reply-it-would-be/">acegiak.net/2015/06/09/not-necessarily-threaded-comments-like-reddit-but-i-think-theres-broad-consensus-that-if-you-reply-to-a-reply-it-would-be/</a> (2021 archive org link)</li> <li>Sending: <a class="external text" href="https://web.archive.org/web/20210922085031/https://acegiak.net/2015/06/13/i-have-to-go-to-bed-now-if-this-works-or-not-so-i-hope-it-works/">acegiak.net/2015/06/13/i-have-to-go-to-bed-now-if-this-works-or-not-so-i-hope-it-works/</a> (2021 archive org link)</li></ul> <h2><span class="mw-headline" id="Software_Support">Software Support</span></h2> <h3><span class="mw-headline" id="Known">Known</span></h3> <p><span class="h-card"><img src="http&#58;//werd.io/file/538d0a4cbed7de5111a1ad31/thumb.jpg" class="" style="height:1.1em;vertical-align:-.1em" alt="" /> <a href="/User:Werd.io" title="User:Werd.io">Ben Werdmüller</a></span> added support for sending Salmentions on 2015-07-11<a class="external autonumber" href="https://github.com/idno/Known/commit/005542d1617686fca7196dcf071ca82c503382d9">[4]</a>. </p> <ul><li>Possible issue: This reply to a Known post: <a class="external free" href="https://tantek.com/2022/358/t1/">https://tantek.com/2022/358/t1/</a> should have been Salmentioned up to the post that that Known post was in reply to: <a class="external free" href="https://aaronparecki.com/2016/05/16/11/">https://aaronparecki.com/2016/05/16/11/</a>, however that post itself does not display the downstream reply. So either: <ul><li>Known is not sending a Salmention as it is expected to, and/or</li> <li>aaronparecki.com is not receiving the Salmention and handling it (displaying it)</li></ul></li></ul> <ul><li>Previously: This was an example of a salmentioned comment received from a Known site: <a class="external text" href="https://web.archive.org/web/20190405185031/https://kylewm.com/2016/05/nice-you-were-a-good-test-case-for-woodwind-there">kylewm.com/2016/05/nice-you-were-a-good-test-case-for-woodwind-there</a> (2019 archive org link)</li></ul> <h2><span class="mw-headline" id="Issues">Issues</span></h2> <p>This section is closed. Please add to <a class="external free" href="https://github.com/indieweb/salmention/issues">https://github.com/indieweb/salmention/issues</a> instead. </p><p>Awaiting original authors to move this issue to <a class="external free" href="https://github.com/indieweb/salmention/issues">https://github.com/indieweb/salmention/issues</a>: </p> <h3><span class="mw-headline" id="Comment_thread_on_separate_page_from_post">Comment thread on separate page from post</span></h3> <p>This protocol requires that all replies be displayed on the same page as the post itself. I prefer to have the "conversation" on a second page, linked to from the post. </p><p>Idea: forward the webmention upstream instead of repeating the webmention from yourself. Then, upstream can parse the reply-to-reply, see that it is in reply to a comment in a conversation it manages, and add to the thread accordingly. No display of the replies on the intermediate site is required at all for this flow. </p> <h2><span class="mw-headline" id="Related">Related</span></h2> <h3><span class="mw-headline" id="ActivityPub">ActivityPub</span></h3> <div style="text-indent:2em;font-style:italic">Main article: <a href="/ActivityPub" title="ActivityPub">ActivityPub</a></div> <p><a href="/ActivityPub" title="ActivityPub">ActivityPub</a> describes a similar process to Salmention for propagating updates between systems. If one of your posts receives a mention (eg. as the target of a like, repost or inReplyTo, etc), your server should send the <i>new post</i> (the one that mentions you) to <i>all recipients</i> of your original post. (In ActivityPub, your server pushes your posts out to your followers, and retains a list of everyone posts are sent to, but this basically translates to sending a webmention to the original post). </p> <h3><span class="mw-headline" id="Salmon">Salmon</span></h3> <div style="text-indent:2em;font-style:italic">Main article: <a href="/Salmon" title="Salmon">Salmon</a></div> <p>The <a href="/Salmon" title="Salmon">Salmon</a> protocol is a predecessor to <a href="#ActivityPub">#ActivityPub</a> that broke useful conceptual ground but never gained widespread adoption. It's part of the <a href="/OStatus" title="OStatus">OStatus</a> protocol suite. </p> <h2><span class="mw-headline" id="See_Also">See Also</span></h2> <ul><li><a href="/comment-propagation" title="comment-propagation">comment-propagation</a></li> <li><a href="/reply-chain" title="reply-chain">reply-chain</a></li> <li>Silo example: Twitter experiment showing when the author of a tweet likes replies to that tweet, which since they are second-order responses, are a visualization of salmentions though in a silo context: <span class="mw-default-size" typeof="mw:File"><a href="/File:Twitter-replies-heart-by-author-2022-10-13.png" class="mw-file-description"><img src="/images/b/be/Twitter-replies-heart-by-author-2022-10-13.png" decoding="async" width="732" height="1052" class="mw-file-element" /></a></span></li></ul> <!-- NewPP limit report Cached time: 20241219005841 Cache expiry: 82880 Reduced expiry: true Complications: [show‐toc] CPU time usage: 0.048 seconds Real time usage: 0.059 seconds Preprocessor visited node count: 209/1000000 Post‐expand include size: 2690/2097152 bytes Template argument size: 424/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 0/100 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 188/5000000 bytes --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 25.944 1 -total 26.85% 6.967 1 Template:benthatmustbeme 18.66% 4.840 1 Template:httpsuser 14.33% 3.719 1 Template:capjamesg 11.70% 3.036 2 Template:main 9.75% 2.530 1 Template:stub 9.19% 2.384 6 Template:sparkline 8.42% 2.183 1 Template:acegiak 8.28% 2.149 1 Template:benwerd 8.14% 2.113 1 Template:kylewm --> <!-- Saved in parser cache with key wiki:pcache:idhash:4087-0!canonical and timestamp 20241219005841 and revision id 90723. Rendering was triggered because: page-view --> </div> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://indieweb.org/wiki/index.php?title=Salmention&amp;oldid=90723">https://indieweb.org/wiki/index.php?title=Salmention&amp;oldid=90723</a>"</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" role="contentinfo" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 20 November 2023, at 22:54.</li> <li id="footer-info-copyright">Content is available under <a href="/IndieWebCamp:Copyrights" class="mw-redirect" title="IndieWebCamp:Copyrights">a CC0 public domain dedication</a> unless otherwise noted.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="/IndieWeb:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/IndieWeb:About">About IndieWeb</a></li> <li id="footer-places-disclaimers"><a href="/IndieWeb:General_disclaimer">Code of Conduct</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="http://creativecommons.org/publicdomain/zero/1.0/"><img src="https://i.creativecommons.org/p/zero/1.0/88x31.png" alt="a CC0 public domain dedication" width="88" height="31" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="/wiki/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/wiki/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /wiki/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul> <li> <button class="cdx-button cdx-button--icon-only vector-limited-width-toggle" id=""><span class="vector-icon mw-ui-icon-fullScreen mw-ui-icon-wikimedia-fullScreen"></span> <span>Toggle limited content width</span> </button> </li> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":198,"wgPageParseReport":{"limitreport":{"cputime":"0.048","walltime":"0.059","ppvisitednodes":{"value":209,"limit":1000000},"postexpandincludesize":{"value":2690,"limit":2097152},"templateargumentsize":{"value":424,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":0,"limit":100},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":188,"limit":5000000},"timingprofile":["100.00% 25.944 1 -total"," 26.85% 6.967 1 Template:benthatmustbeme"," 18.66% 4.840 1 Template:httpsuser"," 14.33% 3.719 1 Template:capjamesg"," 11.70% 3.036 2 Template:main"," 9.75% 2.530 1 Template:stub"," 9.19% 2.384 6 Template:sparkline"," 8.42% 2.183 1 Template:acegiak"," 8.28% 2.149 1 Template:benwerd"," 8.14% 2.113 1 Template:kylewm"]},"cachereport":{"timestamp":"20241219005841","ttl":82880,"transientcontent":true}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10