Dziwne parsowanie HTML na stronie głównej "Pomocy"

0

Problem

Strona główna "Pomocy" na 4p zawiera kod HTML. Wygląda on tak:

<div class="row">
<div class="col-sm-6 p-3">
	<h3>[[Pomoc/Na początek]]</h3>

	<ul>
		<li>[[O nas|Kim jesteśmy, czyli gdzie ja trafiłem?]]</li>
  ...

Do mojej ostatniej wizyty tam (kilka dni temu) parsowanie HTML działało i strona główna "Pomocy" wyglądała w porządku. Natomiast dziś wygląda ona tak:

screenshot-20220208121124.png

Tak samo, gdy otwieram zakładkę "Podgląd" w formularzu edycji artykułu.

Metodyka testowania

  • Przeglądarka: Chromium 90.0.4430.212 (Developer Build)
1

Do tego poucinane fragmenty i wyjścia za rodzica.
screenshot-20220208122421.png

To chyba to samo co w stopce? Parser generuje HTML, a ten leci jeszcze przez jakiś kod, który zamienia < na &lt; etc?

0

Wygląda na to, że poza stroną główną w artykułach "Pomocy" HTML jest parsowany w porządku; na przykład w artykule https://4programmers.net/Pomoc/R%C3%B3%C5%BCne/Formatowanie_tre%C5%9Bci_i_edytor_w_Serwisie:

screenshot-20220208124509.png


UPDATE

Oczywiście niekoniecznie to ma sens, co napisałem, bo na tej stronie akurat nie ma żadnego HTML (sama składnia Markdown)… Ale HTML rzeczywiście jest parsowany dobrze na stronie https://4programmers.net/Pomoc/R%C3%B3%C5%BCne Kod:

<b>Popularne problemy</b>
<ul>
    <li>[[Pomoc/Różne/Moja treść została usunięta]]</li>
</ul>

<b>Funkcjonalności</b>
<ul>
    <li>[[Pomoc/Różne/Strona główna Serwisu]]</li>
    <li>[[Pomoc/Różne/Menu główne Serwisu]]</li>
    <li>[[Pomoc/Różne/Wyszukiwanie w Serwisie]]</li>
    <li>[[Pomoc/Różne/Tagi w Serwisie]]</li>
    <li>[[Pomoc/Różne/Wspominanie użytkowników w Serwisie]]</li>
    <li>[[Pomoc/Różne/Zgłaszanie treści w Serwisie]]</li>
    <li>[[Pomoc/Różne/Formatowanie treści i edytor w Serwisie]]</li>
    <li>[[Pomoc/Różne/Inne]]</li>
    <li>[[Pomoc/Różne/Konwencje Pomocy Serwisu|Konwencje "Pomocy" Serwisu]]</li>
</ul>

I zrzut ekranu:

screenshot-20220208171848.png

2

Kurcze i tutaj jest spory problem. Okazuje się że parser pomija elementy, które znajdują się wewnątrz znaczników blokowych HTML, a do takich należy znacznik <div>. Wewnątrz innych znaczników - np. <b> działa ok.

Pewnie ma to związek że markdown - jak wynika ze specyfikacji - nie jest obsługiwany w blokowych znacznikach HTML. Przykład wewnątrz znacznika <div>:

**test**

Parsowanie linków w kompendium jest napisane obecnie jako rozszerzenie biblioteki markdown. :(

1

@Adam Boduch: Działa Vue w tych szablonach twig?

2

Nie, tam jest stary kod. Nie ma tam Vue.

0

Problem występuje na forum jak się doda np. wideo z yutuba, na końcu zostaje znacznik <p>. W moim podpisie nie ma teraz znaku nowej linii tylko jest <br>.

0
Adam Boduch napisał(a):

Kurcze i tutaj jest spory problem. Okazuje się że parser pomija elementy, które znajdują się wewnątrz znaczników blokowych HTML, a do takich należy znacznik <div>. Wewnątrz innych znaczników - np. <b> działa ok.

Pewnie ma to związek że markdown - jak wynika ze specyfikacji - nie jest obsługiwany w blokowych znacznikach HTML. Przykład wewnątrz znacznika <div>:

**test**

Jeśli HTML nie może być już parsowany w "Pomocy" (ani ogólnie w Kompendium), to da się to przeżyć. Mogę zedytować "Pomoc" tak, by nie było HTML, a jedynie Markdown.

Parsowanie linków w kompendium jest napisane obecnie jako rozszerzenie biblioteki markdown. :(

OK. Ale w takim razie co z tym rozszerzeniem, że nie działa dla składni [[]]?

1
Silv napisał(a):

Jeśli HTML nie może być już parsowany w "Pomocy" (ani ogólnie w Kompendium), to da się to przeżyć. Mogę zedytować "Pomoc" tak, by nie było HTML, a jedynie Markdown.

No tak byłoby chyba najlepiej. Z drugiej strony szkoda trochę bo HTML-em jednak mieliśmy większe pore manewru jeżeli chodzi o stylizowanie poszczególnych podstron.

Doprecyzuje tylko: to nie tak, że HTML nie jest wspierany na stronie pomocy. Jest. Tutaj nic się nie zmieniło. Chodzi tylko że parsowanie markdown nie działa wewnątrz znaczników HTML.

0
Adam Boduch napisał(a):
Silv napisał(a):

Jeśli HTML nie może być już parsowany w "Pomocy" (ani ogólnie w Kompendium), to da się to przeżyć. Mogę zedytować "Pomoc" tak, by nie było HTML, a jedynie Markdown.

No tak byłoby chyba najlepiej. Z drugiej strony szkoda trochę bo HTML-em jednak mieliśmy większe pore manewru jeżeli chodzi o stylizowanie poszczególnych podstron.

Nie jest tego tak wiele. Obecnie jedynie 8 artykułów zawiera HTML: strona główna "Pomocy" oraz podstrony poszczególnych, hm, "grup funkcjonalności". W zasadzie nie wiem, czy te podstrony w ogóle mają znaczenie dla użytkownika, więc zmiana ich wyglądu nie powinna spowodować żadnych problemów. Co do strony głównej, głównie straci się układ kolumnowy. Może to być problem dla użytkowników z szerszymi ekranami, będą musieli przewijać stronę w dół, a i estetycznie pewnie będzie gorzej, dużo pustego miejsca.

Doprecyzuje tylko: to nie tak, że HTML nie jest wspierany na stronie pomocy. Jest. Tutaj nic się nie zmieniło. Chodzi tylko że parsowanie markdown nie działa wewnątrz znaczników HTML.

OK, mój błąd. Ale w takim razie nie rozumiem. Na stronie głównej "Pomocy" nie ma żadnego Markdownu, jest jedynie HTML.


UPDATE Tymczasowo trochę poprawiłem stronę główną "Pomocy". Wygląda na to, że tylko białe znaki z początku linii powodują problemy (poza linkami oczywiście), i to tylko, gdy są wewnątrz elementów HTML. Może normalnie są one parsowane przez parser Markdownu, a skoro tutaj nie działa on w elementach HTML, to pokazuje się działanie jakiegoś innego, późniejszego parsera?

0

Niestety chyba jesteśmy w kropce, ponieważ z tego co widzę, to tam w Pomocy w HTML mamy dwie kolumny, a w Markdown nie ma czegoś takiego jak "kolumna". Markdown z natury jest do formatowania tekstu, a nie layoutów. Dlatego też nie wydaje mi się żeby "włączanie markdownu w elementach blokowych w HTML" to był dobry pomysł.

Moje propozycje:

  • Przerobić stronę /Pomoc na Markdown, tak żeby nie miała HTML'a, i tym samym dwóch kolumn (pomysł moim zdaniem 6/10)
  • Zrobić, że /Pomoc była automatycznie generowana w widoku *.twig albo Vue, po prostu wyświetlała by wszystkie podstrony automatycznie, tak żeby Silv nie musiałby dopisywać ich ręcznie (pomysł moim zdaniem 8/10)
  • Nie używać Markdownu w /Pomoc tylko całość napisać w HTML (pomysł 5/10 moim zdaniem)
0
TomRiddle napisał(a):

Moje propozycje:

  • Przerobić stronę /Pomoc na Markdown, tak żeby nie miała HTML'a, i tym samym dwóch kolumn (pomysł moim zdaniem 6/10)
  • (…)
  • Nie używać Markdownu w /Pomoc tylko całość napisać w HTML (pomysł 5/10 moim zdaniem)

Czy to nie to samo?


UPDATE

Silv napisał(a):
Adam Boduch napisał(a):

Doprecyzuje tylko: to nie tak, że HTML nie jest wspierany na stronie pomocy. Jest. Tutaj nic się nie zmieniło. Chodzi tylko że parsowanie markdown nie działa wewnątrz znaczników HTML.

OK, mój błąd. Ale w takim razie nie rozumiem. Na stronie głównej "Pomocy" nie ma żadnego Markdownu, jest jedynie HTML.

Chyba zaczynam rozumieć. Próbowałem właśnie zrobić tabelkę według rady @Marooned i okazuje się, że po usunięciu HTML składnia [[]] jest parsowana. W takim razie, @Adam Boduch, masz chyba na myśli albo to, że składnia [[]] jest parsowana jako składnia Markdown, albo że jej parsowanie również nie działa w HTML.

1
Silv napisał(a):
TomRiddle napisał(a):

Moje propozycje:

  • Przerobić stronę /Pomoc na Markdown, tak żeby nie miała HTML'a, i tym samym dwóch kolumn (pomysł moim zdaniem 6/10)
  • (…)
  • Nie używać Markdownu w /Pomoc tylko całość napisać w HTML (pomysł 5/10 moim zdaniem)

Czy to nie to samo?

Nie.

W pierwszym chodziło o to żeby strona była cała w Markdown i 0 HTML'a, w drugim żeby była cała w HTML i 0 Markdown.

0

OK, nie zauważyłem. :)


UPDATE Zrobiłem przed chwilą na stronie głównej "Pomocy" to, co zrobić powinenem był na samym początku – usunąłem HTML, zastosowałem sam Markdown. "Pomoc" jest teraz używalna.


UPDATE 2 Zmieniłem wszystkie strony dotyczące poszczególnych grup funkcjonalności. Teraz w zasadzie cała "Pomoc" korzysta z Markdownu, a nie z HTML. Jeśli znajdę gdzieś jeszcze jakieś pozostałości HTML w starszych artykułach, zmienię.

1 użytkowników online, w tym zalogowanych: 0, gości: 1