Чи можу я об'єднати рядки таблиці в розмітку?


83

Чи є спосіб створити об’єднані рядки у стовпці таблиці у файлах розмітки, таких як файли ReadMe.md?

Щось на зразок цього:

таблиця


Я боюся від ні. Markdown - це простий редактор HTML / тексту. У вас не так багато функцій ... 😞
H. Pauwelyn

@ H.Pauwelyn, чи знаєте ви альтернативне рішення? Чи можу я вбудувати в нього файл Excel?
dev-masih

Ні, як я вже казав, це проста справа. Я пропоную скористатися блоком коду. Він починається і закінчується трьома тиковими кліками xor кожен рядок починається з для пробілів.
H. Pauwelyn

може спробувати необроблені таблиці HTML у вашому файлі розмітки?
mb21

1
@ dev-masih, відповідаючи на ваше запитання про альтернативне рішення. Ви можете використовувати AsciiDoc замість Markdown. GitHub зараз це підтримує. Ваша таблиця в AsciiDoc синтаксис: [cols="^,^,^"] \n|=== \n|Layer1 |Layer2 |Layer3 \n \n.4+.^|L1 Name .2+.^|L2 Name A |L3 Name A \n|L3 Name B \n.2+.^|L2 Name B |L3 Name C \n|L3 Name D \n \n|===. Замініть все \nна роздільник рядків.
Пітер

Відповіді:


68

Ні, це неможливо з використанням смаку GitHub Markdown. Як пояснює специфікація (курсив додано):

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

Звичайно, ви завжди можете повернутися до вихідного HTML. Насправді GitHub включає атрибут rowspancolspan) у свій білий список .

<table>
    <thead>
        <tr>
            <th>Layer 1</th>
            <th>Layer 2</th>
            <th>Layer 3</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td rowspan=4>L1 Name</td>
            <td rowspan=2>L2 Name A</td>
            <td>L3 Name A</td>
        </tr>
        <tr>
            <td>L3 Name B</td>
        </tr>
        <tr>
            <td rowspan=2>L2 Name B</td>
            <td>L3 Name C</td>
        </tr>
        <tr>
            <td>L3 Name D</td>
        </tr>
    </tbody>
</table>

Спробуйте самі на https://jsfiddle.net/7h89y55r/


це ідеально, а результат - саме те, що я хочу
dev-masih

1
Використання сирого HTML - це компроміс. Він більш гнучкий, але ви більше не можете використовувати розмітку в тегах HTML. <table><tr><td>This is not emphasized text: *the asterisks* will be rendered literally.</td></tr></table>
chharvey

Ідеально! Ось також генератор таблиць HTML, щоб легко зробити таблицю: tablesgenerator.com/html_tables
np8

20

Стандартна загальна марка не підтримує таблиці та не посилається на будь-які конкретні розширення таблиць або не рекомендує їх ( останнє постійне посилання на редакцію станом на 2018-03 ). Ваше запитання не стосується спеціально присмакованого Github Markdown (GFM), але GFM базується на загальному знаку з розширенням таблиці, яке цього не підтримує.

MultiMarkdown принаймні з v5 підтримує такі типи таблиць ( постійне посилання на документи ) так само, як це робить Майкл Фортін для PHP Markdown Extra, перетворюючи:

|             |          Grouping           ||
First Header  | Second Header | Third Header |
 ------------ | :-----------: | -----------: |
Content       |          *Long Cell*        ||
Content       |   **Cell**    |         Cell |

New section   |     More      |         Data |
And more      | With an escaped '\|'         ||  
[Prototype table]

в Таблиця

Я зазвичай використовую markdown-it (вбудований VSCode markdown та мій блог Ghost), який підтримує лише таблиці зі смаком Github, але хтось створив для них розширення ( markdown-it-multimd-table ). Зрештою, у вас є варіанти.


5

Якщо ви використовуєте Jekyll, для підтримки вирівнювання комірок таблиці , об’єднання тощо, я думаю, що наведене нижче може допомогти вам зробити це простіше.

jekyll-космічний корабель - plu плагін Jekyll для забезпечення потужних опор для таблиці, mathjax, plantuml, русалки, відео, YouTube, смайлів, vimeo, dailymotion тощо

https://github.com/jeffreytse/jekyll-spaceship

На даний момент пропонуються такі розширені функції:

  • Клітини, що охоплюють кілька стовпців
  • Клітини, що охоплюють кілька рядків
  • Текст клітинок вирівнюється окремо
  • Заголовок таблиці не потрібен
  • Згруповані рядки заголовка таблиці або рядки даних

Націнка:

код таблиці

Код вище буде проаналізовано як:

таблиця html


На жаль, це стає надзвичайно нечитабельним :(
Маріуш Ямро,

Це розширений метод і намагайтеся тримати його читабельним. Звичайно, ви також можете використовувати html для написання таблиці, це залежить від ваших уподобань та вибору плюсів і мінусів цього розширення.
JT

3

Я відповідав на запитання OP у коментарях щодо альтернативного рішення, але коментар стиснувся до одного рядка. Додавши його тут як відповідь, щоб правильно показати форматування.

Ви можете використовувати AsciiDoc замість Markdown. GitHub зараз це підтримує. Просто використовуйте README.adocзамість README.mdВашої таблиці в синтаксисі AsciiDoc:

[cols="^.^,^.^,^.^"]
|===
|Layer1 |Layer2 |Layer3

.4+|L1 Name .2+|L2 Name A |L3 Name A
|L3 Name B
.2+|L2 Name B |L3 Name C
|L3 Name D
|===

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