2022-12-04 15:09:09 +00:00
<!DOCTYPE html>
2022-12-06 22:50:49 +00:00
< html lang = "en" data-darkmode = "{{ get_darkmode_state() }}" >
2022-12-04 15:09:09 +00:00
< head >
2023-04-29 20:29:57 +00:00
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta name = "description" content = "Self hosted website change detection." >
2021-07-10 06:31:16 +00:00
< title > Change Detection{{extra_title}}< / title >
2024-05-21 21:47:35 +00:00
{% if app_rss_token %}
2025-03-18 09:40:22 +00:00
< link rel = "alternate" type = "application/rss+xml" title = "Changedetection.io » Feed{% if active_tag_uuid %}- {{active_tag.title}}{% endif %}" href = "{{ url_for('rss.feed', tag=active_tag_uuid , token=app_rss_token)}}" >
2024-05-21 21:47:35 +00:00
{% endif %}
2023-04-29 20:29:57 +00:00
< link rel = "stylesheet" href = "{{url_for('static_content', group='styles', filename='pure-min.css')}}" >
2023-11-11 23:29:15 +00:00
< link rel = "stylesheet" href = "{{url_for('static_content', group='styles', filename='styles.css')}}?v={{ get_css_version() }}" >
2021-01-31 18:55:35 +00:00
{% if extra_stylesheets %}
2022-12-04 15:09:09 +00:00
{% for m in extra_stylesheets %}
2023-11-11 23:29:15 +00:00
< link rel = "stylesheet" href = "{{ m }}?ver={{ get_css_version() }}" >
2022-12-04 15:09:09 +00:00
{% endfor %}
2021-01-31 18:55:35 +00:00
{% endif %}
2022-12-01 22:29:53 +00:00
2023-04-29 20:29:57 +00:00
< link rel = "apple-touch-icon" sizes = "180x180" href = "{{url_for('static_content', group='favicons', filename='apple-touch-icon.png')}}" >
< link rel = "icon" type = "image/png" sizes = "32x32" href = "{{url_for('static_content', group='favicons', filename='favicon-32x32.png')}}" >
< link rel = "icon" type = "image/png" sizes = "16x16" href = "{{url_for('static_content', group='favicons', filename='favicon-16x16.png')}}" >
< link rel = "manifest" href = "{{url_for('static_content', group='favicons', filename='site.webmanifest')}}" >
< link rel = "mask-icon" href = "{{url_for('static_content', group='favicons', filename='safari-pinned-tab.svg')}}" color = "#5bbad5" >
< link rel = "shortcut icon" href = "{{url_for('static_content', group='favicons', filename='favicon.ico')}}" >
< meta name = "msapplication-TileColor" content = "#da532c" >
< meta name = "msapplication-config" content = "favicons/browserconfig.xml" >
< meta name = "theme-color" content = "#ffffff" >
2024-07-03 17:26:33 +00:00
< script >
const csrftoken="{{ csrf_token() }}";
2025-05-26 18:12:32 +00:00
const socketio_url="{{ get_socketio_path() }}/socket.io";
const is_authenticated = {% if current_user.is_authenticated or not has_password %}true{% else %}false{% endif %};
2024-07-03 17:26:33 +00:00
< / script >
2023-04-30 08:38:50 +00:00
< script src = "{{url_for('static_content', group='js', filename='jquery-3.6.0.min.js')}}" > < / script >
2024-07-03 17:26:33 +00:00
< script src = "{{url_for('static_content', group='js', filename='csrf.js')}}" defer > < / script >
2025-06-03 12:01:00 +00:00
< script src = "{{url_for('static_content', group='js', filename='feather-icons.min.js')}}" defer > < / script >
2025-06-03 08:17:19 +00:00
{% if socket_io_enabled %}
< script src = "{{url_for('static_content', group='js', filename='socket.io.min.js')}}" > < / script >
2025-05-26 18:12:32 +00:00
< script src = "{{url_for('static_content', group='js', filename='realtime.js')}}" defer > < / script >
2025-06-03 08:17:19 +00:00
{% endif %}
2022-12-04 15:09:09 +00:00
< / head >
2022-04-12 05:35:47 +00:00
2024-09-28 08:40:26 +00:00
< body class = "" >
2022-12-04 15:09:09 +00:00
< div class = "header" >
2024-10-09 07:17:32 +00:00
< div class = "pure-menu-fixed" style = "width: 100%;" >
< div class = "home-menu pure-menu pure-menu-horizontal" id = "nav-menu" >
2021-04-30 09:54:23 +00:00
{% if has_password and not current_user.is_authenticated %}
2023-08-13 16:35:58 +00:00
< a class = "pure-menu-heading" href = "https://changedetection.io" rel = "noopener" >
2022-12-04 15:09:09 +00:00
< strong > Change< / strong > Detection.io< / a >
2021-04-30 06:47:13 +00:00
{% else %}
2025-03-25 21:57:15 +00:00
< a class = "pure-menu-heading" href = "{{url_for('watchlist.index')}}" >
2022-12-04 15:09:09 +00:00
< strong > Change< / strong > Detection.io< / a >
2021-04-30 06:47:13 +00:00
{% endif %}
2021-02-01 20:56:18 +00:00
{% if current_diff_url %}
2022-12-04 15:09:09 +00:00
< a class = "current-diff-url" href = "{{ current_diff_url }}" >
< span style = "max-width: 30%; overflow: hidden" > {{ current_diff_url }}< / span > < / a >
2021-02-24 13:44:35 +00:00
{% else %}
2022-12-04 15:09:09 +00:00
{% if new_version_available and not(has_password and not current_user.is_authenticated) %}
< span id = "new-version-text" class = "pure-menu-heading" >
2023-08-13 16:35:58 +00:00
< a href = "https://changedetection.io" > A new version is available< / a >
2022-12-04 15:09:09 +00:00
< / span >
{% endif %}
2021-02-01 20:56:18 +00:00
{% endif %}
2021-01-27 11:39:46 +00:00
2022-12-04 15:09:09 +00:00
< ul class = "pure-menu-list" id = "top-right-menu" >
{% if current_user.is_authenticated or not has_password %}
{% if not
current_diff_url %}
2023-06-19 21:29:13 +00:00
< li class = "pure-menu-item" >
< a href = "{{ url_for('tags.tags_overview_page')}}" class = "pure-menu-link" > GROUPS< / a >
< / li >
2022-12-04 15:09:09 +00:00
< li class = "pure-menu-item" >
2025-03-18 09:40:22 +00:00
< a href = "{{ url_for('settings.settings_page')}}" class = "pure-menu-link" > SETTINGS< / a >
2022-12-04 15:09:09 +00:00
< / li >
< li class = "pure-menu-item" >
2025-03-18 09:40:22 +00:00
< a href = "{{ url_for('imports.import_page')}}" class = "pure-menu-link" > IMPORT< / a >
2022-12-04 15:09:09 +00:00
< / li >
< li class = "pure-menu-item" >
2024-10-31 09:34:59 +00:00
< a href = "{{ url_for('backups.index')}}" class = "pure-menu-link" > BACKUPS< / a >
2022-12-04 15:09:09 +00:00
< / li >
2021-06-21 09:35:13 +00:00
{% else %}
2022-12-04 15:09:09 +00:00
< li class = "pure-menu-item" >
2025-03-18 09:40:22 +00:00
< a href = "{{ url_for('ui.ui_edit.edit_page', uuid=uuid, next='diff') }}" class = "pure-menu-link" > EDIT< / a >
2022-12-04 15:09:09 +00:00
< / li >
2021-06-21 09:35:13 +00:00
{% endif %}
2022-12-04 15:09:09 +00:00
{% else %}
2021-04-30 06:47:13 +00:00
< li class = "pure-menu-item" >
2023-08-13 16:35:58 +00:00
< a class = "pure-menu-link" href = "https://changedetection.io" > Website Change Detection and Notification.< / a >
2021-04-30 06:47:13 +00:00
< / li >
2022-12-04 15:09:09 +00:00
{% endif %}
{% if current_user.is_authenticated %}
< li class = "pure-menu-item" >
< a href = "{{url_for('logout')}}" class = "pure-menu-link" > LOG OUT< / a >
< / li >
{% endif %}
2023-10-25 11:31:33 +00:00
{% if current_user.is_authenticated or not has_password %}
2023-05-16 21:01:32 +00:00
< li class = "pure-menu-item pure-form" id = "search-menu-item" >
<!-- We use GET here so it offers people a chance to set bookmarks etc -->
< form name = "searchForm" action = "" method = "GET" >
2024-05-20 13:49:12 +00:00
< input id = "search-q" class = "" name = "q" placeholder = "URL or Title {% if active_tag_uuid %}in '{{ active_tag.title }}'{% endif %}" required = "" type = "text" value = "" >
< input name = "tags" type = "hidden" value = "{% if active_tag_uuid %}{{active_tag_uuid}}{% endif %}" >
2023-05-16 21:01:32 +00:00
< button class = "toggle-button " id = "toggle-search" type = "button" title = "Search, or Use Alt+S Key" >
{% include "svgs/search-icon.svg" %}
< / button >
< / form >
< / li >
2023-10-25 11:31:33 +00:00
{% endif %}
2022-12-04 15:09:09 +00:00
< li class = "pure-menu-item" >
2023-06-17 22:04:04 +00:00
< button class = "toggle-button" id = "toggle-light-mode" type = "button" title = "Toggle Light/Dark Mode" >
2022-12-04 15:09:09 +00:00
< span class = "visually-hidden" > Toggle light/dark mode< / span >
< span class = "icon-light" >
{% include "svgs/light-mode-toggle-icon.svg" %}
< / span >
< span class = "icon-dark" >
{% include "svgs/dark-mode-toggle-icon.svg" %}
< / span >
< / button >
< / li >
2023-11-10 16:31:00 +00:00
< li class = "pure-menu-item" id = "heart-us" >
< svg
fill="#ff0000"
class="bi bi-heart"
preserveAspectRatio="xMidYMid meet"
viewBox="0 0 16.9 16.1"
id="svg-heart"
xmlns="http://www.w3.org/2000/svg"
2023-11-28 16:31:08 +00:00
>
2023-11-10 16:31:00 +00:00
< path id = "heartpath" d = "M 5.338316,0.50302766 C 0.71136983,0.50647126 -3.9576371,7.2707777 8.5004254,15.503028 23.833425,5.3700277 13.220206,-2.5384409 8.6762066,1.6475589 c -0.060791,0.054322 -0.11943,0.1110064 -0.1757812,0.1699219 -0.057,-0.059 -0.1157813,-0.116875 -0.1757812,-0.171875 C 7.4724566,0.86129334 6.4060729,0.50223298 5.338316,0.50302766 Z"
style="fill:var(--color-background);fill-opacity:1;stroke:#ff0000;stroke-opacity:1" />
< / svg >
< / li >
2022-12-04 15:09:09 +00:00
< li class = "pure-menu-item" >
< a class = "github-link" href = "https://github.com/dgtlmoon/changedetection.io" >
{% include "svgs/github.svg" %}
< / a >
< / li >
2021-01-27 11:39:46 +00:00
< / ul >
2022-12-04 15:09:09 +00:00
< / div >
2024-10-09 07:17:32 +00:00
< div id = "pure-menu-horizontal-spinner" > < / div >
< / div >
2021-01-27 11:39:46 +00:00
< / div >
2024-10-09 07:17:32 +00:00
2022-12-04 15:09:09 +00:00
{% if hosted_sticky %}
< div class = "sticky-tab" id = "hosted-sticky" >
2023-05-15 11:31:30 +00:00
< a href = "https://changedetection.io/?ref={{guid}}" > Let us host your instance!< / a >
2022-12-04 15:09:09 +00:00
< / div >
{% endif %}
{% if left_sticky %}
< div class = "sticky-tab" id = "left-sticky" >
2025-03-18 09:40:22 +00:00
< a href = "{{url_for('ui.ui_views.preview_page', uuid=uuid)}}" > Show current snapshot< / a > < br >
2023-10-11 14:31:04 +00:00
Visualise < strong > triggers< / strong > and < strong > ignored text< / strong >
2022-12-04 15:09:09 +00:00
< / div >
{% endif %}
{% if right_sticky %}
< div class = "sticky-tab" id = "right-sticky" > {{ right_sticky }}< / div >
{% endif %}
< section class = "content" >
2023-11-10 16:31:00 +00:00
< div id = "overlay" >
< div class = "content" >
2024-03-06 10:06:30 +00:00
< h4 > Try our Chrome extension< / h4 >
< p >
< a id = "chrome-extension-link"
2025-03-27 08:10:36 +00:00
title="Chrome Extension - Web Page Change Detection with changedetection.io!"
2024-03-06 10:06:30 +00:00
href="https://chromewebstore.google.com/detail/changedetectionio-website/kefcfmgmlhmankjmnbijimhofdjekbop">
2025-04-01 09:51:43 +00:00
< img alt = "Chrome store icon" src = "{{url_for('static_content', group='images', filename='google-chrome-icon.png')}}" >
2024-03-06 10:06:30 +00:00
Chrome Webstore
< / a >
< / p >
Easily add the current web-page from your browser directly into your changedetection.io tool, more great features coming soon!
< h4 > Changedetection.io needs your support!< / h4 >
2023-11-10 16:31:00 +00:00
< p >
You can help us by supporting changedetection.io on these platforms;
< / p >
< p >
< ul >
< li >
2025-03-27 08:10:36 +00:00
< a href = "https://alternativeto.net/software/changedetection-io/about/" title = "Web page change detection at alternativeto.net" > Rate us at
2023-11-10 16:31:00 +00:00
AlternativeTo.net< / a >
< / li >
< li >
2025-03-27 08:10:36 +00:00
< a href = "https://github.com/dgtlmoon/changedetection.io" title = "Web page change detection on GitHub" > Star us on GitHub< / a >
< / li >
< li >
< a rel = "nofollow" href = "https://twitter.com/change_det_io" title = "Web page change detection on Twitter" > Follow us at Twitter/X< / a >
2023-11-10 16:31:00 +00:00
< / li >
< li >
2025-03-27 08:10:36 +00:00
< a rel = "nofollow" href = "https://www.g2.com/products/changedetection-io/reviews" title = "Web page change detection reviews at G2" > G2 Software reviews< / a >
2023-11-10 16:31:00 +00:00
< / li >
< li >
2025-03-27 08:10:36 +00:00
< a rel = "nofollow" href = "https://www.linkedin.com/company/changedetection-io" title = "Visit web page change detection at LinkedIn" > Check us out on LinkedIn< / a >
2023-11-10 16:31:00 +00:00
< / li >
< li >
And tell your friends and colleagues :)
< / li >
< / ul >
< p >
The more popular changedetection.io is, the more time we can dedicate to adding amazing features!
< / p >
< p >
Many thanks :)< br >
< / p >
< p >
< i > changedetection.io team< / i >
< / p >
< / div >
< / div >
< header >
2021-01-27 11:39:46 +00:00
{% block header %}{% endblock %}
2022-12-04 15:09:09 +00:00
< / header >
2021-01-27 12:17:35 +00:00
2022-12-04 15:09:09 +00:00
{% with messages = get_flashed_messages(with_categories = true) %}
{% if
messages %}
< ul class = "messages" >
{% for category, message in messages %}
< li class = "{{ category }}" > {{ message }}< / li >
{% endfor %}
2021-06-18 12:04:29 +00:00
< / ul >
{% endif %}
2022-12-04 15:09:09 +00:00
{% endwith %}
{% if session['share-link'] %}
2022-04-26 08:52:08 +00:00
< ul class = "messages with-share-link" >
2022-12-04 15:09:09 +00:00
< li class = "message" >
Share this link:
< span id = "share-link" > {{ session['share-link'] }}< / span >
2023-04-29 20:29:57 +00:00
< img style = "height: 1em; display: inline-block" src = "{{url_for('static_content', group='images', filename='copy.svg')}}" >
2022-12-04 15:09:09 +00:00
< / li >
2022-04-26 08:52:08 +00:00
< / ul >
2022-12-04 15:09:09 +00:00
{% endif %}
{% block content %}{% endblock %}
< / section >
2023-04-30 08:38:50 +00:00
< script src = "{{url_for('static_content', group='js', filename='toggle-theme.js')}}" defer > < / script >
2025-05-26 18:12:32 +00:00
< div id = "checking-now-fixed-tab" style = "display: none;" > < span class = "spinner" > < / span > < span > Checking now< / span > < / div >
2025-06-04 10:03:11 +00:00
< div id = "realtime-conn-error" style = "display:none" > Offline< / div >
2022-12-04 15:09:09 +00:00
< / body >
2021-02-24 13:44:35 +00:00
2021-01-27 11:39:46 +00:00
< / html >