Extension:VisualEditor/pl

Rozszerzenie VisualEditor pozwala edytować strony z bogatą treścią. Istnieje również jako projekt o tej samej nazwie, która ma na celu stworzenie niezawodnego edytora tekstu sformatowanego dla sieci i dla MediaWiki.

Rozszerzenie VisualEditor odwołuje się do oddzielnej usługi analizatora składni nodeJS bazującej na Parsoid, którą należy zainstalować i włączyć by edytować strony za jej pomocą.

Podręcznik użytkownika
Zobacz Help:VisualEditor/User guide.

Ściąganie
Dla przeciętnego użytkownika: Jeśli używasz najnowszej stabilnej wersji MediaWiki, musisz pobrać rozszerzenie VisualEditor-MediaWiki ze strony dystrybucji rozszerzeń.

Dla zaawansowanego użytkownika:

Poniższe instrukcje przeznaczone są do pobierania MediaWiki z ostatniej chwili. cd extensions git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git cd VisualEditor git submodule update --init

Jeśli nie możesz użyć polecenia git (np. jesteś w instalacji air-gapped), to możesz pobrać snapshot/zajawkę VisualEditor-MediaWiki dla wersji master lub dla wersji Release MediaWiki ze strona ExtensionDistributor. Po uzyskaniu kodu zapisz go w katalogu extensions/VisualEditor w swoim wiki.
 * Rdzeń VisualEditor-MediaWiki's zawiera najnowszy kod, używany w Wikimedia. Ten kod może być błędny lub niestabilny, ale prawdopodobnie zawiera mniej błędów, a przede wszystkim więcej funkcji, niż stare kompilacje.
 * Rdzeń wymaga kompilacji MediaWiki (w tej chwili, 1.31-wmf.20 ) i nie będzie działać ze starszymi niż 1.30.0 oficjalnymi wydaniami MediaWiki; w tym celu użyj wersji  (command:  ).
 * Polecenie  jest niezbędne, gdyż MediaWiki-VisualEditor wymaga jądra VisualEditor jako modułu do pracy. Jeśli nie użyjesz tego polecenia, VisualEditor nie zadziała.

Kompatybilność ze skórkami
VisualEditor jest znany jako zgodny z następującymi skórkami: Inne skórki nie są oficjalnie obsługiwane, jednak edytor powinien współpracować z każdą skórką, która używa wymaganej struktury HTML – zobacz VisualEditor/Skin requirements. Mogą być wówczas konieczne pewne zmiany w arkuszach stylów skórki, by wszystko wyglądało ładnie. Załaduje się z każdą skórką, o ile nie natrafi na niezgodność cech.
 * Vector
 * MonoBook
 * Apex
 * Minerva Neue
 * Minerva (był częścią MobileFrontend)

Skonfiguruj usługę Parsoid
Jeśli chcesz mieć możliwość edycji istniejących stron i zapisywania stron za pomocą VisualEditor, potrzebujesz usługi Parsoid, która konwertuje między wikitext i HTML oraz dzięki której VisualEditor wyświetla stronę do edycji.

Aby skonfigurować własną usługę Parsoid postępuj zgodnie z instrukcją instalacji Parsoid przed konfiguracją VisualEditor. Zwróć uwagę na konfigurację Parsoid i Node.js w niestandardowych systemach, takich jak Windows lub Debian.

Poniżej znajduje się nieoficjalna macierz zgodności między VisualEditor w różnych wersjach MediaWiki i usługi Parsoid:

Legenda :
 * X = przetestowany, działający
 * - = przetestowany, niedziałający

Uwagi :
 * (*) = niekompatybilny z 0.6.1 (phabricator:T100681)
 * (**) = niekompatybilny z 0.9.0 (mailarchive:wikitech-l/2018-March/089690.html)
 * (***) = bardzo częściowo można dodawać tekst, ale nie można modyfikować istniejącego tekstu
 * 0.9 zgodny = zmodyfikowany kod Parsoid (zobacz ten blog) albo konkretna konfiguracja Parsoid (zobacz ten temat)

Podstawowa konfiguracja dla MediaWiki-VisualEditor
Domyślnie MediaWiki-VisualEditor nie jest dostępny dla użytkowników. Aby go udostępnić, należy dodać następujące linie do swoich wiki, oczywiście po pobraniu rozszerzenia:

"Zauważ, że możesz to zrobić, zanim zainstalujesz usługę Parsoid node.js by eksperymentować z VE; będzie to oznaczać, że możesz wypróbować edytor w trybie 'tworzenia' na własnej wiki, ale nie będzie wówczas można zapisywać ani edytować istniejących stron."Inne rozszerzenia, które ładują wtyczki do VE (np. Math) można załadować przed lub po VE, jeśli używasz MediaWiki 1.25 lub później; wtyczki powinny działać w dowolny sposób.

Zmienianie aktywnych przestrzeni nazw
Domyślnie VisualEditor jest włączony tylko dla przestrzeni nazw "Główne/Main", "Użytkownik/User", "Plik/File" i "Kategoria/Category". Jednak możliwe jest dodawanie lub usuwanie przestrzeni nazw. Można to zrobić na wiele sposobów, ale zaleca się używanie nazw kanonicznych zdefiniowanych dla odpowiednich przestrzeni nazw. Zauważ, że różni się to od rdzenia/jądra MediaWiki i prawie wszystkich rozszerzeń.


 * Usuwanie przestrzeni nazw (np. "File")


 * Dodawanie przestrzeni nazw (np. "Help" i "Extra" która jest niestandardowa)


 * Dodawanie i usuwanie przestrzeni nazw (np. "File" i "Extra" która jest niestandardowa)

Łączenie z Parsoid
Aby VisualEditor mógł skomunikowac się z Parsoid, by określić Twój sposób połączenia z Parsoid, dodaj następujący kod do swojego :

Jeden serwer Parsoid może obsługiwać wiele wiki. Ustawienie  Parsoid identyfikuje Twoją konfigurację wiki względem Parsoid. Niezależnie od tego, czy ustawisz  jawnie lub opcjonalnie, zaakceptuj wartość domyślną. Wartość z  musi odpowiadać wartości z   Parsoidu. Domyślnie jest on przekierowany na host o nazwie, ale możesz wybrać dowolny ciąg znaków. Starsze wersje Parsoid również używały unikalnego "przedrostka" do identyfikacji serwera; być może będziesz musiał również i tutaj go wymienić.

Parsoid musi być skonfigurowany tak, aby współpracowa z przykładowymi występującymi w  Parsoidu: Jeśli używasz Parsoid starszego niż 0.6.0, użyjesz linii w  Parsoidu: Ponownie, właściwość "domain" jest opcjonalna w konfiguracji Parsoid; domyślnie jest to nazwa hosta używana w  właściwość, jeśli nie określono. Właściwość "prefix" można również pominąć, chyba że używasz bardzo starej wersji Parsoid.

Więcej szczegółów - zobacz Parsoid/Setup.

Przełączanie pomiędzy edycją Wikitext i VisualEditor
VisualEditor allows you to switch back and forth between wikitext editing and VisualEditor. However, without a RESTBase server, when you try to switch from a wikitext editing environment into VisualEditor, your only options are Cancel or Discard my changes and switch; any changes you made will be discarded if you switch. If you want the ability to switch between wikitext editing and VisualEditor and save your changes, you must install a RESTBase server.

To set up your own RESTBase service follow the RESTBase installation instructions. Note that if you were successful setting up the Parsoid service, setting up a RESTBase server is similar because it also runs under Node.js.

For VisualEditor you do not need the configuration section in  described in the RESTBase configuration section.

Once the RESTBase server is operational, add the following code to your :

where  is the value of   you specified in your Parsoid configuration file (you should change it in the configuration). Make sure that the port you specify here (e.g. ) is the same port as you specified in the RESTBase configuration.

If you can't access RESTBase port(e.g. ), you can bypass via httpd proxy. refer IF Restbase Port is blocked. If your wiki is served through HTTPS, RESTBase must be served through HTTPS; else users could experience "mixed-content" errors and the switch from wikitext to VisualEditor could not work.

Now when you make changes in a wikitext editor, you are presented with a dialog box with a Switch option instead of Discard my changes and switch.

Servers with multiple virtual sites
If Apache2 is configured with multiple virtual sites, Parsoid is (in standard configuration) only able to access the default site. To check for this problem, run  on the server.

If the response starts with: then you don't have the problem, but if it doesn't, you may need to configure a host alias that Parsoid can use:

Look at the apache2 configuration file for the virtual server hosting the wiki, near the top of the file there should be la line like: "" If the '*' is present, then the alias can be to localhost, if there is an IP address replacing the '*' then the alias must be to that IP address. In the same file add a line: ""

In the hosts file of the server, add a route for my_wiki_alias, either for 127.0.0.1 (if the apache2 virtual server configuration had the '*' above, else to the IP address from the apache2 virtual server configuration.

Finally, in the Parsoid  file, find the   setting, and set it to:

Reload the network config, apache config and Parsoid config, and retest the curl command above.

The same method works for multiple wikis hosted on multiple virtual servers on a host (use a different alias and add a  setting for each wiki).

Linking with Parsoid in private wikis
Try these three things:

Parsoid Authentication Without Forwarding Cookies
An alternative to the approach above is explicitly giving read permissions to requests from the parsoid server. There are two suggested solutions:

Replace 127.0.0.1 in both example solutions with the IP address of the server that is running Parsoid. This should of course only be done if the Parsoid server is on a 'trusted' network.

The forwarding of cookies (and the enabling of  and the   property) can be avoided by adding a user (which may be called  ) to the wiki and then add the NetworkAuth extension to the wiki with the configuration in "LocalSettings.php" file: Where the IP address matches that of the Parsoid server and the user matches the one you added to the wiki.
 * 1) Using the NetworkAuth extension

After your settings for  add the following to your "LocalSettings.php": Where the IP address matches that of the Parsoid server. Solution as mentioned in: explicitly remove restrictions for Parsoid by IP address.
 * 2) Adapt how permissions are set

Parsoid over HTTPS
By default, Parsoid only supports HTTP connections. However, it's easy to provide HTTPS Parsoid by using Stunnel, a utility which offers SSL wrapping for arbitrary sockets. Most Unix distributions have 'stunnel' or 'stunnel4' package available from the repository. First install stunnel: sudo apt install stunnel Then you need a config file for stunnel. It resides under, so create it here with the editor you like, e.g. nano: sudo nano /etc/stunnel/parsoid.conf Give the file similar content like this:

First you define the path to the ssl-keys used for your server. Then you give the service a name you like in brackets. It is only to know what this config shall do and to separate different configs in the same file. After the key  you write the port number for the public incoming connection, which is ssl-ciphered. After the  key write the intern port number, to which stunnel should route the traffic from the accept-port, but without ssl. At this port your parsoid-server is listen. If you use the Parsoid/Developer Setup use port number 8000, otherwise 8142 is standard port.

If you are using Let's Encrypt, you can use the following (replacing ` ` with the primary URL you have the certificate for):

This example use its own subdomain for parsoid and secured it with letsencrypt.

The stunnel config-file is ready now, but you need two more things to activate the configuration:

First enable stunnel to work after reboot. Therefore change 'ENABLED' to 1 in the file sudo nano /etc/default/stunnel4

ENABLED=1

Second, if you dont want to reboot now, you have to start the service. For Ubuntu 14.x use sudo /etc/init.d/stunnel4 restart For Ubuntu 16.x the command changed to sudo systemctl restart stunnel4.service To test configuration you can check in your browser, if the parsoid-server is answering over the ssl-connection. (e.g. write in the adress-line of your browser: ' https://parsoid.mydomain.com:8143 '). If the answer is „Welcome to the Parsoid web service.“ then congratulation - you have successfull secured your parsoid installation. One step remaining: Once this is working, you have to use the appropriate URL (e.g. ' https://parsoid.mydomain.com:8143 ') in your MediaWiki configuration for VisualEditor. Note the change from http to https and the port-number you set under accept in stunnel-configuration-file.

If you do not like to create an extra subdomain for parsoid like here, you can also use an existing subdomain (e.g. [wiki] if it's listed in your  file and then the appropriate URL will become: https://wiki.mydomain.com:8143 ).

Setting up such a configuration allows you to avoid the security implications of transmitting parsoid cookies in cleartext.

Producing and installing SSL certificates is beyond the scope of this document. Read more about stunnel:
 * Howto setup an ssl-tunnel using stunnel on ubuntu (12.x, 14.x)
 * Howto encrypt traffic to redis with stunnel on ubuntu 16.04

Parsoid on Windows and other systems
It is particularly complicated and time consuming to set up VisualEditor with Parsoid in non-standard systems, like those running Windows or non-standard Linux - those difficulties might even prevent the successful installation of VisualEditor for some people on some platforms:
 * Grrrr Debian assumptions
 * Can not get VisualEditor extension for MediaWiki REL1 23 working on freshly installed system
 * etc.
 * etc.

Setting VisualEditor up on shared hosting
See VisualEditor/Installation on a shared host

Complete list of configuration options
Each configuration option is shown without the  prefix for brevity.

Old configuration parameters
As above, each configuration option is shown without the  prefix for brevity.

Related configuration parameters
See also Upload dialog for information about configuring the drag-and-drop/copy&paste functionality for uploading media files through VisualEditor.

Integration of "2017 wikitext editor"
Since release branch "REL1_29" (MediaWiki 1.29 and later) it is also possible to activate the so called "2017 wikitext editor". To enable it and at the same time make it available to all users by default add the following to your "LocalSettings.php" file: If you want all users to have the 2017 wikitext editor available as a beta feature, i.e. leave the choice to the users, install the BetaFeatures extension add the following to your "LocalSettings.php" file:

It is also possible to enable wikitext syntax highlighting for the "2017 wikitext editor". To do this you have to additionally install the CodeMirror extension.
 * Enabling wikitext syntax highlighting

Expanding visual editor

 * Extension:TemplateData - allows the addition of template information, making templates easier to insert with the VisualEditor
 * VisualEditor/Citation tool - guide on improving the cite tool

Troubleshooting

 * Error loading data from server : HTTP 500. Would you like to retry?
 * Possible reasons for this problem:
 * On new installs, "curl", "php5-curl", or "php7.0-curl" is not installed on the server.
 * setMwApi uri is set incorrectly with e.g. https instead of http.
 * Bad rewrite rules in the apache configuration that would cause API failures.
 * The SSL/TLS certificates are expired.
 * When running Windows Authentication with Apache, you would need to white-list 127.0.0.1 in your Apache conf, as Apache doesn't have read access.
 * parsoidserver-http-curl-error : couldn't connect to host.
 * Parsoid is not running, or  is not set correctly
 * Parsoid is not running, or  is not set correctly


 * parsoidserver-http-curl-error : Failed to connect to .... : Permission denied.
 * Can be caused by a cURL request on a Security-Enhanced Linux (SELinux, like CentOS) to a non standard port like 8000 in the example configuration above, see http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied and https://www.centos.org/forums/viewtopic.php?f=47&t=53223&p=225372#p225372


 * parsoidserver-http-bad-status : 401
 * Caused by read or edit restrictions. If you've set up a private wiki and don't want to use cookie forwarding, you can explicitly remove restrictions for Parsoid by IP address.


 * parsoidserver-http-not-found : 404 (or timeout)
 * Caused by wrong path to MediaWiki API endpoint. Set correct url to the right path to  in Parsoid's   config file. If you have set up following the recommendations, your API path would be "http://localhost/w/api.php". Add this API path to "localsettings.js" like "parsoidConfig.setMwApi({uri: 'http://localhost/w/api.php ' });".


 * parsoidserver-http-not-acceptable : 406
 * Caused by Parsoid 0.9 enforcing clients to return a 1.6.0 and greater HTML version string in the header. This most likely affects Debian users as they are using slightly older Mediawiki versions with Mediawiki's Parsoid APT repository. This can be fixed by either downgrading to 0.8 (not easy as 0.8 no longer exists in the repository) or by editing  so that  . The latter will be overwritten on any package upgrade, so it is up to the administrator to lock the package and keep on top of updates manually.


 * No visible error (Appears to load forever)
 * Check the parsoid log file, and consult Parsoid/Troubleshooting.