CINXE.COM

IndieWeb Search - 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>IndieWeb Search - 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":"62fee4e9303718cca53f948f","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"IndieWeb_Search","wgTitle":"IndieWeb Search","wgCurRevisionId":97659,"wgRevisionId":97659,"wgArticleId":12900,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Software","Software:Python","open source"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"IndieWeb_Search","wgRelevantArticleId":12900,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[]};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=["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="IndieWeb Search was an open source search engine that indexes and provides a service to search for text in web pages and websites created by IndieWeb community members."> <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="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="IndieWeb Search"> <meta property="og:description" content="IndieWeb Search was an open source search engine that indexes and provides a service to search for text in web pages and websites created by IndieWeb community members."> <meta property="og:url" content="https://indieweb.org/IndieWeb_Search"> <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-IndieWeb_Search rootpage-IndieWeb_Search 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-Explore_the_IndieWeb" class="vector-menu mw-portlet mw-portlet-Explore_the_IndieWeb" > <div class="vector-menu-heading"> Explore the IndieWeb </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-🗽-Principles" class="mw-list-item"><a href="/principles"><span>🗽 Principles</span></a></li><li id="n-📜-Community-posts" class="mw-list-item"><a href="https://stream.indieweb.org/"><span>📜 Community posts</span></a></li><li id="n-🌐-Visit-a-random-site" class="mw-list-item"><a href="https://xn--sr8hvo.ws/random"><span>🌐 Visit a random site</span></a></li><li id="n-🎉-Get-a-personal-site" class="mw-list-item"><a href="/Getting_Started"><span>🎉 Get a personal site</span></a></li><li id="n-ℹ️-FAQ" class="mw-list-item"><a href="/FAQ"><span>ℹ️ FAQ</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> </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-📅-Events:-IndieWebCamps,-Homebrew-Website-Clubs-(HWC),-and-more!" class="mw-list-item"><a href="https://events.indieweb.org/"><span>📅 Events: IndieWebCamps, Homebrew Website Clubs (HWC), and more!</span></a></li><li id="n-👥--Meetups:-2025-01-22" class="mw-list-item"><a href="https://events.indieweb.org/tag/hwc"><span>👥 Meetups: 2025-01-22</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-💬-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><li id="n-📩-Subscribe-to-newsletter" class="mw-list-item"><a href="/this-week-in-the-indieweb"><span>📩 Subscribe to newsletter</span></a></li><li id="n-❤️-Sponsor" class="mw-list-item"><a href="/how-to-sponsor"><span>❤️ Sponsor</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="/discuss#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,557-articles" class="mw-list-item"><a href="/Special:Statistics"><span>📑 5,557 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%2FIndieWeb_Search" 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%2FIndieWeb_Search" 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-Why" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Why"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span>Why</div> </a> <ul id="toc-Why-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Features" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Features"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span>Features</div> </a> <ul id="toc-Features-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Indexing" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Indexing"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span>Indexing</div> </a> <ul id="toc-Indexing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Development" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Development"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span>Development</div> </a> <ul id="toc-Development-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ranking_Factors" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Ranking_Factors"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span>Ranking Factors</div> </a> <button aria-controls="toc-Ranking_Factors-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 Ranking Factors subsection</span> </button> <ul id="toc-Ranking_Factors-sublist" class="vector-toc-list"> <li id="toc-Recency" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Recency"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span>Recency</div> </a> <ul id="toc-Recency-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Architecture" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Architecture"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span>Architecture</div> </a> <button aria-controls="toc-Architecture-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 Architecture subsection</span> </button> <ul id="toc-Architecture-sublist" class="vector-toc-list"> <li id="toc-Concurrency" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Concurrency"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span>Concurrency</div> </a> <ul id="toc-Concurrency-sublist" class="vector-toc-list"> <li id="toc-Being_kind_to_servers" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Being_kind_to_servers"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1.1</span>Being kind to servers</div> </a> <ul id="toc-Being_kind_to_servers-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Questions_and_requests_for_help" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Questions_and_requests_for_help"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span>Questions and requests for help</div> </a> <ul id="toc-Questions_and_requests_for_help-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Screenshot" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Screenshot"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span>Screenshot</div> </a> <ul id="toc-Screenshot-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Brainstorming" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Brainstorming"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span>Brainstorming</div> </a> <button aria-controls="toc-Brainstorming-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 Brainstorming subsection</span> </button> <ul id="toc-Brainstorming-sublist" class="vector-toc-list"> <li id="toc-IndieWeb_link_weights" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#IndieWeb_link_weights"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.1</span>IndieWeb link weights</div> </a> <ul id="toc-IndieWeb_link_weights-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">10</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">IndieWeb Search</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="/IndieWeb_Search" 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:IndieWeb_Search&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="/IndieWeb_Search"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/wiki/index.php?title=IndieWeb_Search&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=IndieWeb_Search&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="/IndieWeb_Search"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/index.php?title=IndieWeb_Search&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=IndieWeb_Search&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/IndieWeb_Search" 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/IndieWeb_Search" 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=IndieWeb_Search&amp;oldid=97659" 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=IndieWeb_Search&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"></div></div> <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"> <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=IndieWeb_Search&amp;action=edit">expanding it</a>. </p> <p><br /> <span class="p-summary"><b><dfn>IndieWeb Search</dfn></b> was an open source search engine that indexes and provides a service to search for text in web pages and websites created by IndieWeb community members.</span> </p><p>The search engine is no longer operational. </p><p>All content below is for reference. </p> <meta property="mw:PageProp/toc" /> <h2><span class="mw-headline" id="Why">Why</span></h2> <p>IndieWeb Search is designed to make it easy to find new personal websites to browse as well as find answers to common IndieWeb questions. </p> <h2><span class="mw-headline" id="Features">Features</span></h2> <p>IndieWeb search supports: </p> <ul><li>Finding web pages based on a query.</li> <li>Searching for a web page by URL or site.</li> <li>Returning rich snippets (also known as "featured snippets") for some queries.</li></ul> <p>The indexing algorithm reads microformats to help retrieve specific pieces of information from a page. But, microformats markup is not required for the indexer to successfully retrieve information about a page. </p><p>Developer features: </p> <ul><li>Returning h-cards for "what is [domain name]" queries.</li> <li>All search feeds come marked up as h-feeds and have accompanying alternate RSS, JSON Feed, and jf2 feeds. More on this here: <a class="external text" href="https://jamesg.blog/2022/01/13/indieweb-search-pages-are-feeds/">IndieWeb Search results are also feeds</a></li> <li>Developers can parse and manipulate IndieWeb Search feeds in only a few lines of code, with a valid microformats parser. Here’s how you can do so in Python: <a class="external text" href="https://jamesg.blog/2022/01/11/parse-indieweb-search-results-python/">Parse IndieWeb Search in 15 lines of Python code</a></li></ul> <h2><span class="mw-headline" id="Indexing">Indexing</span></h2> <p>The role of the indexing algorithm is to find information about a site that can then be served by (or interpreted by) the search engine. </p><p>The main pieces of information the search engine indexes are: </p> <ul><li>Headings from h1 to h6</li> <li>Meta description</li> <li>Title tag</li> <li>The contents of a page in HTML</li> <li>The contents of a page in text</li> <li>The URL of a page</li></ul> <p>Fallbacks are in place to ensure that attributes like meta descriptions and titles can be generated even if they are not specified on the page. This ensures that search results appear consistent and with the information visitors need to accurately assess whether the content behind a link may meet their needs. </p><p>All sites are given a 1,000 page crawl budget. Each page successfully indexed contributes towards this budget. Only HTML pages are indexed and pages that are likely to be tag pages are excluded. There are some tag pages in the index left over from previous indexes that will remain accessible to visitors. </p><p>This budget ensures that the crawler can cover a wide range of sites as resources are limited. </p><p>The indexer uses the user agent indieweb-search. You can block the indexer from indexing part or all of your site using directives in your robots.txt file. </p><p>While the source code for the project is open sourced, the index used on the public version of the search engine is not accessible programmatically. </p> <h2><span class="mw-headline" id="Development">Development</span></h2> <p>IndieWeb Search is in active development. This project is led by <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>. The code for the project is <a class="external text" href="https://github.com/capjamesg/indieweb-search">publicly available on GitHub</a> and welcomes any contributors no matter their experience with search. </p> <h2><span class="mw-headline" id="Ranking_Factors">Ranking Factors</span></h2> <p>The following pieces of information are used to rank content on IndieWeb Search: </p> <ul><li>h1, h2, h3, h4, h5, h6</li> <li>meta description</li> <li>page &lt;title&gt; tag contents</li> <li>URL</li> <li>page word count</li> <li>number of links pointing to the page from other sites</li></ul> <p>The number of links pointing to each page in the index takes some time to calculate. This step is executed by running programs manually because: (i) an automated program has not yet been developed; (ii) the process is time-consuming and is not practical to run on a frequent cadence alongside other indexing tasks. As a result, some pages may lag behind where they will eventually rank when the number of pages linking to the page in question is calculated. </p><p>You can see the ranking algorithm on the <a class="external text" href="https://github.com/capjamesg/indieweb-search/blob/main/elasticsearch_server.py">public source code</a>. </p> <h3><span class="mw-headline" id="Recency">Recency</span></h3> <p>While recency -- the amount of time that has passed since a page was published -- has been considered as a ranking factor, a deliberate decision was made not to use recency in the search engine. </p><p>Recency is not a ranking factor because the search engine is not designed to target particularly time-sensitive queries like other search engines. Visitors may ask some time-sensitive questions but these are the exception rather than the rule. A lot of the content indexed is blog posts and pages that are not likely to quickly go out of date. </p> <h2><span class="mw-headline" id="Architecture">Architecture</span></h2> <p>IndieWeb Search has three main components: </p> <ul><li>The indexing algorithm, responsible for adding content into an Elasticsearch store.</li> <li>The Elasticsearch server, used to store documents. This server is what you would call the "search index."</li> <li>The web server through which visitors interact with the website.</li></ul> <p>The Elasticsearch server has a custom-written, minimal API that lets the web server (which is hosted on a different server), make queries. This API also lets the indexing algorithm add contents to the index. </p> <h3><span class="mw-headline" id="Concurrency">Concurrency</span></h3> <p>IndieWeb Search makes use of the Python concurrency.futures library which makes it easy to run the indexing program in multiple threads. Before using concurrency.futures, the search engine only indexed content using one Python thread. This was slow and meant one could only index 5,000-10,000 documents per day. </p><p>Using concurrency, the indexer can index content from dozens of sites at the same time. The current rate of indexing is tens of thousands of documents per day. </p> <h4><span class="mw-headline" id="Being_kind_to_servers">Being kind to servers</span></h4> <p>A big obligation any search engine has is to ensure that the indexing process does not interfere with the usability of a site or cause the site to stop loading. This could be caused by an indexing algorithm trying to request too many pages at once. </p><p>Incentives are aligned to prevent against server abuse: if you request resources too fast, the host might block the indexer so you cannot index a site. Conversely, a site may be unable to respond to all of your requests, leading to a partially-complete index of a site and a potentially unhappy site owner. </p> <h2><span class="mw-headline" id="Questions_and_requests_for_help">Questions and requests for help</span></h2> <p>There are a few questions that need to be reviewed in more depth: </p> <ul><li>How do I enable featured snippets / direct answers on other domains? jamesg.blog, microformats.org/wiki/, and indieweb.org are all granted access to render featured snippets. More work needs to be done to understand how this feature may help other sites.</li></ul> <p>Have any suggestions for the search engine or thoughts on the questions above? Message capjamesg in the IndieWeb IRC or make a <a class="external text" href="https://github.com/capjamesg/indieweb-search">contribution on GitHub</a>. All contributions are welcome, from issues to pull requests. </p> <h2><span class="mw-headline" id="Screenshot">Screenshot</span></h2> <p>Here is a screenshot of the search result for the term "micropub header code": </p><p><span class="mw-default-size" typeof="mw:File"><a href="/File:indieweb_search_query.png" class="mw-file-description"><img src="/images/0/0a/indieweb_search_query.png" decoding="async" width="1670" height="964" class="mw-file-element" /></a></span> </p> <h2><span class="mw-headline" id="Brainstorming">Brainstorming</span></h2> <h3><span class="mw-headline" id="IndieWeb_link_weights">IndieWeb link weights</span></h3> <p>Many IndieWeb websites post likes, comments, replies, and other social interactions that relate to content the owner has seen on the web. These social interactions are often marked up using microformats. Here are some of the most common social interactions posted on IndieWeb sites: </p> <ul><li>likes (marked up with u-like-of)</li> <li>bookmarks (u-bookmark-of)</li> <li>replies (u-in-reply-to)</li> <li>rsvps (p-rsvp and u-in-reply-to)</li> <li>reposts (u-repost-of)</li></ul> <p>Consideration has been given to give links marked up a certain way more weight than others. At the moment, weighing "social interaction" links is not a feature in the search engine, although some exploratory development work on this feature has been completed. </p><p>The drawbacks of weighing links depending on the context in which the links are presented in markup may mean that sites that have only recently joined the IndieWeb are unfairly ranked in the search engine. The degree of one's technical proficiency should not determine how their blog posts and other content is ranked. </p> <h2><span class="mw-headline" id="See_Also">See Also</span></h2> <ul><li><a href="/search" title="search">search</a></li></ul> <div style="padding: 2px 2px 0 2px; border: 1px solid #aaa; background-color: #fff;"> <table border="0" cellspacing="0" style="width: 100%; font-size: 0.9em;"> <tbody><tr> <th scope="col" colspan="2" style="text-align: center; padding: 0.25em 1em; border-bottom: 1px solid #888;"> <a href="/Open_Source" class="mw-redirect" title="Open Source">Open Source</a> IndieWeb related projects and tools </th> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> Topics</th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/open_source#Why" title="open source">Why open source?</a> • <a href="/open_source#How_to" title="open source">How to open source a project</a> • <a href="/open_source#Open_for_contributions" title="open source">Open for contributions</a> • <a href="/principles" title="principles">IndieWeb Principles</a> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> <a href="/PHP" title="PHP">PHP</a> (See <a href="/LAMP" title="LAMP">LAMP</a>)</th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/b2evolution" title="b2evolution">b2evolution</a> • <a href="/CASSIS" title="CASSIS">CASSIS</a> • <a href="/Known" title="Known">Known</a> • <a href="/Falcon" title="Falcon">Falcon</a> (portions) • <a href="/p3k" title="p3k">p3k</a> • <a href="/stapibas" title="stapibas">stapibas</a> • <a href="/dobrado" title="dobrado">dobrado</a> • <a href="/Grav" title="Grav">Grav</a> • <a href="/Miniflux#Legacy" title="Miniflux">Miniflux-legacy</a> • <a href="/ProcessWire" title="ProcessWire">ProcessWire</a> • <a href="/Reader_Self" title="Reader Self">Reader Self</a> • <a href="/Textpattern" title="Textpattern">Textpattern</a> • <a href="/tt-rss" class="mw-redirect" title="tt-rss">tt-rss</a> • <a href="/Twyne" title="Twyne">Twyne</a> • <a href="/TYPO3" title="TYPO3">TYPO3</a> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> <a href="/WordPress" title="WordPress">WordPress</a> (PHP)</th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/WordPress_IndieWeb_Plugin" title="WordPress IndieWeb Plugin">Indieweb Plugin</a> • <a href="/WordPress_Webmention_Plugin" title="WordPress Webmention Plugin">Webmention</a> • <a href="/Semantic_Linkbacks" title="Semantic Linkbacks">Semantic Linkbacks</a> • <a href="/Micropub_for_WordPress" title="Micropub for WordPress">Micropub</a> • <a href="/Wordpress_IndieAuth_Plugin" class="mw-redirect" title="Wordpress IndieAuth Plugin">IndieAuth</a> • <a href="/Post_Kinds_Plugin" title="Post Kinds Plugin">Post Kinds</a> • <a href="/Syndication_Links" title="Syndication Links">Syndication Links</a> • <a href="/WebSub#WordPress_Plugins_for_PuSH" title="WebSub">WebSub plugins</a> • <i>See <a href="/Template:WordPress" title="Template:WordPress">Template:WordPress</a> for others.</i> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> <a href="/Python" title="Python">Python</a></th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/Bridgy_Fed" title="Bridgy Fed">Bridgy Fed</a> • <a href="/BeautifulSoup" title="BeautifulSoup">BeautifulSoup</a> • <a href="/Bleach" title="Bleach">Bleach</a> • <a href="/Bundle" title="Bundle">Bundle</a> • <a href="/django_CMS" title="django CMS">django CMS</a> • <a class="mw-selflink selflink">IndieWeb Search</a> • <a href="/IndieWeb_Utils" title="IndieWeb Utils">IndieWeb Utils</a> • <a href="/kaku" title="kaku">kaku</a> • <a href="/mf2util" title="mf2util">mf2util</a> • <a href="/Nefelibata" title="Nefelibata">Nefelibata</a> • <a href="/ninka" title="ninka">ninka</a> • <a href="/Publ" title="Publ">Publ</a> • <a href="/python-indieweb" title="python-indieweb">python-indieweb</a> • <a href="/Red_Wind" title="Red Wind">Red Wind</a> • <a href="/Requests" title="Requests">Requests</a> • <a href="/ronkyuu" title="ronkyuu">ronkyuu</a> • <a href="/Woodwind" title="Woodwind">Woodwind</a> • <a href="/gunicorn" title="gunicorn">gunicorn</a> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> <a href="/Ruby" title="Ruby">Ruby</a></th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/Dark_Matter" title="Dark Matter">Dark Matter</a> • <a href="/Feedbin" title="Feedbin">Feedbin</a> • <a href="/FrancisCMS" title="FrancisCMS">FrancisCMS</a> • <a href="/Micropublish" title="Micropublish">Micropublish</a> • <a href="/Publify" title="Publify">Publify</a> • <a href="/Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a> • <a href="/Sinatra" title="Sinatra">Sinatra</a> • <a href="/Singulus" title="Singulus">Singulus</a> • <a href="/Transformative" title="Transformative">Transformative</a> • <a href="/webmention.io" title="webmention.io">webmention.io</a> • <a href="/Jekyll" title="Jekyll">Jekyll</a> • <a href="/Authorio" title="Authorio">Authorio</a> • <a href="/ruby_parser" title="ruby parser">ruby parser</a> • <a href="/microformats-ruby" title="microformats-ruby">microformats-ruby</a> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> <a href="/JavaScript" title="JavaScript">JavaScript</a></th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/AerosolCMS" title="AerosolCMS">AerosolCMS</a> • <a href="/CASSIS" title="CASSIS">CASSIS</a> • <a href="/Ghost" title="Ghost">Ghost</a> • <a href="/Camel" title="Camel">Camel</a> • <a href="/IndieKit" class="mw-redirect" title="IndieKit">IndieKit</a> • <a href="/Eleventy" title="Eleventy">Eleventy</a> </td> </tr> <tr> <th scope="row" class="navbox-group" style="padding: 0.25em 1em; background-color: #ddddff; border-bottom: 2px solid #fff;"> Others</th> <td style="width: 100%; padding: 0.25em 1em; background-color: #eee; border-left: 2px solid #fff; border-bottom: 2px solid #fff;"> <a href="/Hugo" title="Hugo">Hugo</a> (Go) • <a href="/Firefox" title="Firefox">Firefox</a> • <a href="/NetNewsWire" title="NetNewsWire">NetNewsWire</a> </td> </tr> </tbody></table> </div> <!-- NewPP limit report Cached time: 20250119180344 Cache expiry: 86400 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.027 seconds Real time usage: 0.031 seconds Preprocessor visited node count: 148/1000000 Post‐expand include size: 12365/2097152 bytes Template argument size: 5411/2097152 bytes Highest expansion depth: 6/100 Expensive parser function count: 0/100 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 0/5000000 bytes --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 10.667 1 -total 49.19% 5.247 1 Template:Open_Source 30.64% 3.268 1 Template:Navbox 29.91% 3.191 1 Template:jamesgoca 18.96% 2.023 1 Template:stub 14.50% 1.547 7 Template:Navbox-row 13.67% 1.458 1 Template:sparkline --> <!-- Saved in parser cache with key wiki:pcache:idhash:12900-0!canonical and timestamp 20250119180344 and revision id 97659. 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=IndieWeb_Search&amp;oldid=97659">https://indieweb.org/wiki/index.php?title=IndieWeb_Search&amp;oldid=97659</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/Category:Software" title="Category:Software">Software</a></li><li><a href="/Category:Software:Python" title="Category:Software:Python">Software:Python</a></li><li><a href="/Category:open_source" title="Category:open source">open source</a></li></ul></div></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 13 October 2024, at 10:00.</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":177,"wgPageParseReport":{"limitreport":{"cputime":"0.027","walltime":"0.031","ppvisitednodes":{"value":148,"limit":1000000},"postexpandincludesize":{"value":12365,"limit":2097152},"templateargumentsize":{"value":5411,"limit":2097152},"expansiondepth":{"value":6,"limit":100},"expensivefunctioncount":{"value":0,"limit":100},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":0,"limit":5000000},"timingprofile":["100.00% 10.667 1 -total"," 49.19% 5.247 1 Template:Open_Source"," 30.64% 3.268 1 Template:Navbox"," 29.91% 3.191 1 Template:jamesgoca"," 18.96% 2.023 1 Template:stub"," 14.50% 1.547 7 Template:Navbox-row"," 13.67% 1.458 1 Template:sparkline"]},"cachereport":{"timestamp":"20250119180344","ttl":86400,"transientcontent":false}}});});</script> </body> </html>

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