Extension:Graph/pl

Rozszerzenie Wykres umożliwia tagowi opisywać wizualizacje danych takich jak wykresy słupkowe, wykresy kołowe, przebiegi czasowe i histogramy (demo) w formacie JSON który rysuje wykresy oparte o Vega.

Informacje ogólne
Rozszerzenie Wykres pozwala na dodanie do stron wiki rewelacyjnych wykresów opartych o Vega. Wykresy mogą być statyczne i dynamiczne.

Najłatwiejszy sposób na dodanie wykresy jest użycie gotowego szablonu takiego jak. Ten szablon ukrywa wszelkie komplikacje składni Vega. Zaawansowani użytkownicy mogą użyć Brudnopisu Wykresu do opracowania wykresów. Brudnopis Wykresu zezwala łącznie ze składnią JSON na składnię szablonu wiki.

Przydatne linki

 * Dokumentacja Vega 2 - przywrócone strony dokumentacji Vega 2.
 * - Ogólne zalecenia jak używać wykresów w Wiki.
 * - instrukcje krok po kroku jak od zeta tworzyć złożone interaktywne wykresy
 * - wiele przykładów i sztuczek
 * nagranie TechTalk - wykład techniczny WMF omawiający rozszerzenie Wykres, łącznie ze świetną demonstracją editora Lyra I(także zainstalowanego na na labs).
 * Możesz też być zainteresowany przyszłymi możliwościami Vega (program Jeffrey Heer).
 * Vega for devs - najlepsze miejsce z zasobami dotyczącymi Vega
 * Film z prowadzeniem do interaktywnej Vegi
 * Film z prowadzeniem do interaktywnej Vegi

Additional config setup
If you are looking to replicate a production environment like en.wiki you will need to complete the following steps:

Roles


 * Enable graphs role
 * Enable scribunto role
 * Enable imagemap role

Templates and Lua Modules


 * Copy Module:Graph locally
 * Copy Module:Graph/doc locally
 * Copy Template:Nowrap locally
 * Copy Module:Chart locally
 * Copy Module:Plotter/DefaultColors locally.

Przykłady wykresów
Sprawdź z wieloma przykładami i sztuczkami.

User defined fallback
When using client side rendering, it is possible to use Wikimedia Commons to provide a static fallback image to  users. This is a temporary solution until a new service is put in place to provide server side rendering to replace the soon to be decomissioned Graphoid service.

The user must first upload the static graph to Wikimedia Commons.

Fallback images have two variables  and. relates to a Wikimedia Commons filename.

is the fallback images width in pixels.

These variables are pass through the graph in the following way:

Where lua modules are used such as Module:Graph then these variables can be provided via the tag function. If Template:Graph:Chart were adapted, it would look like this:

It would then be utilised in a template in the following manner:

If a fallbackWidth isn't provided but an image is defined then the extension will derive the width from the provided graph width. The reason for this is there there is frequently a difference in the redered image width and the actual image width.

Dane zewnętrzne
Protokoły HTTP(S) nie mogą być użyte do uzyskania danych dla wykresu. Zamiast tego, użyj jednego ze specjalnych protokołów wiki jak,   i innych.

Usługa Graphoid i rozszeżenie Graph używa ustawień  to kontroli jak są rozwiązywane te protokoły: Note that because queries rely on the structure of wikibase items, they may suddenly stop working if the underlying data is edited and changes, as it may yield incomplete, empty or invalid data that can't be used to create a graph. In these cases the graph will end up empty (see T168601).

Znane błędy i ograniczenia

 * błędy rozszerzenia Wykres
 * błędy usługi Graphoid
 * Nie udana implementacja skal czsowych ISO 8601 więc tylko kalendarz Gregoriański może być użyty w wykresach czasowych
 * Powiększanie obrazów w większości przeglądarek może być domyślnie rozmyte. Ustaw odpowiednią wartość image-rendering aby naprawić.

Wnętrze
Podczas parsowania, rozszerzenie Wykres rozwija wszystkie parametry/wyrażenia szablonów i przechowuje kompletne definicje w właściwości strony  używając ID haszów wykresów. Oznacza to, że możesz łatwo zlokalizować wykresy za pomocą Special:PageWithProps lub [//www.mediawiki.org/w/api.php?action=query&list=pageswithprop&continue=&formatversion=2&pwppropname=graph_specs akcji API]

Rozszerzenie wykresu dodaje HTML do strony tam gdzie powinien znaleźć się wykres: zawierający tag. Przykład:

Atrybut tagu   wskazuje do usługi #Graphoid, która usdostępnia [//www.mediawiki.org/api/rest_v1/page/graph/png/Extension%3AGraph%2FDemo/1686336/d243aa924db2f82926e0f317217fcce591fe8cd4.png statyczny obraz wykresu].

Jeżeli rozszerzenie Wykres jest skonfigurowane z interaktywnością, przeglądarka klienta ma włączoną obsługę JavaScript oraz przeglądarka nie jest przestarzała w której, ResourceLoader nie obsługuje JavaScript wtedy przeglądarka klienta będzie generować wykres na bieżąco. Rozszerzenie Wykres dodaje moduł  ResourceLoader JavaScript do strony łącznie z biblioteką Vega i wstawia definicję wykresu JSON do kodu JavaScript   w zmiennej o nazwie. Kiedy klient wczyta moduł, biblioteka JavaScript Vegi zapełni każdy go płótnem HTML i narysuje wykres na nim zamieniając statyczny obraz. , wiki Wikimedii zezwalają na interaktywne renderowanie tylko w podglądzie edycji.

Możesz skonfigurować rozszerzenie Wykres aby zawsze używało samego tagu i nie dodawało bibliotek Vega lub definicji JSON. Ten tryb nie będzie działał podczas edycji, ponieważ  nie jest aktualizowany po zapisaniu. Po zapisaniu usługa Graphoid będzie miała dostęp do nowej definicji wykresu poprzez akcję API.

Kwestie bezpieczeństwa
może być skonfigurowany aby zabronić odniesień do niezaufanych źródeł danych (np. Wikimedia zezwala tylko na dane ze strony Wikimedii) Może też przesyłać dodatkowe nagłówki wtedy gdy ma dostęp do zewnętrznych danych, np. nagłówek  który MediaWiki używa aby zapobiec atakom CSRF.

Licencja
Vega jest dystrybuowana pod zmodyfikowaną licencją BSD akceptową do użytku dla nas.

Wygląda on na kopię licencji BSD z pewnymi małymi (akceptowalnymi) modyfikacjami. To nie jest dla nas problem aby jej użyć, aczkolwiek idealnie było by gdyby nie wprowadzaliby takich zmian do licencji. Lepiej jest jak nie są wprowadzane takie zmiany do licencji, aby zamieszania (takiego jak to) w temacie czy licencja jest bezpieczna do użytku otwarto-źródłowego.

wgGraphIsTrusted
Jeżeli  (domyślnie), dopuszcza nagłówek Treat-as-Untrusted:1 dla wszystkich zapytań danych

wgGraphImgServiceUrl
Ciąg formatujący aby utworzyć URL zapytanie usługi backend dla tagu &lt;img>. Na przykład:

Da taki URL:

//graphoid.wikimedia.org/mediawiki.org/v1/png/Extension:Graph/0/be66c7016b9de3188ef6a585950f10dc83239837.png /{domain}/v1/png/{title}/{revid}/{hash}.png

Parametry będą dostarczone w tej kolejności: 1=server, 2=title, 3=revid, 4=graph-hash-id. Wszystkie parametry będą unikane poprzez rawurlencode. Jeżeli wartość jest  (domyślna), żaden url  nie będzie generowany

Inne zmienne
Zmienna wgGraphUrlBlacklist została usunięta w 787d64a11 (7 Gru 2015).

wgGraphDataDomains została usunięta w e0813f85a (28 Styczeń 2016). Użyj zamiast tego wgGraphAllowedDomains.

Zmienna wgGraphUserServiceAlways została usunięta z b735f63ff4b (30 Wrzesień 2015).

Enabling Graph namespace
To store graph definitions as standalone pages in their own namespace, configure.

Graphoid service
Graphoid is a node.js  service that converts a graph definition into a static PNG image using the same Vega library code that runs in advanced browsers. The reason Graphoid was initially developed was to provide a static image so we wouldn't have to bundle Vega and d3 resource loader modules with every page response. See T211881 for more details. The service is available on the Wikimedia cluster at https://www.mediawiki.org/api/rest_v1/#/Page%20content/get_page_graph_png__title___revision___graph_id_.

You can install it yourself:

(note: this package is not being maintained (T211881, and installation may fail, see T196001, T239100. npm i --build-from-source may help.)

The service URLs contain the domain of the page (for example mediawiki.org), service version (v1), the title of the page with the graph (PageTitle), revision ID of the page (12345, but could be 0 for current), and a hash ID of the graph itself (also used in HTML page to identify graph definition), for example:

http://localhost:6927/mediawiki.org/v1/PageTitle/12345/a64b022a8fa5b7fc5e40a2c95cd0a114b2ae1174.png (deprecated url)

https://www.mediawiki.org/api/rest_v1/page/graph/png/Extension%3AGraph/3420825/72edc224f0a10b343c1e84f63dbfc97cac9bc957.png

You configure the Graph extension to use the Graphoid service in LocalSettings.php with a line like

Configure graphoid services


You can further configure the service via its config file.

VisualEditor module
Since summer 2015, the Graph extension also comes with a module (ext.graph.VisualEditor) which enables graph editing within VisualEditor.

This module was a result of a Google Summer of Code 2015 project. See T89287 for more details.

This module allows users to see graphs within VisualEditor, as opposed to alien extension nodes. Furthermore, users can open up a dialog to edit a graph's type, data and padding. The UI also offers a way to edit a graph's raw JSON specification within VE without having to switch to the classic wikitext editor, in case more advanced users want to tweak settings not supported by the UI.

This first step serves as a stepping stone for many possibilities with graph editing within VisualEditor, and there are a lot of ways in which the module can be improved and expanded.