From 4a968698e45ece04b25f41783298b9b397a191a1 Mon Sep 17 00:00:00 2001 From: Mantas <11616378+mistermantas@users.noreply.github.com> Date: Thu, 24 Jan 2019 19:23:35 +0200 Subject: cState is now stable on v3.0 - 2019-01-24 (info: #41) --- README.md | 75 ++++--- archetypes/default.md | 2 +- exampleSite/README.txt | 3 + exampleSite/config.yml | 99 +++++---- .../issues/2018-01-17-sending-dms-impacted.md | 15 ++ ...8-04-13-unavailable-guilds-connection-issues.md | 24 +++ .../issues/2018-05-25-us-east-conn-issues.md | 19 ++ .../issues/2018-06-13-maintenance-window.md | 13 ++ .../issues/unavailable-guilds-connection-issues.md | 24 --- exampleSite/content/issues/us-east-conn-issues.md | 18 -- i18n/en.yaml | 133 ++++++++++++ i18n/lt.yaml | 133 ++++++++++++ images/highlight.svg | 175 ++++++++++++++++ layouts/404.html | 21 ++ layouts/_default/list.html | 88 ++++++++ layouts/_default/list.xml | 30 +++ layouts/_default/single.html | 8 +- layouts/index.html | 61 +++--- layouts/index.xml | 30 +++ layouts/issues/issue.html | 96 ++++++--- layouts/issues/single.html | 6 +- layouts/issues/small.html | 76 +++++++ layouts/partials/footer.html | 22 +- layouts/partials/header.html | 4 +- layouts/partials/js.html | 33 ++- layouts/partials/meta.html | 229 ++++++++++++--------- layouts/shortcodes/track.html | 6 +- static/admin/config.yml | 171 ++++++++++++++- static/admin/index.html | 78 ++++++- theme.toml | 4 +- 30 files changed, 1398 insertions(+), 298 deletions(-) create mode 100644 exampleSite/README.txt create mode 100644 exampleSite/content/issues/2018-01-17-sending-dms-impacted.md create mode 100644 exampleSite/content/issues/2018-04-13-unavailable-guilds-connection-issues.md create mode 100644 exampleSite/content/issues/2018-05-25-us-east-conn-issues.md create mode 100644 exampleSite/content/issues/2018-06-13-maintenance-window.md delete mode 100644 exampleSite/content/issues/unavailable-guilds-connection-issues.md delete mode 100644 exampleSite/content/issues/us-east-conn-issues.md create mode 100644 i18n/en.yaml create mode 100644 i18n/lt.yaml create mode 100644 images/highlight.svg create mode 100644 layouts/404.html create mode 100644 layouts/_default/list.html create mode 100644 layouts/_default/list.xml create mode 100644 layouts/index.xml create mode 100644 layouts/issues/small.html diff --git a/README.md b/README.md index 95d0042..2c8c46c 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,53 @@ -

cState

+

Example of what cState looks like

-

GitHub release GitHub last commit GitHub repo size in bytes Discord Chat Twitter Awesome README

+

GitHub release GitHub last commit GitHub repo size in bytes Discord Chat Twitter Awesome status page

-> Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely free with Netlify & GitHub Pages. +> Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely _free_ with Netlify & GitHub Pages. -[**Want an example? Click here to see a live demo!**](https://cstate-example.netlify.com) +[**🎯 Want an example? Click here to see a live demo!**](https://cstate-example.netlify.com) -[You can also see what an example cState project’s source code.](https://github.com/cstate/example) +[👩‍💻 You can also see what an example cState project’s source code.](https://github.com/cstate/example) -*Looking for contributors! See Contribute section:* +## Contents ⁉ -## Contents - -+ [Features](#features) -+ Getting started ++ [Features](#features-) ++ [Getting started](#getting-started-) + [Production](#production) + [Development](#development) -+ [Updating](#updating) -+ [FAQ](#faq) -+ [Contribute](#contribute) -+ [License](#license) ++ [Updating](#updating-) ++ [FAQ](#faq-) ++ [Contribute](#contribute-) ++ [License](#license-) *** -## Features +## Features 😎 + +**Designed with care** -+ Built with [Hugo](https://gohugo.io), a hyperfast Golang generator -+ Works not just on mobile, but also on the archaic Internet Explorer 8 + Comes with a simple, focused, and extremely light design ++ Works not just on mobile, but also on the archaic Internet Explorer 8 ++ Makes you accountable, showcasing how long it took for an issue to be resolved ++ Great for data manipulation and viewing — has RSS, tag-like system feeds + +**Fast, reliable, and free** + ++ Built with [Hugo](https://gohugo.io), a hyperfast Golang generator ++ Secure, ready for HTTPS, thanks to [JAMstack](https://jamstack.org/) ++ Easy to edit and deploy on Netlify for _absolutely free_ + +**Easy to setup, manage, use** + + Edit your status page from a simple config file + Comes pre-equipped with Netlify CMS for quick admin updates -+ Easy to edit and deploy on Netlify or GitHub Pages -+ Secure, ready for HTTPS, thanks to [JAMstack](https://jamstack.org/) + Extensive documentation on the [wiki](https://github.com/cstate/cstate/wiki) -## Getting started +## Getting started 💻 For this tutorial, it is assumed that you have Hugo and Git installed (check with `hugo version` & `git --version`). +> A minimum version of `0.48` is required for Hugo, starting with v3. + #### Production We encourage you to use [Netlify](https://www.netlify.com) for cState. These are the following options you need to change in deploy settings: @@ -46,7 +56,7 @@ We encourage you to use [Netlify](https://www.netlify.com) for cState. These are + Publish directory: **public** + Add one build environment variable + Key: **HUGO_VERSION** - + Value: **0.41** + + Value: **0.48** **The easy way** @@ -86,20 +96,20 @@ git clone https://github.com/cstate/cstate.git 2. Navigate to the theme directory: ```bash -cd cstate-master +cd cstate/exampleSite ``` 3. Launch the development setup much like this: ```bash -hugo serve --baseUrl=/ --theme=cstate-master --themesDir=../.. +hugo serve --baseUrl=http://localhost/ --theme=cstate --themesDir=../.. --verbose ``` The main directory is the theme itself (the cState guts, basically) and the `exampleSite` folder houses all content. Use this local setup to experiment before deploying to production! If you would like to commit/make a PR, make sure that `themesDir` is a comment before trying to merge upstream. -## Updating +## Updating 🎉 Assuming the production install instructions were followed, keep cState updated by having an up to date Git submodule in the `themes` folder. containing this repository. Your content will stay separate, as to avoid any conflicts. @@ -117,7 +127,7 @@ git clone --recursive && git submodule foreach git pu More info about submodules on [updating](https://stackoverflow.com/a/5828396) & [cloning](https://stackoverflow.com/questions/3796927/how-to-git-clone-including-submodules). -## FAQ +## FAQ 🤔 ### Where do issues go? @@ -127,7 +137,7 @@ This takes a little more effort to set up but pays off in the long run — [see #### Doing it from the Git repository -Create a file in `content/issues`. The name of the file will be the slug (what shows up in the URL bar). For example, this is what `major-outage-east-us.md` should look like: +Create a file in `content/issues`. The name of the file will be the slug (what shows up in the URL bar). For example, this is what `2017-02-30-major-outage-east-us.md` should look like: ```md --- @@ -160,15 +170,18 @@ Time to break that down. Check out [the wiki](https://github.com/cstate/cstate/wiki). -## Contribute +## Contribute 💥 -cState needs help to grow, not only would it benefit from stuff like unit tests, but also get influenced by fresh ideas to grow even further. +> Want to become a maintainer? Hit me up! [@mistermantas](https://twitter.com/mistermantas) + Glance over the [Code of Conduct](/CODE_OF_CONDUCT.md). + Before submitting a pull request, create an issue to [discuss the implications of your proposal](https://github.com/cstate/cstate/issues). ++ Or if you are a translator — [see this](https://github.com/cstate/cstate/wiki/Translations#add-your-translations). + Write consistent, simple, readable code and precise documentation. -+ You may also use the mnts [Discord chat](https://discord.gg/EvQZdhT) for support. ++ Version numbers should be added in JS partial & meta generator tags! + +## License ✍ -## License +[MIT](https://github.com/cstate/cstate/blob/master/LICENSE.md) © [Mantas Vilčinskas](https://github.com/mistermantas) -[MIT](https://github.com/cstate/cstate/blob/master/LICENSE.md) © Mantas Vilčinskas +Thanks to all the [contributors](https://github.com/cstate/cstate/graphs/contributors)! diff --git a/archetypes/default.md b/archetypes/default.md index 70fee28..8858870 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -3,7 +3,7 @@ title: date: resolved: resolvedWhen: -# down, disrupted, notice +# You can use: down, disrupted, notice severity: affected: section: issue diff --git a/exampleSite/README.txt b/exampleSite/README.txt new file mode 100644 index 0000000..4664609 --- /dev/null +++ b/exampleSite/README.txt @@ -0,0 +1,3 @@ +This is the default cState status page website directory/folder. + +https://github.com/cstate/example diff --git a/exampleSite/config.yml b/exampleSite/config.yml index a9558ca..85c5e26 100644 --- a/exampleSite/config.yml +++ b/exampleSite/config.yml @@ -6,9 +6,8 @@ # Welcome to the cState configuration file! # -# This is the configuration file for v2.0! # If you are using an earlier version, or one -# in the future, such as v3, you may see errors +# in the future, such as v8.0 you may see errors # pop up when deploying a cState website. # # Now, onto the fun part. @@ -44,24 +43,54 @@ # What is your status page called? # Shows up in the browser bar and meta tags -title: Eggsample App Status +title: Eggsample Status -# What language is this site using? -# Only alters the html[lang] attribute +# Should posts, which have a publish date +# from the future, be built? Useful for +# sharing upcoming maintenance, etc. +# +# We recommend to keep this at `true`. +# BOOLEAN; `true`, `false` +buildFuture: true + +# What language do you want to use for the +# html[lang] definition? # +# Does not change language of site +# itself. +# +# Default: `en` # ISO 639-1 defines abbreviations. +# # See: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes # Also: https://www.w3schools.com/tags/ref_language_codes.asp languageCode: en +# What translation file should cState use? +# You can also define whether missing +# translations should get placeholders. +# +# For defaultContentLanguage— +# Default: `en` +# +# For enableMissingTranslationPlaceholders— +# do not set it to true for languages other +# than English! When tested with Lithuanian, +# it would add unnecesary placeholders to +# values that were intentionally empty. +defaultContentLanguage: en + # What is the hostname or path to the root? # Where is the site hosted? # -# Slash enables relative links. +# 💥 cState & Hugo don’t support / in +# production use. It will break RSS +# feeds and breaks permalinks since +# version 3. If you are just testing, +# localhost should automatically work. # -# Default: / # Example: https://status.example.com/ -baseURL: / +baseURL: https://status.example.com ############################################################ # +------------------------------------------------------+ # @@ -76,15 +105,24 @@ params: # For help, see the wiki: # https://github.com/cstate/cstate/wiki/Customization systems: - - - name: Gateway - - - name: API + - name: Gateway + - name: API description: The guts of the application. - - - name: Media Proxy + - name: Media Proxy description: This is the service responsible for serving images, audio, and video. It is reliant on our CDN. + # What date format to use? + # + # Hugo formatting docs: + # https://gohugo.io/functions/format/#hugo-date-and-time-templating-reference + # + # Technical: GOLANG/HUGO .Date.Format & dateFormat + # + # dateFormat Default: "January 2, 2006 at 3:04 PM" + # shortDateFormat Default: "15:04 — Jan 2" + dateFormat: January 2, 2006 at 3:04 PM + shortDateFormat: 15:04 — Jan 2 + # What header design should we use? # # Default: true @@ -109,7 +147,7 @@ params: logo: /logo.png # This is the description that is shown - # in the footer and meta tags. + # on the footer and meta tags. # # Default: We continuously monitor the status of our services and if there are any interruptions, a note will be posted here. description: We continuously monitor the status of our services and if there are any interruptions, a note will be posted here. @@ -146,12 +184,12 @@ params: # # brand: #181818 # ok: 228B22 - # warning: DC143C - # down: FF8C00 + # warning: EE7600 + # down: DC143C # notice: 708090 brand: 181818 ok: 228B22 - disrupted: FF8C00 + disrupted: EE7600 down: DC143C notice: 708090 @@ -181,29 +219,12 @@ params: # Default: UA-00000000-1 googleAnalytics: UA-00000000-1 -############################################################ -# +------------------------------------------------------+ # -# | For developers | # -# +------------------------------------------------------+ # -############################################################ - -# Should posts, which have a publish date -# from the future, be built? Useful for -# sharing upcoming maintenance, etc. -# -# We recommend to keep this at `true`. -# BOOLEAN; `true`, `false` -buildFuture: true - # These options affect the core of cState. # Please do not change them if you do not # know what you are doing. theme: cstate -# This option tells cState what version -# your config file is using. -# -# Never ever remove this, nor change it, -# if you have not updated to any other -# version. -version: 2 +preserveTaxonomyNames: true + +taxonomies: + affected: affected diff --git a/exampleSite/content/issues/2018-01-17-sending-dms-impacted.md b/exampleSite/content/issues/2018-01-17-sending-dms-impacted.md new file mode 100644 index 0000000..0af6136 --- /dev/null +++ b/exampleSite/content/issues/2018-01-17-sending-dms-impacted.md @@ -0,0 +1,15 @@ +--- +title: Issues Sending DMs +date: 2018-01-17 16:24:00 +resolved: true +resolvedWhen: 2018-01-17 16:58:00 +# Possible severity levels: down, disrupted, notice +severity: disrupted +affected: + - API +section: issue +--- + +*Update* - This incident has been resolved. + +*Investigating* - We're aware of an issue affecting sending DMs and viewing online friends. We're online and working on a resolution. diff --git a/exampleSite/content/issues/2018-04-13-unavailable-guilds-connection-issues.md b/exampleSite/content/issues/2018-04-13-unavailable-guilds-connection-issues.md new file mode 100644 index 0000000..a5213d1 --- /dev/null +++ b/exampleSite/content/issues/2018-04-13-unavailable-guilds-connection-issues.md @@ -0,0 +1,24 @@ +--- +title: Unavailable Guilds & Connection Issues +date: 2018-04-13 15:54:00 +resolved: true +resolvedWhen: 2018-04-13 17:30:00 +# Possible severity levels: down, disrupted, notice +severity: down +affected: + - API +section: issue +--- + +*Post-mortem* + +At approximately 14:01, a Redis instance acting as the primary for a highly-available cluster used by our API services was migrated automatically by Google’s Cloud Platform. This migration caused the node to incorrectly drop offline, forcing the cluster to rebalance and trigger known issues with the way our API instances handle Redis failover. After resolving this partial outage, unnoticed issues on other services caused a cascading failure through Example Chat App’s real time system. These issues caused enough critical impact that Example Chat App’s engineering team was forced to fully restart the service, reconnecting millions of clients over a period of 20 minutes. + + +--- + +*Update* - A fix has been implemented and we are monitoring the results. Looks like this has been fixed. {{< track "2018-04-13 17:30:00" >}} + +*Monitoring* - After hitting the ole reboot button Example Chat App is now recovering. We're going to continue to monitor as everyone reconnects. {{< track "2018-04-13 16:50:00" >}} + +*Investigating* - We're aware of users experiencing unavailable guilds and issues when attempting to connect. We're currently investigating. {{< track "2018-04-13 15:54:00" >}} diff --git a/exampleSite/content/issues/2018-05-25-us-east-conn-issues.md b/exampleSite/content/issues/2018-05-25-us-east-conn-issues.md new file mode 100644 index 0000000..96c228c --- /dev/null +++ b/exampleSite/content/issues/2018-05-25-us-east-conn-issues.md @@ -0,0 +1,19 @@ +--- +title: US East Connection Issues +date: 2018-05-25 04:13:00 +resolved: true +resolvedWhen: 2018-05-25 04:13:59 +# Possible severity levels: down, disrupted, notice +severity: disrupted +affected: + - API + - Media Proxy +section: issue +--- + +*Resolved* - +We believe all users experiencing issues have been able to connect at this time. {{< track "2018-05-25 05:54:00" >}} + +*Monitoring* - We believe the connectivity issues are being caused by an isolated ISP issue. We've had reports that swapping to Google DNS servers (see here; https://developers.google.com/speed/public-dns/docs/using) resolves the problem for users. {{< track "2018-05-25 04:40:00" >}} + +*Investigating* - We're aware of reports that users are experiencing connection issues on the East coast of the United States. We're currently investigating these issues, and apologize for any inconvenience it may be causing you. {{< track "2018-05-25 04:13:00" >}} diff --git a/exampleSite/content/issues/2018-06-13-maintenance-window.md b/exampleSite/content/issues/2018-06-13-maintenance-window.md new file mode 100644 index 0000000..e21ae4d --- /dev/null +++ b/exampleSite/content/issues/2018-06-13-maintenance-window.md @@ -0,0 +1,13 @@ +--- +title: Maintenance Window +date: 2018-06-13 15:54:00 +resolved: false +resolvedWhen: 2018-06-13 17:30:00 +# Possible severity levels: down, disrupted, notice +severity: notice +affected: + - API +section: issue +--- + +*Just began* - We're currently shutting down the network. {{< track "2018-06-13 15:54:00" >}} diff --git a/exampleSite/content/issues/unavailable-guilds-connection-issues.md b/exampleSite/content/issues/unavailable-guilds-connection-issues.md deleted file mode 100644 index 327c017..0000000 --- a/exampleSite/content/issues/unavailable-guilds-connection-issues.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Unavailable Guilds & Connection Issues -date: 2018-04-13 15:54:00 -resolved: true -resolvedWhen: 2018-04-13 17:30:00 -# down, disrupted, notice -severity: down -affected: - - API -section: issue ---- - -*Post-mortem* - -At approximately 14:01, a Redis instance acting as the primary for a highly-available cluster used by our API services was migrated automatically by Google’s Cloud Platform. This migration caused the node to incorrectly drop offline, forcing the cluster to rebalance and trigger known issues with the way our API instances handle Redis failover. After resolving this partial outage, unnoticed issues on other services caused a cascading failure through Example Chat App’s real time system. These issues caused enough critical impact that Example Chat App’s engineering team was forced to fully restart the service, reconnecting millions of clients over a period of 20 minutes. - - ---- - -*Update* - A fix has been implemented and we are monitoring the results. Looks like this has been fixed. {{< track "2018-04-13 17:30:00" >}} - -*Monitoring* - After hitting the ole reboot button Example Chat App is now recovering. We're going to continue to monitor as everyone reconnects. {{< track "2018-04-13 16:50:00" >}} - -*Investigating* - We're aware of users experiencing unavailable guilds and issues when attempting to connect. We're currently investigating. {{< track "2018-04-13 15:54:00" >}} diff --git a/exampleSite/content/issues/us-east-conn-issues.md b/exampleSite/content/issues/us-east-conn-issues.md deleted file mode 100644 index 3f19c0b..0000000 --- a/exampleSite/content/issues/us-east-conn-issues.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: US East Connection Issues -date: 2018-05-25 04:13:00 -resolved: true -resolvedWhen: 2018-05-25 04:40:00 -# down, disrupted, notice -severity: disrupted -affected: - - API -section: issue ---- - -*Resolved* - -We believe all users experiencing issues have been able to connect at this time. {{< track "2018-05-25 05:54:00" >}} - -*Monitoring* - We believe the connectivity issues are being caused by an isolated ISP issue. We've had reports that swapping to Google DNS servers (see here; https://developers.google.com/speed/public-dns/docs/using) resolves the problem for users. {{< track "2018-05-25 04:40:00" >}} - -*Investigating* - We're aware of reports that users are experiencing connection issues on the East coast of the United States. We're currently investigating these issues, and apologize for any inconvenience it may be causing you. {{< track "2018-05-25 04:13:00" >}} diff --git a/i18n/en.yaml b/i18n/en.yaml new file mode 100644 index 0000000..3eafd19 --- /dev/null +++ b/i18n/en.yaml @@ -0,0 +1,133 @@ +# English language file for cState +# Version 3.0 + +- id: languageCode + translation: en +- id: languageName + translation: English +- id: languageNameShort + translation: ENG + +## +## INDEX.HTML +## + +# Summary status message +- id: isDown + translation: Experiencing major issues +- id: isDisrupted + translation: Experiencing disruptions +- id: isNotice + translation: Please read announcement +- id: isOk + translation: All systems operational + +# No JS warning +- id: noScriptingIntro + translation: Uh oh! It looks like you have disabled JavaScript. Please +- id: noScriptingLink + translation: enable scripting +- id: noScriptingOutro + translation: to enhance your experience on this website. + +- id: thisIsDown + translation: Down +- id: thisIsDisrupted + translation: Disrupted +- id: thisIsNotice + translation: Maintenance +- id: thisIsOk + translation: Operational + +# "Last checked" + "just now" +- id: lastChecked + translation: Last checked +- id: justNow + translation: just now +- id: someTimeAgo + translation: ago + +# Example usage: `5` + `years` +# Final result: 'Last checked 5 years ago' +# Number goes before string +# Use short variants until months +- id: yearsAgo + translation: years +- id: monthsAgo + translation: months +- id: daysAgo + translation: d +- id: hoursAgo + translation: h +- id: minsAgo + translation: min +- id: secondsAgo + translation: s + +- id: autoRefreshNotice + translation: We will try to refresh every 5 min + +# Incidents +- id: incidents + translation: Incidents +- id: incidentHistory + translation: Incident history + +- id: resolved + translation: Resolved # if it's less than a min +- id: inUnderAMinute + translation: in under a minute # continuing the last string +- id: resolvedAfter + translation: Resolved after # + 19 min +- id: ofDowntime + translation: of downtime + +- id: downtimeOngoing + translation: Unresolved! + + +- id: calmBeforeTheStorm + translation: Is it the calm before the storm? +- id: noIncidentsDesc + translation: This status page has no logged incidents. This may be because the status page owner (or owners) have recently set up their status page, have had no downtime, or have not logged any downtime. + + +- id: continueReading + translation: Continue reading +- id: prev + translation: Previous +- id: next + translation: Next + +## +## OTHER +## + +- id: goBack + translation: Go back to +- id: backToTop + translation: Back to top +- id: poweredBy + translation: Powered by + +- id: notFound + translation: There is nothing here. +- id: notFoundText + translation: This could be a problem on our part. Perhaps we moved a certain resource and now it is gone. It is also possible that the resource you are trying to view is empty (for example, if a system has never been down, we have nothing to show). But do you also mind to double check the link? + +- id: rss + translation: Subscribe via RSS +- id: toAllUpdates + translation: to all updates +- id: or + translation: or +- id: onlyThisFeed + translation: only this feed + +## +## v3 +## +- id: entries + translation: entries +- id: newestToOldest + translation: newest to oldest diff --git a/i18n/lt.yaml b/i18n/lt.yaml new file mode 100644 index 0000000..6721e8e --- /dev/null +++ b/i18n/lt.yaml @@ -0,0 +1,133 @@ +# Lithuanian language file for cState +# Version 3.0 + +- id: languageCode + translation: en +- id: languageName + translation: Lithuanian +- id: languageNameShort + translation: LIT + +## +## INDEX.HTML +## + +# Summary status message +- id: isDown + translation: Yra rasti sistemų sutrikimai +- id: isDisrupted + translation: Kai kurios sistemos nestabilios +- id: isNotice + translation: Prašome perskaityti pranešimą +- id: isOk + translation: Visos sistemos veikiai + +# No JS warning +- id: noScriptingIntro + translation: O ne! Jūsų interneto naršyklė neturi įjungto JavaScript. Tam, kad galėtume peržiūrėti daugumą šiuolaikinių interneto svetainių, reikia turėti įdiegtą JavaScript. Rekomenduoje +- id: noScriptingLink + translation: peržiūrėti šias instrukcijas, +- id: noScriptingOutro + translation: jei norite išnaudoti visas šios svetainės funkcijas. + +- id: thisIsDown + translation: Neveikia +- id: thisIsDisrupted + translation: Yra trukdžių +- id: thisIsNotice + translation: Remontuojama +- id: thisIsOk + translation: Veikia + +# "Last checked" + "just now" +- id: lastChecked + translation: Paskutinį kartą atnaujinta prieš +- id: justNow + translation: <5s +# - id: someTimeAgo +# translation: # not used + +# Example usage: `5` + `years` +# Final result: 'Last checked 5 years ago' +# Number goes before string +# Use short variants until months +- id: yearsAgo + translation: met. +- id: monthsAgo + translation: mėn. +- id: daysAgo + translation: d +- id: hoursAgo + translation: val. +- id: minsAgo + translation: min. +- id: secondsAgo + translation: s + +- id: autoRefreshNotice + translation: Bandome automatiškai atnaujinti informaciją kas 5 min. + +# Incidents +- id: incidents + translation: Incidentai +- id: incidentHistory + translation: Incidentų išrašai + +- id: resolved + translation: Išspręsta problema # if it's less than a min +- id: inUnderAMinute + translation: minutės # continuing the last string +- id: resolvedAfter + translation: Išspręsta problema po # + 19 min # not used +#- id: ofDowntime +# translation: of downtime + +- id: downtimeOngoing + translation: Dar sprendžiama problema + + +- id: calmBeforeTheStorm + translation: Kol kas nėra jokių incidentų. +- id: noIncidentsDesc + translation: Šiame puslapyje nėra užregistruotų incidentų. Gali būti todėl, kad puslapio savininkas (arba savininkai) neseniai sukūrė šią svetainę, neturėjo incidentų šiame laiko tarpe arba neužregistravo incidentų sistemoje. + + +- id: continueReading + translation: Skaityti toliau +- id: prev + translation: Ankstesnis +- id: next + translation: Kitas + +## +## OTHER +## + +- id: goBack + translation: Eiti atgal į +- id: backToTop + translation: Eiti į viršų +- id: poweredBy + translation: Ši svetainė sukurta su + +- id: notFound + translation: Čia nieko nėra. +- id: notFoundText + translation: Tai gali būti mūsų problema — galbūt puslapis, kurį bandote peržiūrėti, buvo kitur perkeltas arba buvo ištrintas. Taip pat yra galimybė, jog puslapis yra tuščias (pvz. jeigu vienas komponentas mūsų sistemoje nėra turėjęs problemų, nėra ko rodyti). Rekomenduoje dar kartą patikrinti, ar nuoroda, kurią naudojate, nėra neteisinga. + +- id: rss + translation: Gaukite atnaujinimus naudojant RSS +- id: toAllUpdates + translation: visi atnaujinimai +- id: or + translation: arba +- id: onlyThisFeed + translation: tik šio srauto + +## +## v3 +## +- id: entries + translation: įrašai +- id: newestToOldest + translation: naujiausi rodomi pirmi diff --git a/images/highlight.svg b/images/highlight.svg new file mode 100644 index 0000000..7877c74 --- /dev/null +++ b/images/highlight.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..64ff118 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,21 @@ +{{ partial "meta" . }} + +{{ $incidents := where .Site.RegularPages "Params.section" "issue" }} +{{ $active := where $incidents "Params.resolved" "=" false }} + +{{ $isNotice := where $active "Params.severity" "=" "notice" }} +{{ $isDisrupted := where $active "Params.severity" "=" "disrupted" }} +{{ $isDown := where $active "Params.severity" "=" "down" }} + + + {{ partial "header" . }} + +
+

{{ T "notFound" }}

+

{{ T "notFoundText" }}

+
+ + {{ partial "js" . }} + {{ partial "footer" . }} + + diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..b8c14c6 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,88 @@ +{{ partial "meta" . }} +{{ $title := .Title }} + + +
+
+ ← {{ T "goBack" }} {{ .Site.Title }} +
+
+ +

{{ $title }}

+ + {{ range .Site.Params.systems }} + {{ if eq .name $title }} + {{ with .description }} +

{{ . }}

+ {{ end }} + {{ end }} + {{ end }} + + {{ len .Pages }} {{ T "entries" }}, {{ T "newestToOldest" }} + +
+
+
+ {{ $incidents := .Pages }} +
+ +
+ {{ if not $incidents }} +
+

{{ T "calmBeforeTheStorm" }}

+

{{ T "noIncidentsDesc" }}

+
+
+
+ {{ else }} + {{ $paginator := .Paginate $incidents .Site.Params.incidentPostsPerPage }} + {{ range $paginator.Pages }} + {{ .Render "small" }} + {{ end }} + + + {{ if gt $paginator.TotalPages 1 }} +
+ +
+ {{ if $paginator.HasPrev }} + + ⭠   + {{ T "prev" }} + + {{ else }} + + ⭠   + {{ T "prev" }} + + {{ end }} + + +     + {{ $paginator.PageNumber }} + / + {{ $paginator.TotalPages }} +     + + + {{ if $paginator.HasNext }} + + {{ T "next" }}   + ⭢ + + {{ else }} + + {{ T "next" }}   + ⭢ + + {{ end }} +
+ {{ end }} + {{ end }} +
+
+ + {{ partial "js" . }} + {{ partial "footer" . }} + + diff --git a/layouts/_default/list.xml b/layouts/_default/list.xml new file mode 100644 index 0000000..219354b --- /dev/null +++ b/layouts/_default/list.xml @@ -0,0 +1,30 @@ + + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ T "incidentHistory" }} + github.com/cstate + {{ with .Site.LanguageCode }}{{.}}{{end}} + {{ if not .Date.IsZero }} + {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }} + {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }} + {{ end }} + {{ with .Site.Copyright }} + {{.}}{{end}} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ range .Pages }} + + {{ if .Params.resolved }}[{{ T "resolved" }}] {{ end }}{{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ .Permalink }} + {{ .Params.resolvedWhen }} + {{ .Summary | html }} + {{ .Content | html }} + + {{ end }} + + diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 8463204..c1292b2 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,13 +1,11 @@ {{ partial "meta" . }} - - +
- ← Go back + ← {{ T "goBack" }} {{ .Site.Title }}
- {{ .Render "post" }} + {{ .Content }}
- {{ partial "js" . }} {{ partial "footer" . }} diff --git a/layouts/index.html b/layouts/index.html index 13e684d..2802ce1 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -13,7 +13,7 @@
@@ -21,28 +21,28 @@
{{ if $isDown }} - Experiencing major issues + {{ T "isDown" }} {{ else }} {{ if $isDisrupted }} - Experiencing disruptions + {{ T "isDisrupted" }} {{ else }} {{ if $isNotice }} - Please read announcement + {{ T "isNotice" }} {{ else }} - All systems operational + {{ T "isOk" }} {{ end }}{{ end }}{{ end }} - +
{{ if $active }}
{{ range $active }}
-

{{ .Title }}

+

{{ .Title }}

{{ .Content | safeHTML | truncate 500 "…" }} -

Continue reading

+

{{ T "continueReading" }}

{{ else }}{{ end }}
@@ -50,7 +50,7 @@ {{ if .Site.Params.autoRefresh }}
- We will try to refresh every 5 minutes + {{ T "autoRefreshNotice" }}
{{ else }} @@ -68,14 +68,15 @@ {{ $thisIsDown := where $activeComponentIssues "Params.severity" "=" "down" }}
- {{ $this := .name }} - {{ .name }} + + {{ .name }} + {{ with .description }} - +   (?) - + {{ . }} @@ -83,15 +84,15 @@ {{ if $thisIsDown }} - Down + {{ T "thisIsDown" }} {{ else }} {{ if $thisIsDisrupted }} - Disrupted + {{ T "thisIsDisrupted" }} {{ else }} {{ if $thisIsNotice }} - Maintenance + {{ T "thisIsNotice" }} {{ else }} - Operational + {{ T "thisIsOk" }} {{ end }}{{ end }}{{ end }} @@ -114,7 +115,7 @@
- Incidents + {{ T "incidents" }} {{ range .Site.Params.customTabs }} @@ -125,26 +126,25 @@
{{ else }} -
-

Incident history

-
+
+

{{ T "incidentHistory" }}

+
{{ end }} -
-
+
{{ if not $incidents }}
-

Is it the calm before the storm?

-

This status page has no logged incidents. This may be because the status page owner (or owners) have recently set up their status page, have had no downtime, or have not logged any downtime.

+

{{ T "calmBeforeTheStorm" }}

+

{{ T "noIncidentsDesc" }}

{{ else }} {{ $paginator := .Paginate $incidents .Site.Params.incidentPostsPerPage }} {{ range $paginator.Pages }} - {{ .Render "issue" }} + {{ .Render "small" }} {{ end }} @@ -155,12 +155,12 @@ {{ if $paginator.HasPrev }} ⭠   - Previuos + {{ T "prev" }} {{ else }} ⭠   - Previuos + {{ T "prev" }} {{ end }} @@ -174,18 +174,19 @@ {{ if $paginator.HasNext }} - Next   + {{ T "next" }}   ⭢ {{ else }} - Next   + {{ T "next" }}   ⭢ {{ end }}
{{ end }} {{ end }} +
diff --git a/layouts/index.xml b/layouts/index.xml new file mode 100644 index 0000000..e9ae53d --- /dev/null +++ b/layouts/index.xml @@ -0,0 +1,30 @@ + + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ T "incidentHistory" }} + github.com/cstate + {{ with .Site.LanguageCode }}{{.}}{{end}} + {{ if not .Date.IsZero }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end }} + {{ with .Site.Copyright }} + {{.}}{{end}} + {{ with .OutputFormats.Get "RSS" }} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end }} + {{ $incidents := where .Site.RegularPages "Params.section" "issue" }} + {{ range $incidents }} + + {{ if .Params.resolved }}[{{ T "resolved" }}] {{ end }}{{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ .Permalink }} + {{ .Params.resolvedWhen }} + {{ .Content | html }} + + {{ end }} + + diff --git a/layouts/issues/issue.html b/layouts/issues/issue.html index 014a33a..c344f57 100644 --- a/layouts/issues/issue.html +++ b/layouts/issues/issue.html @@ -6,43 +6,81 @@ {{ $isDown := where $active "Params.severity" "=" "down" }}
+

+ {{ .Title }} +

+ + + {{ if .Site.Params.dateFormat }} + {{ .Date.Format .Site.Params.dateFormat }} + {{ else }} + {{ .Date.Format "January 2, 2006 at 3:04 PM" }} + {{ end }} + + +

+ {{ range .Params.Affected }} + {{ . }} + {{ end }} +

+ {{ if .Params.Resolved }} - - - {{ $t := (time .Params.ResolvedWhen) }} - {{ $timeDiff := (sub $t.Unix .Date.Unix) }} - {{ $diffInMin := (div $timeDiff 60) }} - - - {{ if lt $timeDiff 60 }} - ✓ Resolved + {{ $t := (time .Params.ResolvedWhen) }} + {{ $timeDiff := (sub $t.Unix .Date.Unix) }} + {{ $diffInMin := (div $timeDiff 60) }} + + + + {{ if lt $timeDiff 60 }} +
+ + {{ T "resolved" }} {{ T "inUnderAMinute" }}. + +
+ {{ else }} + {{ if gt $timeDiff 3600 }} +
+ + {{ T "resolvedAfter" }} + + {{ $minutesForCalc := (mod $diffInMin 60) }} + + {{ div (sub $diffInMin $minutesForCalc) 60 }}h + {{ $minutesForCalc }}m {{ T "ofDowntime" }}. + + + + {{ if .Site.Params.dateFormat }} + {{ dateFormat .Site.Params.dateFormat .Params.resolvedWhen }} + {{ else }} + {{ dateFormat "January 2, 2006 at 3:04 PM" .Params.resolvedWhen }} + {{ end }} + +
{{ else }} +
+ + {{ T "resolvedAfter" }} - ✓ Resolved after - {{ if gt $timeDiff 3600 }} - {{ $minutesForCalc := (mod $diffInMin 60) }} + {{ $secsForCalc := (mod $timeDiff 60) }} - {{ div (sub $diffInMin $minutesForCalc) 60 }}h - {{ $minutesForCalc }}m of downtime - {{ else }} - {{ $secsForCalc := (mod $timeDiff 60) }} + {{ div (sub $timeDiff $secsForCalc) 60 }}m + {{ T "ofDowntime" }}. + - {{ div (sub $timeDiff $secsForCalc) 60 }}m - of downtime - {{ end }} - + + {{ if .Site.Params.dateFormat }} + {{ dateFormat .Site.Params.dateFormat .Params.resolvedWhen }} + {{ else }} + {{ dateFormat "January 2, 2006 at 3:04 PM" .Params.resolvedWhen }} + {{ end }} + +
{{ end }} -
+ {{ end }} {{ else }} - Ongoing, services {{ if eq .Params.severity "notice" }}on notice{{ else }}{{ .Params.severity }}{{ end }} + {{ T "downtimeOngoing" }} {{ end }} -

- {{ .Title }} -

- - - {{ .Date.Format "January 02, 2006 at 3:04 PM" }} -
{{ .Content }} diff --git a/layouts/issues/single.html b/layouts/issues/single.html index 5076148..5761477 100644 --- a/layouts/issues/single.html +++ b/layouts/issues/single.html @@ -7,11 +7,9 @@ {{ $isDisrupted := where $active "Params.severity" "=" "disrupted" }} {{ $isDown := where $active "Params.severity" "=" "down" }} - - {{ partial "header" . }} - +
diff --git a/layouts/issues/small.html b/layouts/issues/small.html new file mode 100644 index 0000000..6833b68 --- /dev/null +++ b/layouts/issues/small.html @@ -0,0 +1,76 @@ +{{ $incidents := where .Site.RegularPages "Params.section" "issue" }} +{{ $active := where $incidents "Params.resolved" "=" false }} + +{{ $isNotice := where $active "Params.severity" "=" "notice" }} +{{ $isDisrupted := where $active "Params.severity" "=" "disrupted" }} +{{ $isDown := where $active "Params.severity" "=" "down" }} + + + {{ if .Params.Resolved }} + + {{ if .Site.Params.dateFormat }} + {{ .Date.Format .Site.Params.dateFormat }} + {{ else }} + {{ .Date.Format "January 2, 2006 at 3:04 PM" }} + {{ end }} + + +

+ {{ .Title }} +

+ + {{ $t := (time .Params.ResolvedWhen) }} + {{ $timeDiff := (sub $t.Unix .Date.Unix) }} + {{ $diffInMin := (div $timeDiff 60) }} + + + {{ if lt $timeDiff 60 }} +
+ {{ T "resolved" }} {{ T "inUnderAMinute" }} +
+ {{ else }} + {{ if gt $timeDiff 3600 }} +
+ {{ T "resolvedAfter" }} + + {{ $minutesForCalc := (mod $diffInMin 60) }} + + {{ div (sub $diffInMin $minutesForCalc) 60 }}h + {{ $minutesForCalc }}m {{ T "ofDowntime" }} +
+ {{ else }} +
+ {{ T "resolvedAfter" }} + + {{ $secsForCalc := (mod $timeDiff 60) }} + + {{ div (sub $timeDiff $secsForCalc) 60 }}m + {{ T "ofDowntime" }} +
+ {{ end }} + {{ end }} + + + {{ else }} + + + {{ if .Site.Params.dateFormat }} + {{ .Date.Format .Site.Params.dateFormat }} + {{ else }} + {{ .Date.Format "January 2, 2006 at 3:04 PM" }} + {{ end }} + + +

+ {{ .Title }} +

+ + {{ $t := (time .Params.ResolvedWhen) }} + {{ $timeDiff := (sub $t.Unix .Date.Unix) }} + {{ $diffInMin := (div $timeDiff 60) }} + + +
{{ T "downtimeOngoing" }}
+ + {{ end }} +
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index edbbb57..2dcea70 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -4,14 +4,30 @@ diff --git a/layouts/partials/header.html b/layouts/partials/header.html index cfe6109..242c4f3 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -5,7 +5,7 @@ {{ if .Site.Params.useLargeHeaderDesign }}
-