Nowa wersja edytora postów i microblogów na 4programmers.net

8

Dyskusja rozpoczęła się od tego wpisu: Czcionka monospace w widoku edycji artykułów w Kompendium

Zauważyłem że dla niektórych równie ważna jest czcionka "ludzka", jak dla innych czcionka monospace. Stwierdziełem, że nie ma powodu żeby obie strony nie były zadowolone, więc przystąpiłem do napisania nowej wersji edytora. Aktualna wersja to 1.0.39 i można z niej skorzystać i testować tutaj: https://danon.github.io/4programmers/ Aktualne feature'y to: kolorowanie składni markdown, kolorowanie składni kilku języków we fragmentach kodu, popularne skróty klawiszowe (shift do indentu kodu, powiększenia zaznaczenia jak w IDE od JetBrains, Alt+Up/Alt+Down do przesuwania linii).

Chciałem opisać progress edytora na mikroblogach; ponieważ wiem że 99% projektów umiera, ponieważ ludzie myślą że umarł. Poświęciłem już około 30h sumarycznie na ten edytorek; fajnie byłoby dodać brakujące feature'y i zacząć używać na 4programmers.net.

Proszę zaangażowanych o udzielanie się w tym poście, sugestie, jak ktoś znajdzie buga to proszę pisać tutaj; deploy'e są już zautomatyzowane, więc jeśli ktoś chce poprawkę nawet eksperymentalną to mogę wrzucić.

Fajnie byłoby usłyszeć feedback od większej części użytkowników, być może @Adam Boduch, @cerrato, @somekind, @Marooned, @no_solution_found i innych. Im wcześniej dostanę info że trzeba coś poprawić tym bardziej Agile ;D

Na stronie demo jest opisany changelog, ale może przytoczę go tutaj:

Do poprawienia:

  • Edycja toggle, kiedy zaznaczone jest tylko część elementu
  • Dodać sugestie od @somekind, dotyczącej wklejania linków

ChangeLog:

  • Dodano kolorowanie składni dla BrainFuck - "dzięki" @Marooned
  • Poprawiono buga kiedy Ctrl+Z nie cofał zmian (tzn cofał, ale na aktualny stan) - dzięki @no_solution_found
  • Dodano kolorowanie składni Go - dzięki @no_solution_found
  • Dodano kolorowanie składni YAML
  • Dodano kolorowanie składni JSON
  • Poprawiono buga z niepoprawnym lazy-loadingiem dialektów SQL - dzięki @Panczo
  • Dodano przesuwanie linii w górę i dół Alt+Up oraz Alt+Down
  • Dodano powiększanie zaznaczenia; jak w IDE od JetBrains (Ctrl+W, expand selection)
  • Dodano lazy-loading języków (tzn. język zostanie załadowany dopiero jak zostanie użyty w treści)
  • Dodano jednolity theme dla wszystkich języków (np. keyword zawsze będzie miał taki sam kolor).
  • Dodano kolorowanie składni dla wielu języków (extension CodeMirror), głównie żeby @furious_programming przestał męczyć.
  • Poprawiono buga z wykrywaniem blokow kodu podczas wycinania i wklejania.
  • Poprawiono buga z zaznaczeniem, które "zostawało" w tyle
  • Wciśnięcie Enter będąc w liście, automatycznie dodaje nowy element. Działa dla uporządkowanych i nieuporządkowanych list
  • Dodano debugger elementów markdownu (JSON z typami wartości)
  • Dodano kolorowanie składni
  • Poprawiono wykrywanie fragmentów kodu inline oraz block
  • Zmiana koloru zaznaczenia, bardziej pod 4programmers.net
  • Dodano instrukcje korzystania z edytora
  • Poprawiono wykrywanie kodu zarówno poprzez ``` jak i ~~~
  • Edycja schematu kolorów, żeby pasowała do 4programmers.net
  • Poprawiono błędne wklejanie linku
  • Dodatko skróty klawiszowe do funkcji
  • Poprawiono błędne wklejanie obrazka
3
TomRiddle napisał(a):

Aktualna wersja to 1.0.39 i można z niej skorzystać i testować tutaj: https://danon.github.io/4programmers/

Pod FF52 nie działa. Jeśli będzie wdrażana, sugeruję zachować możliwość wyboru edytora.

6
Freja Draco napisał(a):
TomRiddle napisał(a):

Aktualna wersja to 1.0.39 i można z niej skorzystać i testować tutaj: https://danon.github.io/4programmers/

Pod FF52 nie działa.

A "nie działa" to znaczy...?

Bo na taką odpowiedź to mam tylko "u mnie działa".

2

+1 za wątek, bo zaglądając na bloga raz na miesiąc można nie trafić na ciekawe info
Testy na FF92 (najnowszy - Freja, 52 to nie jakiś archaizm? Czyżby ostatni z XUL? To by miało sens, też mi brakuje gazyliona rozszerzeń)

  1. Pewnie nigdy nie skorzystam z tego ctrl+q, ale skoro już jest, to umieść kursor na końcu linii z <?= $xx ?>, pierwsze ctrl+q zaznacza wszystko, drugie już tylko dwie pierwsze linie.
  2. wykrywanie języka zaraz po 3 backtickach (przy okazji, nie ma escape char by wpisać backtick tutaj :D) rozumiem, że jest robione szukaniem ciągu? jsphp, jphps i phpjs wydaje się wykrywać język php
  3. wszelkie skróty ctrl+ są ryzykowne - np, wg instrukcji ctrl+b powinno pogrubiać, a na Firefoksie pokazuje sidebar z zakładkami, ctrl+h sidebar z historią, ctrl+i informacje o stronie, etc, żaden z nich nic nie robi w edytorze wbrew instrukcji - chyba bym nie ingerował w skróty systemowe (choć tu rzeczywiście zarzut do samej przeglądarki, że tak popularnych skrótów nie zostawiła wolnych)
  4. ctrl+q jest wspomniany dwa razy, raz ma robić zaznaczenie, raz cytat - sztuczna inteligencja ma się domyślić z kontekstu? ;-)
  5. ikony w toolbarze nie działają - zakładam, że to mockup

To tak na szybko

2

a będzie vim mode? :D

2
TomRiddle napisał(a):
Freja Draco napisał(a):
TomRiddle napisał(a):

Aktualna wersja to 1.0.39 i można z niej skorzystać i testować tutaj: https://danon.github.io/4programmers/

Pod FF52 nie działa.

A "nie działa" to znaczy...?

Bo na taką odpowiedź to mam tylko "u mnie działa".

17:05:55.227 SyntaxError: invalid identity escape in regular expression  main.1693684dbb058c234976.js:1200:18
	["./node_modules/@lezer/markdown/dist/index.js"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:488:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./node_modules/@codemirror/lang-markdown/dist/index.js?:11:73
	["./node_modules/@codemirror/lang-markdown/dist/index.js"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:308:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./src/components/Editor/markdown.js?:2:83
	["./src/components/Editor/markdown.js"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:691:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./src/components/Editor/Editor.vue:5:70
	["./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js?!./src/components/Editor/Editor.vue?vue&type=script&lang=js&"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:512:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./src/components/Editor/Editor.vue?:2:189
	["./src/components/Editor/Editor.vue?vue&type=script&lang=js&"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:631:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./src/components/Editor/Editor.vue?:3:94
	["./src/components/Editor/Editor.vue"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:619:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> webpack:///./www/app.js?:5:91
	["./www/app.js"] https://danon.github.io/4programmers/main.1693684dbb058c234976.js:715:1
	__webpack_require__ https://danon.github.io/4programmers/main.1693684dbb058c234976.js:64:12
	<anonimowa> https://danon.github.io/4programmers/main.1693684dbb058c234976.js:199:18
	<anonimowa> https://danon.github.io/4programmers/main.1693684dbb058c234976.js:1:11

@Marooned

Freja, 52 to nie jakiś archaizm? Czyżby ostatni z XUL? To by miało sens, też mi brakuje gazyliona rozszerzeń)

Ostatni z XUL był chyba 55, ale tylko wersję 52 później wspierano.
Ze statystyk wynika, że 1/5 użytkowników FF nadal siedzi na tej wersji.

0

Dodano powiększanie zaznaczenia; jak w IDE od JetBrains (Ctrl+W, expand selection)

<hehehehe> a gdyby to było konfigurowalne? </hehehehe>
0
Marooned napisał(a):

Pewnie nigdy nie skorzystam z tego ctrl+q, ale skoro już jest, to umieść kursor na końcu linii z <?= $xx ?>, pierwsze ctrl+q zaznacza wszystko, drugie już tylko dwie pierwsze linie.

To ma więcej sensu w kodzie wielolinijkowym. W takim inline, to faktycznie nie ma sensu. Proponujesz żeby to jakoś zablokować?

wykrywanie języka zaraz po 3 backtickach (przy okazji, nie ma escape char by wpisać backtick tutaj :D) rozumiem, że jest robione szukaniem ciągu?

Sorry, nie rozumiem o co chodzi? Mógłbyś wyjaśnić?

jsphp, jphps i phpjs wydaje się wykrywać język php

Wykrywanie języka działa tak: if (/php/.test(, potem if (/js/.test(, etc. Mogę dodać ^ oraz $ jeśli trzeba, lub jakoś to obejść.

wszelkie skróty ctrl+ są ryzykowne - np, wg instrukcji ctrl+b powinno pogrubiać, a na Firefoksie pokazuje sidebar z zakładkami, ctrl+h sidebar z historią, ctrl+i informacje o stronie, etc, żaden z nich nic nie robi w edytorze wbrew instrukcji - chyba bym nie ingerował w skróty systemowe (choć tu rzeczywiście zarzut do samej przeglądarki, że tak popularnych skrótów nie zostawiła wolnych)

No to sugerujesz żeby były z Alt? Czy żeby w ogóle nie było skrótów?

Faktycznie teraz skróty nie działają; coś zepsułem; ale u mnie normalnie skróty z edytora brały górę nad skrótami przeglądarki. Jak Ci się wydaje?

  1. ctrl+q jest wspomniany dwa razy, raz ma robić zaznaczenie, raz cytat - sztuczna inteligencja ma się domyślić z kontekstu? ;-)
  2. ikony w toolbarze nie działają - zakładam, że to mockup

No tak, trzeba to poprawić

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

Pewnie nigdy nie skorzystam z tego ctrl+q, ale skoro już jest, to umieść kursor na końcu linii z <?= $xx ?>, pierwsze ctrl+q zaznacza wszystko, drugie już tylko dwie pierwsze linie.

To ma więcej sensu w kodzie wielolinijkowym. W takim inline, to faktycznie nie ma sensu. Proponujesz żeby to jakoś zablokować?

Chodziło mi o to, że po kroku, gdzie mamy zaznaczone wszystko, kolejny ctrl+q zamiast "expand" zmniejsza zaznaczenie do losowych 2 pierwszych linii, taki mikro bug

jsphp, jphps i phpjs wydaje się wykrywać język php

Wykrywanie języka działa tak: if (/php/.test(, potem if (/js/.test(, etc. Mogę dodać ^ oraz $ jeśli trzeba, lub jakoś to obejść.

A no właśnie, czyli jak wspomniałem, szukanie ciągu, dlatego trololophpyeah wykryje php - ot, taka ciekawostka, ale chyba dodałbym ^php$ by nie było problemu, jeśli zajdzie potrzeba rozróżnienia kolorowania np. html vs html5 czy python vs python3 (w co wątpię, by miało sens i kiedykolwiek nastąpiło)

wszelkie skróty ctrl+ są ryzykowne - np, wg instrukcji ctrl+b powinno pogrubiać, a na Firefoksie pokazuje sidebar z zakładkami, ctrl+h sidebar z historią, ctrl+i informacje o stronie, etc, żaden z nich nic nie robi w edytorze wbrew instrukcji - chyba bym nie ingerował w skróty systemowe (choć tu rzeczywiście zarzut do samej przeglądarki, że tak popularnych skrótów nie zostawiła wolnych)

No to sugerujesz żeby były z Alt? Czy żeby w ogóle nie było skrótów?

Nie wiem. Z jednej strony ctrl+b fajnie, jakby dało bold, ale z drugiej jak mi jakaś strona kradnie ctrl+f by odpalać swoją własną wyszukiwarkę, która oczywiście krzywo działa, to mnie nosi. Ale może ma sens, by te skróty działały na składnie jeśli kursor jest w edytorze i tylko wtedy.

0

Nie koloruje pascal-a

0
Paweł Dmitruk napisał(a):

Nie koloruje pascal-a

Może od razu napiszę:

Jako że nie jestem jasnowidzem, i nie mam nieskończonej ilości czasu; to nie dodałem kolorowania składni dla nieskończonej liczby języków (tylko do tych które znam).

Jeśli jakiegoś nie dodałem, a jest istotny to po prostu poproś o dodanie.

4

Wydaje mi się, że czas na dodawanie kolejnego kolorowania kolejnych języków można zostawić na koniec (zakładam, że jest proste, jak podłączenie rozszerzenia albo dodanie listy słów kluczowych?). Skorzystajmy z wigoru @TomRiddle by udało się dopieścić wszystko inne, a kolorowanie zostawmy na koniec. Nie jest niezbędne dla samego edytora prawdę mówiąc.

5

@TomRiddle: udało się Prisma zintegrować z CodeMirror?

Myślę że większa zabawa może być ze zintegrowaniem tego z istniejącym komponentami, które już istnieją takimi jak: podpowiadanie nazw użytkowników czy wklejanie obrazów ze schowka (obym się mylił). Zgadzam się z @Marooned że kolorowanie składni nie jest jakoś bardzo istotne. W końcu początkowo chodziło tylko o to, aby kod był monospace. Ja bym proponował zintegrować to z coyote i wystawić na serwerze deweloperskim to dalszych testów.

0
Adam Boduch napisał(a):

@TomRiddle: udało się Prisma zintegrować z CodeMirror?

Używam innego kolorowania składni. Zależy Ci bardzo na prism? Chodzi o to że teraz, np keyword w każdym języku ma taki sam kolor, zmienna w każdym języku taki sam, propertyy w każdym języku taki sam. Nie wiem jak jest w prism.

Myślę że większa zabawa może być ze zintegrowaniem tego z istniejącym komponentami, które już istnieją takimi jak: podpowiadanie nazw użytkowników czy wklejanie obrazów ze schowka (obym się mylił).

Teraz pracuję nad skrótami (bold, italics, heading) oraz wklejaniem ob************razków i **linków. Poźniej autocomplete i możemy wrzucać.

PS: @Adam Boduch Jak bardzo istotne są te pśtyczki do przełącznia stylów?
screenshot-20211005133632.png

1

Dobrze by było nie dublować kolejnej biblioteki do kolorowania składni. I tak już sporo kodu JS mamy ;) Ale jak mówię - kolorowanie na tę chwilę nie jest istotne.

Jakie "pśtyczki" do przełączania stylów? Nie kumam.

0
Marooned napisał(a):

Super istotne. Skróty mogą nie działać (przeglądarka może mieć pierwszeństwo), można ich nie pamiętać, może nie być standardowego skrótu do innych funkcji (link, lista etc). Rzekłbym, że może nie być skrótów, ale toolbar musi działać.

@Marooned: A to mi chodziło nie o to czy te akcje mają być uruchamiane skrótem czy pśtyczkiem; tylko czy w ogóle mają być te akcje.

Ale już kumam że muszą być.

Gdzie będzie najlepsze miejsce żeby informować was o postępach?

1

@Adam Boduch: Może warto by zrobić oddzielne repo na githubie na edytor? adam-boduch/v-post albo adam-boduch/v-editor, i tam byłby komponent do Vue?

Można by wtedy go rozwijać niezależnie od 4p, dodać wersjonowanie, Issue, Projekty; i deployować na 4p.dev i 4p.net jak się podbije wersję?

PS: No albo można po prostu dodać do coyote'a?

0

Z tymi skrótami klawiszowaymi coś nie bardzo działa, ja używam Edge (Wersja 94.0.992.38 (Oficjalna kompilacja) (wersja 64-bitowa)), ale dla testów odpaliłem chrome (Wersja 94.0.4606.71 (Oficjalna wersja) (64-bitowa))

Sktót Edge Chrome
Ctrl+B Wstawia gwiazdki MD i pogrubia, ponowne użycie powiela gwiazdki MD Wstawia gwiazdki MD i pogrubia, ponowne użycie powiela gwiazdki MD
Ctrl+I Nie działa Nie działa
Ctrl+q Nie działa Nie działa
Ctrl+h Otwiera historie Otwiera historie
Ctrl+l Przechodzi do paska adresu Przechodzi do paska adresu
Ctrl+p Nie działa Nie działa
  • nie działa tzn. po wciśnieciu kombinacji nic się nie dzieje
1

Nowa wersja, 1.0.42 - poprawiłem pogrubienie.

Aktualne przełączniki formatowania tekstu na 4programmers.net 𝐁, 𝒊, etc. działają bardzo "prosto". To znaczy po prostu wklejają ** dwie gwiazdki po lewej i po prawej stronie zaznaczenia, nie ważne czy coś tam faktycznie jest czy nie jest. Przez to może być tak, że użycie skrótu właściwie psuje markup, albo zmienia go niezgodnie z merytoryką dokumentu. Np w kodzie ** nie oznaczają emphasis, tylko faktycznie wkładają dwie gwiazdki.

Dlatego w moim edytorze jest parser, który umie skumać co jest czym, i pogrubienie działa poprawnie zawsze:

  • Ctrl+B oraz kliknięcie ikonki 𝐁 działa tak samo: uruchamia akcję "bold", czyli "pogrub".
  • Jeśli nie ma żadnego zaznaczenia (jest po prostu kursor bez zaznaczenia), akcja nic nie robi.
  • Jeśli zaznaczony tekst jest po prostu paragrafem (tekstem), zostaje pogrubiony (nie ważne czy ma jedną linijkę czy wiele).
  • Corner case'y - tekst nie zostanie pogrubiony, jeśli
    • Nie można pogrubić tekstu, który już jest pogrubiony.
    • Jeśli zaznaczenie "przecina" markup:
      screenshot-20211006134828.png
    • Jeśli zaznaczenie jest w kodzie, lub przecina kod:
      screenshot-20211006134911.png
      screenshot-20211006134925.png
    • Jeśli zaznaczenie jest w nagłówku lub w cytacie:
      screenshot-20211006135025.png
      screenshot-20211006135044.png
    • Jeśli jest w linku lub przecina link:
      screenshot-20211006135148.png
  • Dozwolone pogrubienia - można zaznaczyć tekst, jeśli
    • Zaznaczymy tekst wenątrz pochylenia
      screenshot-20211006135255.png
    • Ale nie jeśli zaznaczenie przecina markup
      screenshot-20211006135331.png
    • Zaznaczenie elementu listy
      screenshot-20211006135411.png
    • Ale nie jeśli przecina markup
      screenshot-20211006135437.png

Na razie to jeszcze nie działa, ale chciałbym też wprowadzić takie dwie poprawki:

  • Zmiana welcome `code` bar na **welcome `code` bar**, na razie to jest interpretowane jako "przecinanie" markdownu, i nie jest dozwolone
  • To samo z welcome *italics* bar na **welcome *italics* bar**, z podobnych powodów.

Ale to na później.

Wszystkie akcje chciałbym wprowadzić w takim klimacie, to znaczy działają tylko w odpowiednich kontekstach. Jeśli ktoś chce żeby kliknięcie "bold" na pogrubionym tekście cofało bold, proszę o napisanie, bo to sporo pracy.
Jeśli ktoś chce żeby akcja "bold" działała też w cytatach, to samo, niech napisze bo to dużo pracy.

Przydałoby się miejsce, jeśli ktoś chciałby zgłosić uwagi.

1
TomRiddle napisał(a):
  • Jeśli nie ma żadnego zaznaczenia (jest po prostu kursor bez zaznaczenia), akcja nic nie robi.

Zakładałbym, że tu lepiej dodać **|** gdzie | to kursor. Coś jak "teraz będę jechał na grubo".

0

Wszystkie akcje chciałbym wprowadzić w takim klimacie, to znaczy działają tylko w odpowiednich kontekstach. Jeśli ktoś chce żeby kliknięcie "bold" na pogrubionym tekście cofało bold, proszę o napisanie, bo to sporo pracy.

Dla mnie może zostać tak jak jest wersja 1.0.41 miała taki opis:

Pogrubia zaznaczony tekst, lub wstawia znacznik pogrubienia jeśli nie ma zaznaczenia. Ponowne użycie cofa pogrubienie.

Dlatego zgłosiłem.

0

Panczo napisał(a):

Wszystkie akcje chciałbym wprowadzić w takim klimacie, to znaczy działają tylko w odpowiednich kontekstach. Jeśli ktoś chce żeby kliknięcie "bold" na pogrubionym tekście cofało bold, proszę o napisanie, bo to sporo pracy.

Dla mnie może zostać tak jak jest wersja 1.0.41 miała taki opis:

Pogrubia zaznaczony tekst, lub wstawia znacznik pogrubienia jeśli nie ma zaznaczenia. Ponowne użycie cofa pogrubienie.

Dlatego zgłosiłem.

No tylko sprawa jest taka że żeby "odboldować" tekst, to po pierwsze on musi być cały zaznaczony, a to nam rodzi pięć case'ów:

  • Zaznaczony pełny profil
    screenshot-20211006152417.png
  • Zaznaczony tylko tekst
    screenshot-20211006152443.png
  • Zaznaczony infix
    screenshot-20211006152511.png
  • Zaznaczony outfix
    screenshot-20211006152535.png
  • Zaznaczenie przecina markup
    screenshot-20211006152604.png

Ostatni case jest łatwy do ogarnięcia, ale pierwsze 4 nie są trywialne. Musiałbyś dostać kilka głosów, żeby poświęcić czas na to, bo to jest z kilka godzin pracy na pewno.

0

Nie zrozumiałeś mnie, nie potrzebuje tego i uważam za zbędne, więc o żadne głosy nie zabiegam ;)

Chciałem tylko wyjasnic dlaczego to zgłosiłem

0
Panczo napisał(a):

Nie zrozumiałeś mnie, nie potrzebuje tego i uważam za zbędne, więc o żadne głosy nie zabiegam ;)

Chciałem tylko wyjasnic dlaczego to zgłosiłem

Panczo napisał(a):

Wszystkie akcje chciałbym wprowadzić w takim klimacie, to znaczy działają tylko w odpowiednich kontekstach. Jeśli ktoś chce żeby kliknięcie "bold" na pogrubionym tekście cofało bold, proszę o napisanie, bo to sporo pracy.

Dla mnie może zostać tak jak jest wersja 1.0.41 miała taki opis:

Pogrubia zaznaczony tekst, lub wstawia znacznik pogrubienia jeśli nie ma zaznaczenia. Ponowne użycie cofa pogrubienie.

Dlatego zgłosiłem.

Miała napisane Ponowne użycie cofa pogrubienie., ale teraz już nie będzie mieć.

2

Weszła kolejna wersja edytora, https://danon.github.io/4programmers/ 1.0.48;

Teraz Ctrl+V robi "mądre" wklejanie - nie jestem czy tak do końca mądre i czy to o to chodziło:

  • Jeśli w schowku jest tekst, wkleja jako tekst
  • Jeśli w scowku jest URL, to:
    • Nie można go wkleić do kodu, cytatu lub nagłówka lub linka. Można do pogrubienia, pochylenia lub listy.
    • Jeśli jest to URL do obrazka
      • to wkejany jest jako obrazek markdown
    • Jeśli jest to URL nie do obrazka
      • to wklejany jest jako link markdown

@somekind To o to Ci chodziło? To czy URL jest obrazkiem sprawdzane jest na razie tym regexpem /\.(jpe?g|png|gif)$/.

Do do wklejania obrazków, @Adam Boduch widzę to tak że komponent wystawi callback, gdy user wklei obrazek, ja zwołam callback z koponentu, coyote będzie mógł wczytać obrazek, dodać załącznik i zwrócić z callbacka z adresem, który potem komponent wstawi jako obrazek w markdown. Sounds good?

1

@TomRiddle: miałbym sugestię, by jak najszybciej zintegrować Twój komponent z Coyote i prowadzić jego rozwój wyłącznie w repozytorium Coyote (może w innej gałęzi, nie wchodzę w to). W tym wątku nadal oczywiście będziesz zbierać opinie. :)


UPDATE W komentarzu pytasz o korzyści z szybkiej integracji. Tak to widzę:

  1. Wcześniejsza "pewność". Docelowo i tak Twój komponent ma zostać zintegrowany; będziemy więc pewni, że to już, a nie będziemy na to czekać. Czekanie oznacza najczęściej niepewność, a niepewność zużywa energię. W szczególności @Adam Boduch czeka, zapewne rozważając, jakie to bugi się ujawnią przy integracji. ;)
  2. Potencjalnie łatwiejsza integracja. Im wcześniej komponent zostanie zintegrowany, tym potencjalnie mniej po Twojej stronie kodu i decyzji projektowych odstających od kodu i decyzji projektowych Coyote.
1
Silv napisał(a):

@TomRiddle: miałbym sugestię, by jak najszybciej zintegrować Twój komponent z Coyote i prowadzić jego rozwój wyłącznie w repozytorium Coyote (może w innej gałęzi, nie wchodzę w to). W tym wątku nadal oczywiście będziesz zbierać opinie. :)

  1. Wcześniejsza "pewność". Docelowo i tak Twój komponent ma zostać zintegrowany; będziemy więc pewni, że to już, a nie będziemy na to czekać. Czekanie oznacza najczęściej niepewność, a niepewność zużywa energię. W szczególności @Adam Boduch czeka, zapewne rozważając, jakie to bugi się ujawnią przy integracji. ;)
  2. Potencjalnie łatwiejsza integracja. Im wcześniej komponent zostanie zintegrowany, tym potencjalnie mniej po Twojej stronie kodu i decyzji projektowych odstających od kodu i decyzji projektowych Coyote.

Integracja komponentu Vue?

Aktualnie, użycie tego komponentu wylgąda tak:

<div>
    <v-editor v-model="value" placeholder="Kliknij, aby dodać treść" />
</div>

Wszystkie rzeczy niezwiązane z coyotem (markdown, linki, wklejanie, eventy, kolorowanie) jest schowane jako szczegół implemenacyjny.

A jak dodamy wklejanie obrazków i autocomplete, to będzie wyglądał tak:

<div>
    <v-editor v-model="value" placeholder="Kliknij, aby dodać treść" @paste="paste" @autocomplete="autocomplete"/>
</div>

Co dokładnie chciałbyś tu przetestować, czego nie da się zrobić na https://danon.github.io/4programmers/ ?

Doceniam ideę, ale ona ma wartość raczej niską.

0

W porządku. :) Skoro tak oceniasz swój projekt, przyjmuję, że tak będzie.

0
TomRiddle napisał(a):

@somekind To o to Ci chodziło? To czy URL jest obrazkiem sprawdzane jest na razie tym regexpem /\.(jpe?g|png|gif)$/.

No ogólnie o to.
Rozumiem, że parsujesz tylko url?
Planujesz robić kopię obrazka na 4p jak sugerowałem?

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