Làm thế nào để tạo văn bản "spoiler" trong các trang wiki github?


81

Tôi đang cố gắng làm cho văn bản ẩn cho đến khi di chuyển qua hoặc có nút "hiển thị" / "ẩn" hoặc một số thứ khác, để nó không hiển thị cho đến khi người dùng tương tác với nó theo một cách nào đó.

Tôi đang cố gắng thực hiện việc này trên trang wiki github. (Cụ thể là nó dành cho một bài kiểm tra ngắn về bản thân.)

Về cơ bản, tôi muốn có được hiệu ứng tương tự như những gì SO đạt được với >!đánh dấu:

Hoho! Văn bản spoiler!

như được mô tả trong các bài viết meta này .

Đánh dấu tương tự không hoạt động trong github, tôi đoán rằng đó là một tiện ích mở rộng SO?

Tôi đã gặp sự cố này về việc sử dụng văn bản spoiler trong các nhận xét trên github, trang này đã bị đóng, nhưng tôi nghĩ có thể có một câu trả lời khác cho các trang wiki hoặc một giải pháp khác dựa trên HTML hay gì đó?

Có ai biết nếu có một cách để làm điều này, hoặc nếu nó chắc chắn là không thể?


Lưu ý: Có một số ý kiến khá hữu ích cho thấy phương pháp thay thế để thực hiện điều này trên github isuses trang ở đây: github.com/github/markup/issues/411#issuecomment-176907678
Chris Beck

Câu trả lời:


29

Các tài liệu cho GitHub Flavored Markdown không đề cập đến spoilers, vì vậy tôi nghi ngờ nó không được hỗ trợ. Nó chắc chắn không phải là một phần của thông số Markdown ban đầu .


Vâng ... Tôi đang xem trang này, nơi nó liệt kê tất cả các định dạng đánh dấu khác nhau mà họ hỗ trợ. (Có vẻ như họ cũng hỗ trợ chúng trong trình biên tập trang wiki.) Tôi đã xem qua tài liệu của từng tài liệu một cách ngắn gọn, tài liệu tôi không chắc là 'đầu tiên', những tài liệu khác trông không quá hứa hẹn nhưng có lẽ tôi đã bỏ lỡ điều gì đó. .. atm Tôi có xu hướng nghĩ rằng bạn đúng. github.com/github/markup Lựa chọn tốt nhất có thể là thực hiện việc đó trên trang 'github pages' được wiki liên kết đến hay gì đó?
Chris Beck,

142

GFM hỗ trợ một tập con HTML. Hiện tại, bạn có thể gói câu hỏi của mình bằng a <summary>và câu trả lời của bạn trong bất kỳ thẻ HTML chuẩn nào như <p>và gói toàn bộ nội dung trong <details>thẻ.

Vì vậy, nếu bạn làm điều này

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

Bạn nhận được điều này -> https://github.com/gaurav21r/Spoon-Knife/wiki/Read-More-Test

Hỗ trợ trình duyệt là một vấn đề.

Điều với wiki GitHUB là nó cho phép bạn viết văn bản ở các định dạng khác như AsciiDoc , RST , v.v. Probabaly cũng có giải pháp cho những định dạng đó. Đây là 2 định dạng có nhiều tính năng phong phú hơn Markdown.


74

Dựa trên câu trả lời của Gauravvấn đề GH này, đây là một cách để sử dụng định dạng nâng cao bên trong <details>thẻ trên GitHub :

Lưu ý: yêu cầu câu trả lời gốc từ năm 2016 <p>, từ năm 2017 yêu cầu đó là một dòng trống sau </summary>(tức là trước nội dung mở rộng). Ở đâu đó từ trước đến năm 2019, đánh dấu <summary>cũng không hoạt động nữa. Bạn có thể thấy nó khá lỏng lẻo vì đây là một cách hack / giải pháp thay thế, không phải là một tính năng / trường hợp sử dụng được hỗ trợ. Cũng xin lưu ý rằng các bình luận về vấn đề / PR hỗ trợ định dạng khác với Wiki (ví dụ: gạch dưới tháng 4 năm 2020 tóm lại chỉ hoạt động trên Wiki, không hoạt động trên các vấn đề).

<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>

Hiện tại, nó hiển thị như sau với các phần dự kiến ​​có thể mở rộng và thu gọn:


Trạng thái ban đầu

nhập mô tả hình ảnh ở đây


Nhấp vào tóm tắt

nhập mô tả hình ảnh ở đây


Nhấp vào tóm tắt lồng nhau

nhập mô tả hình ảnh ở đây


8
Mỗi bình luận GitHub này , hãy chắc chắn rằng có một ranh giới giữa sự <p>```. Nếu không, kỹ thuật này sẽ không hoạt động.
Benjamin

Bất kỳ ý tưởng làm thế nào để có được một dòng mới sau này? Khi tôi thử kỹ thuật này, nó bị kẹt vào đoạn tiếp theo. (Ý tôi là không thêm thẻ <br/>)
Apollys hỗ trợ Monica

Khi tôi sao chép mã câu trả lời chính xác của bạn, nó không hiển thị bất kỳ định dạng nào. Vì vậy, có gì đó không ổn ở đây
phil294

1
@ phil294 cảm ơn bạn đã cảnh báo, đã khắc phục. Đáng buồn thay, điều này đã thối rữa, vì vậy cần một số điều chỉnh khi GitHub phát triển. Thêm một ghi chú nữa, để chỉ ra điều này.
TWiStErRob


4

Nếu chỉnh sửa CSSlà một tùy chọn cho bạn, bạn có thể chỉ cần sử dụng

[](#spoiler "Spoiler Filled Text")

và sau đó sử dụng (nguyên chất) CSSđể tạo ra hình dạng chính xác.

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>

(Mơ hồ lấy cảm hứng từ mã này )


1

Một giải pháp khác với các thẻ chi tiết / tóm tắt, nhưng cũng sử dụng html gốc là sử dụng khoảng cách với tiêu đề. Tôi đã làm một cái gì đó như thế này gần đây trong chế độ tổ chức.

văn bản thô

kết quả

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.