Як зробити текст “спойлером” на вікі-сторінках github?


81

Я намагаюся зробити текст, який буде або невидимим, доки не буде наведено курсор миші , або має кнопку "показати" / "сховати" , або щось інше, щоб його не було видно, доки користувач якось не взаємодіє з ним.

Я намагаюся зробити це на вікі-сторінці github. (Зокрема, це для короткої самостійної вікторини.)

В основному я хочу отримати ефект, подібний до того, що SO досягає >!розміткою:

Хохо! Текст спойлера!

як описано в цих мета публікаціях.

Ця ж розмітка не працює в github, я думаю, це розширення SO?

Я бачив цю проблему щодо використання тексту спойлера в коментарях до github, який був закритий, але я думав, що може бути інша відповідь на вікі-сторінки, або інше рішення на основі HTML чи щось інше?

Хтось знає, чи є спосіб зробити це, чи це, безумовно, на жаль неможливо?


Примітка: Було кілька досить корисних коментарів, що показують альтернативні підходи для цього на сторінці github isuses тут: github.com/github/markup/issues/411#issuecomment-176907678
— Кріс Бек,

Відповіді:


29

У документації для GitHub Flavored Markdown не згадується про спойлери, тому я підозрюю, що він не підтримується. Це точно не є частиною оригінальних специфікацій Markdown .


Так ... Я дивився на цю сторінку, де вона перелічує всі різні формати розмітки, які вони підтримують. (Здається, вони підтримують їх і у вікі-редакторі сторінок.) Я коротко переглянув документацію кожного, той, у якому я не був впевнений, був «першим», інші не виглядали надто багатообіцяючими, але, можливо, я щось пропустив. .. банкомат Я схильний думати, що ти маєш рацію. github.com/github/markup Найкращим варіантом може бути це зробити на сторінці "сторінок github", на яку посилається вікі чи щось інше?
— Кріс Бек,

144

GFM підтримує підмножину HTML. На даний момент ви можете обернути своє запитання у <summary>та відповідь у будь-який стандартний тег HTML, наприклад, <p>і обернути все <details>тегом у тезі.

Тож якщо ви це зробите

<details> 
  <summary>Q1: What is the best Language in the World? </summary>
   A1: JavaScript 
</details>

Ви отримуєте це -> https://github.com/gaurav21r/Spoon-Knife/wiki/Read-More-Test

Підтримка браузера є проблемою.

Річ у GitHUB wiki полягає в тому, що він дозволяє писати текст в інших форматах, таких як AsciiDoc , RST тощо. Probabaly теж має рішення. Це 2 формати, які набагато більше функцій, ніж Markdown.


74

Спираючись на відповідь Гаурава та цю проблему GH, ось спосіб використовувати розширене форматування всередині <details>тегу на GitHub :

Примітка: потрібна оригінальна відповідь 2016 року <p>, з 2017 року ця вимога - це порожній рядок після </summary>(тобто перед розширеним вмістом). Десь уздовж лінії, що веде до 2019 року, знижка на прибуток теж <summary>вже не працює. Ви бачите, що це досить нестабільно, оскільки це хакерство / обхідний шлях, а не підтримувана функція / варіант використання. Також зауважте, що коментарі до випусків / PR підтримують форматування, що відрізняється від формату Вікі (наприклад, підкреслення квітня 2020 р. У резюме працює лише на Wiki, а не з питань).

<details>
  <summary>stuff with *mark* **down** in `summary` doesn't work any more, use HTML <i>italics</i> and <b>bold</b> instead in <code>&lt;summary&gt;</code> (<i>click to expand</i>)</summary>
  <!-- have to be followed by an empty line! -->

## *formatted* **heading** with [a](link)
```java
code block
```

  <details>
    <summary><u>nested</u> <b>stuff</b> (<i>click to expand</i>)</summary>
    <!-- have to be followed by an empty line! -->

A bit more than normal indentation is necessary to get the nesting correct,
 1. list
 1. with
    1. nested
    1. items
        ```java
        // including code
        ```
    1. blocks
 1. and continued non-nested

  </details>
</details>

В даний час він виглядає наступним чином із очікуваними деталями, що розширюються та складаються:


Початковий стан

введіть тут опис зображення


Клацніть на резюме

введіть тут опис зображення


Клацніть на вкладений підсумок

введіть тут опис зображення


8
Відповідно до цього коментаря GitHub , переконайтеся, що між і <p>та ```. Є лінія . Інакше ця техніка не спрацює.
— Бенджамін,

Будь-яка ідея, як отримати новий рядок після цього? Коли я спробую цю техніку, вона забивається в наступний абзац. (
— Маючи на

Ну, коли я копіюю ваш точний код відповіді, він не показує жодного форматування. Отже, тут щось не так
— phil294,

1
@ phil294 дякую за попередження, виправлено. На жаль, це гниє, тому потребує певних коригувань у міру розвитку GitHub. Додав також примітку, щоб вказати на це.
— TWiStErRob

11

Елемент html <details>та<summary> може це зробити, подивіться:

http://caniuse.com/#search=details

Підтримка Firefox & Edge погана, але можуть бути деякі забруднення ...


1
Хоча це цікавий момент, я вважаю, що це повинен бути лише коментар до іншої відповіді (яка з’явилася пізніше, я знаю).
— Клемен

4

Якщо редагування CSS- це варіант для вас, ви можете просто скористатися ним

[](#spoiler "Spoiler Filled Text")

а потім використовуйте (чистий), CSSщоб надати правильний вигляд.

a[href="#spoiler"] {
  text-decoration: none !important;
  cursor: default;
  margin-bottom: 10px;
  padding: 10px;
  background-color: #FFF8DC;
  border-left: 2px solid #ffeb8e;
  display: inline-block;
}
a[href="#spoiler"]::after {
  content: attr(title);
  color: #FFF8DC;
  padding: 0 0.5em;
}
a[href="#spoiler"]:hover::after,
a[href="#spoiler"]:active::after {
  cursor: auto;
  color: black;
  transition: color .5s ease-in-out;
}
<p>
  <a href="#spoiler" title="Spoiler Filled Text"></a>
</p>

(Нечітко натхненний цим кодом )


1

Різне рішення від тегів деталей / підсумків, але також використання рідного html - це використання інтервалу з заголовком. Я робив щось подібне нещодавно в організаційному режимі.

необроблений текст

результат

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.