Add misc/captura-pantalla-foros-google.md

This change also adds a custom screenshotpage.html template for that
specific page, in order to show the instruction for the appropriate OS
automatically.

Change-Id: Ifd7d2b1bda2e91f7e0a940705e23cbd7ee13612a
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..f6cb8ad
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1 @@
+BasedOnStyle: Google
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e5dd176
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_line = true
+charset = utf-8
+
+[*.{sh,bash}]
+indent_style = space
+indent_size = 2
+switch_case_indent = true
+
+[*.{html,css,js,json}]
+indent_style = space
+indent_size = 2
diff --git a/docs/misc/captura-pantalla-foros-google.md b/docs/misc/captura-pantalla-foros-google.md
new file mode 100644
index 0000000..0ab30f1
--- /dev/null
+++ b/docs/misc/captura-pantalla-foros-google.md
@@ -0,0 +1,68 @@
+---
+template: screenshotpage.html
+---
+
+# Cómo insertar una captura de pantalla en los Foros de Google
+Esta guía muestra cómo capturar una captura de pantalla y subirla a los Foros de
+los Productos de Google:
+
+## Capturar la pantalla
+
+=== "Windows 8/10"
+    1. Pulsa la tecla ++"Impr Pant"++, situada en la parte superior derecha de
+    tu teclado, para guardar en el cortapapeles lo que se muestra en la
+    pantalla.
+    2. Ahora abriremos Paint: para ello pulsa la combinación de teclas
+    <kbd>![Windows](https://labs.avm99963.com/chrome/img/windowskey.jpg)</kbd>
+    \+ <kbd>Q</kbd> e introduce **Paint** en el campo de búsqueda. Selecciona el
+    resultado "Paint".
+    3. En Paint pulsa la combinación de teclas ++ctrl+v++ para pegar la captura.
+    4. Haz clic en el menú **Archivo**, **Guardar** (en la parte superior de la
+    pantalla).
+    5. En el diálogo que aparece selecciona la carpeta donde quieres guardar la
+    captura y cambia el nombre al que tú prefieras. Seguidamente haz clic en el
+    botón **Guardar**.
+    6. Ahora ya puedes cerrar la ventana de Paint.
+
+=== "Windows 7/Vista/XP"
+    1. Pulsa la tecla ++"Impr Pant"++, situada en la parte superior derecha de
+    tu teclado, para guardar en el cortapapeles lo que se muestra en la
+    pantalla.
+    2. Ahora abriremos Paint: para ello haz clic en el menú **Inicio**,
+    **Todos los programas**, **Accesorios** y **Paint**.
+    3. En Paint pulsa la combinación de teclas ++ctrl+v++ para pegar la captura.
+    4. Haz clic en el menú **Archivo**, **Guardar** (en la parte superior de la
+    pantalla).
+    5. En el diálogo que aparece selecciona la carpeta donde quieres guardar la
+    captura y cambia el nombre al que tú prefieras. Seguidamente haz clic en el
+    botón **Guardar**.
+    6. Ahora ya puedes cerrar la ventana de Paint.
+
+=== "Mac"
+    1. Pulsa la combinación de teclas ++cmd+shift+3++ para capturar toda la
+    pantalla o pulsa ++cmd+shift+4++ y arrastra el cursor para capturar una
+    región específica de la pantalla.
+    2. La captura se ha guardado en el escritorio.
+
+=== "Linux"
+    Cada distribución Linux funciona de una manera diferente, pero puedes usar
+    Google para aprender cómo hacer una:
+    \[[captura pantalla _&lt;distribución linux&gt;_](http://www.google.com/?q=captura+pantalla+<distribución>)\]
+
+=== "Chrome OS"
+    Para hacer capturas de pantalla en una Chromebook puedes usar las siguientes
+    combinaciones de teclas:
+
+    | Combinación de teclas | Descripción |
+    | --------------------- | ----------- |
+    | ++ctrl++ + <img title='tecla de cambio de ventana' src='https://www.google.com/help/hc/images/chromeos_page_flipper.png' style='vertical-align: middle;'> | Hacer una captura de pantalla de toda la pantalla |
+    | ++ctrl++ + ++shift++ + <img title='tecla de cambio de ventana' src='https://www.google.com/help/hc/images/chromeos_page_flipper.png' style='vertical-align: middle;'> | Hacer una captura de pantalla parcial |
+
+    La captura de pantalla se guarda en la carpeta descargas.
+
+## Insertar la captura de pantalla
+Para insertar la captura de pantalla, haz clic en el botón
+<i class="material-icons">attach_file</i> que hay en la parte inferior del
+editor de texto:
+
+![Captura de pantalla del editor de texto](https://labs.avm99963.com/chrome/img/tailwind.png)
diff --git a/mkdocs.yml b/mkdocs.yml
index ecae419..d86e8e6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -6,6 +6,7 @@
   language: 'es'
   icon:
     logo: material/help-box
+  custom_dir: overrides
 repo_name: avm99963/support.avm99963.com
 repo_url: https://github.com/avm99963/support.avm99963.com
 extra_css: ["css/styles.css"]
@@ -42,6 +43,8 @@
       - 'Un curso rápido sobre diagnóstico de problemas con chrome://net-internals': 'chrome/desarrolladores/curso-diagnostico-net-internals.md'
   - 'Gmail':
     - 'Cambiar el idioma de Gmail': 'gmail/cambiar-idioma.md'
+  - 'Miscelánea':
+    - 'Cómo insertar una captura de pantalla en los Foros de Google': 'misc/captura-pantalla-foros-google.md'
 extra:
   social:
     - icon: material/web
diff --git a/overrides/assets/javascripts/screenshot_page.js b/overrides/assets/javascripts/screenshot_page.js
new file mode 100644
index 0000000..4ef3e73
--- /dev/null
+++ b/overrides/assets/javascripts/screenshot_page.js
@@ -0,0 +1,120 @@
+// Detect the current OS
+function detectOS() {
+  var linuxRegex = /Linux/i;
+  var winRegex = /Win/i;
+  var winNT7 = /NT 7/i;
+  var winNT6 = /NT 6/i;
+  var macRegex = /Mac/i;
+  var crosRegex = /CrOS/i;
+
+  var uaPromise = null;
+  if (navigator.userAgentData) {
+    uaPromise = navigator.userAgentData
+                    .getHighEntropyValues(['platform', 'platformVersion'])
+                    .then(ua => {
+                      return ua?.platform + ' ' + ua?.platformVersion;
+                    });
+  } else {
+    uaPromise = new Promise((res, rej) => {
+      res(navigator.userAgent ?? '');
+    });
+  }
+
+  return uaPromise.then(ua => {
+    if (linuxRegex.test(ua)) return 'linux';
+    if (winRegex.test(ua)) {
+      if (winNT7.test(ua) || winNT6.test(ua)) return 'win_7_or_less';
+      return 'win_latest';
+    }
+    if (macRegex.test(ua)) return 'mac';
+    if (crosRegex.test(ua)) return 'cros';
+    return null;
+  });
+}
+
+// Get the OS from the 'os' GET parameter if set
+function getOSGETParam() {
+  var sp = new URLSearchParams(location.search);
+  if (sp.has('os')) {
+    var os = sp.get('os');
+    switch (os) {
+      case 'win':
+        switch (sp.get('v')) {
+          case '7-':
+            return 'win_7_or_less';
+
+          case 'latest':
+          default:
+            return 'win_latest';
+        }
+        break;
+      case 'linux':
+        return 'linux';
+
+      case 'mac':
+        return 'mac';
+
+      case 'cros':
+        return 'cros';
+
+      default:
+        console.warn('Requested OS "' + os + '" unknown.');
+    }
+  }
+
+  return null;
+}
+
+// Get the target OS
+function getOS() {
+  // See whether a OS is being requested via a GET parameter
+  var os = getOSGETParam();
+  if (os !== null)
+    return new Promise((res, rej) => {
+      res(os);
+    });
+
+  // Otherwise, detect the browser
+  return detectOS();
+}
+
+// Transform the OS into the label id
+function getOSLabel() {
+  return getOS().then(os => {
+    switch (os) {
+      case 'win_latest':
+        return '1';
+
+      case 'win_7_or_less':
+        return '2';
+
+      case 'mac':
+        return '3';
+
+      case 'linux':
+        return '4';
+
+      case 'cros':
+        return '5';
+
+      default:
+        return null;
+    }
+  });
+}
+
+// Open the section corresponding to the target OS
+function openAppropriateSection() {
+  var tabs = document.querySelector('.md-content .tabbed-set');
+
+  getOSLabel().then(labelId => {
+    if (labelId === null) return;
+
+    var label = tabs.querySelector('label[for="__tabbed_1_' + labelId + '"]');
+    label.click();
+  });
+}
+
+window.addEventListener('load', _ => {
+  openAppropriateSection();
+});
diff --git a/overrides/screenshotpage.html b/overrides/screenshotpage.html
new file mode 100644
index 0000000..bca2e75
--- /dev/null
+++ b/overrides/screenshotpage.html
@@ -0,0 +1,5 @@
+{% extends "base.html" %}
+
+{% block scripts %}
+  <script src="{{ 'assets/javascripts/screenshot_page.js' | url }}"></script>
+{% endblock %}