Zmiana obecnej składni na forum (oraz w mikroblogach) na markdown

3

Obecna składnia to wynik wieloletniej mieszanki stylu a'la bbcode oraz składni znanej z wiki.

Dyskutowaliśmy o tym w gronie moderatorów i padł pomysł użycia znanej składni markdown. Oczywiście nie obyłoby się bez trudności gdyż należałoby napisać mechanizm konwersji starej składni na forum, mikroblogach, komentarzach czy też artykułach. Myślę jednak że to dobry krok w kierunku usystematyzowania składni.

Przy okazji będziemy chcieli zaprosić Was do współpracy w stworzeniu takiego mechanizmu oraz - rozwoju 4programmers.net na zasadach open source. Oczywiście znajdą się jakieś nagrody w zamian za pomoc :) Ale o szczegółach nieco później.

0
napisał(a):

Przy okazji będziemy chcieli zaprosić Was do współpracy w stworzeniu takiego mechanizmu oraz - rozwoju 4programmers.net na zasadach open source. Oczywiście znajdą się jakieś nagrody w zamian za pomoc :) Ale o szczegółach nieco później.

fajne tylko przeczuwam, że to może być PHP ...

0

@karolinaa konwerter chyba musi zadziałać tylko raz więc może być i w brainfucku albo lolcodzie ;)

2

Nie wczytywałem się jeszcze, ale tak mi się w oczy rzucił wpis Unknown:

Ciekawy, nowy język (zbliżony do Markdown) służący do tworzenia przejrzystych dokumentów tekstowych
http://bit.ly/1Rjy7fd
Obsługuje wszystko to co Markdown + Diagramy, Dodatkowe style CSS, tabele, automatyczne kolorowanie kodów źródłowych i wiele innych

0

Mam... wątpliwości...

na pewno znajdą się rzeczy, które są teraz a których nie będzie w Markdown, trzeba będzie sztukować, i historia zacznie się na nowo ;-)

0

Markdown będzie jednym z parserów. Ponieważ musimy parsować jeszcze inne rzeczy na nasze potrzeby. Np.:

  • HTMLPurifier do usuwania niedozwolonych znaków HTML
  • Geshi do kolorowania składni
  • Emoticony
  • TeX
  • Cenzurowanie wulgaryzmów
  • znacznik <quote> używany na forum. Chyba że macie pomysły jak/czym można go zastąpić?
  • Zamiana @login na działający link do profilu
  • Parsowanie linków wewnętrznych: wyświetlanie tytułu strony. Tzn.: http://4programmers.net/Blog => Blog
0

Powracając do tematu: parser obecnie składa się z wielu komponentów (klas) które realizują różne działania (np. parsowanie HTML, czy markdown, emotikon itp). Dobrze by było żeby to działało na podobnej zasadzie ;) Czyli np.:

$parser = new Parser();
$parser->attach(new HTMLPurifier);
$parser->attach(new Geshi);
// ...
$parser->parse('Lorem ipsum');

Natomiast sama metoda parse():

public function parse($text)
{
	$this->setText($text);

	foreach ($this->parsers as $parser) {
		$parser->parse($this);
	}
}

Coś w ten deseń. Jest to jakaś forma wzorca observer ;) Czy ktoś ma pomysł jaki wzorzec można zastosować w tym konkretnym zadaniu?

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