Традиция:Test/ED

Материал из свободной русской энциклопедии «Традиция»
Перейти к навигации Перейти к поиску
Usecase Wikitext Output
{{#get_web_data:}}
{{#get_web_data:
  url=https://expert.ru/avtory/konstantin_pakhunov/
  |format=HTML
  |data=url=article h2>a.attr(href),title=article h2>a
 }}
 {| class="wikitable"
  ! URL !! Title {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{url}}} {{!}}{{!}} {{{title}}}
 }}
 |}
URL Title
{{#clear_external_data:}}
 {{#get_web_data:
  url=https://www.apn.ru/index.php?do=authors&author=637
  |format=HTML
  |data=url=div.left_cell>h2>a.attr(href),title=div.left_cell>h2>a,date=div.left_cell>ul>li:nth-of-type(2)
 }}
 {| class="wikitable"
  ! URL !! Title !! Date{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{url}}} {{!}}{{!}} {{{title}}} {{!}}{{!}} {{{date}}}
 }}
 |}


URL Title Date
https://www.apn.ru/index.php?newsid=38277 Без Крылова 16 май 2020, 08:40
https://www.apn.ru/index.php?newsid=37794 Стать героем 20 апрель 2019, 19:53
https://www.apn.ru/index.php?newsid=36623 Из огня да в полымя 05 сентябрь 2017, 02:55
https://www.apn.ru/index.php?newsid=31999 Украинский кризис: возможности и угрозы для российского бизнеса 24 июль 2014, 13:04
https://www.apn.ru/index.php?newsid=31212 Акела промахнулся 07 март 2014, 12:31
https://www.apn.ru/index.php?newsid=26701 Мы 31 май 2012, 12:58
https://www.apn.ru/index.php?newsid=26220 Чего ждать от Путина? 20 март 2012, 20:37
https://www.apn.ru/index.php?newsid=25659 Рви день 26 декабрь 2011, 13:02
https://www.apn.ru/index.php?newsid=23093 Уроки Августа 23 август 2010, 13:09
https://www.apn.ru/index.php?newsid=21260 Чем грозят предстоящие соборы? 27 январь 2009, 13:09
{{#get_web_data:
  url=https://expert.ru/avtory/konstantin_pakhunov/
  | format=HTML
  | use xpath
  | data=title=//article//h2/a,url=//article//h2/a/@href
 }}

 {| class="wikitable"
  ! URL !! Title {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{url}}} {{!}}{{!}} {{{title}}}
 }}
 |}
URL Title
{{#get_web_data:
  url=http://old.russ.ru/authors/Krylov.html
  | format=HTML
  | use xpath
  | data=url=//p[font='Список публикаций:']/a/@href,title=//p[font='Список публикаций:']/a,date=substring(//p[font='Список публикаций:']/nobr/font,'3','10'),charset=__encoding
  | use stale cache
 }}
 {| class="wikitable"
  ! URL !! Title !! Date{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{url}}} {{!}}{{!}} {{{title}}} {{!}}{{!}} {{{date}}}
 }}


URL Title Date
/publishers/examination/20050512_kk.html Это касается каждого 12.05.2005
/culture/20050309_kry.html Женские штучки
/culture/20041230_kr.html На плаву
/culture/20041105_krylov.html Присяга на верность
/politics/20040402-pirat.html Покаяние капитана Сильвера
/politics/20040330-oks.html Cоциальный либерализм как оксюморон
/politics/20040319-crylv.html Автаркия: бытие назло
/politics/news/20040314-kryl.html Выборы как ротационная система
/politics/20040301-krylo.html Остров стабильности
/politics/20031201-kryl.html О благе саботажа
/politics/20031114-kryl.html Отмена события
/politics/20031007-kryl.html Русь и Нерусь
/politics/reflection/20030812-kryl.html О собственности
/politics/reflection/20030801-kryl.html Критика нечистого разума. Вып. 3
/politics/reflection/20030725-kryl.html Критика нечистого разума. Вып 2
/politics/reflection/20030718-kryl.html Критика нечистого разума, вып. 1
/politics/20030122-kr.html Консерватизм с человеческим лицом
/politics/20021206-krylov.html О накоплении пара
/politics/20021112-fu.html Пробуждение от идиотизма. Окончание
/politics/20021110-kr.html Пробуждение от идиотизма. Продолжение
/politics/20021105-kr.html Пробуждение от идиотизма
/politics/20021014-kr.html "Знать число народа"
/politics/20020930-kryl.html Плакальщики
/politics/20020620-kryl.html Европа и ее европейцы
  • Format: XML.
  • Selectors: plain.
  • Charset: UTF-8.
{{#get_web_data:url=http://producthelp.sdl.com/SDL%20Trados%20Studio/client_en/sample.xml
  | format=xml
  | data=salutation=salutation,address=address,url=weblink,retrieved=__time}}
 * '''Salutation:''' {{#external_value:salutation}}
 * '''Address:''' {{#external_value:address}}
 * '''URL:''' {{#external_value:url}}
 * '''Retrieved:''' {{#time:d xg Y H:i:s|@{{#external_value:retrieved}}}}
 
* Salutation: Dear Daniel,
* Address: Smith & Company Ltd.
* URL: http://www.smith-company-ltd.com
* Retrieved: 18 апреля 2024 23:28:52
{{#get_web_data:url=http://producthelp.sdl.com/SDL%20Trados%20Studio/client_en/sample.xml
  | format=xml
  | use xpath
  | data=salutation=/letter/salutation,maxlength=/letter/title[2]/@maxlength,address=/letter/address[@translate='no'],url=/letter/weblink,retrieved=__time}}
 * '''Salutation:''' {{#external_value:salutation}}
 * '''Max length:''' {{#external_value:maxlength}}
 * '''Address:''' {{#external_value:address}}
 * '''URL:''' {{#external_value:url}}
 * '''Retrieved:''' {{#time:d xg Y H:i:s|@{{#external_value:retrieved}}}}
 
  • Format: XML.
  • Selectors: XPath.
  • Uses default namespace.
  • Charset: UTF-8.
{{#get_web_data:
   url=https://pubchem.ncbi.nlm.nih.gov/rest/pug_view/data/compound/3028194/XML?heading=GHS+Classification
 | format=xml
 | use xpath
 | data=res=/ns:Record/ns:RecordType
 | default xmlns prefix=ns
 }}res: {{#for_external_table:{{{res}}} }}
res: CID
  • Format: CSV.
  • Selectors: .
  • Charset: UTF-8.
{{#get_web_data:
  url=https://discoursedb.org/wiki/Special:GetData/Fruits_data
 | format=CSV with header
 | data=name=Name,color=Color,shape=Shape
 }}
 {| class="wikitable"
  ! Name !! Color !! Shape {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} [[{{{name}}}]] {{!}}{{!}} {{{color}}} {{!}}{{!}} {{{shape}}} }}
 |}

 Yellow fruits only (retrieved from the URL https://discoursedb.org/wiki/Special:GetData/Fruits_data?Color=Yellow):
 {{#get_web_data:
  url=https://discoursedb.org/wiki/Special:GetData/Fruits_data?Color=Yellow
 | format=CSV with header
 | data=name=Name,color=Color,shape=Shape
 }}
 {| class="wikitable"
  ! Name !! Color !! Shape {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{name}}} {{!}}{{!}} {{{color}}} {{!}}{{!}} {{{shape}}} }}
 |}

 Red fruits only (retrieved from the URL https://discoursedb.org/wiki/Special:GetData/Fruits_data, with an additional "color=Red" filter placed in the call):
 {{#get_web_data:
  url=https://discoursedb.org/wiki/Special:GetData/Fruits_data
  | format=CSV with header
  | filters=color=Red
  | data=name=Name,color=Color,shape=Shape
 }}
 {| class="wikitable"
  ! Name !! Color !! Shape {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{name}}} {{!}}{{!}} {{{color}}} {{!}}{{!}} {{{shape}}} }}
 |}
Name Color Shape
Apple Red or green Round
Banana Yellow Oblong
Orange Orange Round
Pear Yellow Pear-shaped

Yellow fruits only (retrieved from the URL https://discoursedb.org/wiki/Special:GetData/Fruits_data?Color=Yellow):

Name Color Shape
Banana Yellow Oblong
Pear Yellow Pear-shaped

Red fruits only (retrieved from the URL https://discoursedb.org/wiki/Special:GetData/Fruits_data, with an additional "color=Red" filter placed in the call):

Name Color Shape
  • Format: CSV with headers.
  • Selectors: .
  • Charset: UTF-8.
{{#get_web_data:url=https://discoursedb.org/GermanyCSV.txt
  | format=csv with header
  | data=bordered countries=Borders,population=Population,area=Area,capital=Capital
 }}
 The following data has been retrieved from http://discoursedb.org/GermanyCSV.txt, using the [http://www.mediawiki.org/wiki/Extension:External_Data External Data] extension:

 * Germany borders the following countries: {{#arraymap:{{#external_value:bordered countries}}|,|x|[[x]]}}.
 * Germany has population {{#external_value:population}}.
 * Germany has area {{#external_value:area}}.
 * Its capital is {{#external_value:capital}}.

The following data has been retrieved from http://discoursedb.org/GermanyCSV.txt, using the External Data extension:

{{#get_web_data:
  url=https://falseexpert.ru/dossier/author/124728/
  |format=HTML
  |data=url=article h2>a.attr(href),title=article h2>a
 }}
 {| class="wikitable"
  ! URL !! Title {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{url}}} {{!}}{{!}} {{{title}}}
 }}
 |}
Ошибка при получении данных по URL https://falseexpert.ru/dossier/author/124728/: $2.
Ошибка обращения к URL: Could not resolve host: falseexpert.ru
Во время обработки HTTP-запроса обнаружена проблема: 0 Error
Не удалось получить URL https://falseexpert.ru/dossier/author/124728/ после 3 попыток.
URL Title
{{#get_web_data:
  format=json
  |url=https://discoursedb.org/w/extensions/ExternalData/nara.json
  |Use jsonpath
  |data=Num=$.phoneNumbers[:].number
 }}

 Numbers: {{#for_external_table:{{{Num}}}, <nowiki />}}.

Numbers: 0123-4567-8888, 0123-4567-8910, .

Broken JSONPath!
{{#get_web_data:
  url=https://api.meetup.com/hac-dc/events?scroll=next_upcoming&page=10
  | format = json with jsonpath
  | data = local_date=//local_date,local_time=//local_time,name=//name,link=//link,duration=//duration
 }} 
 {| class="wikitable"
 ! Date
 ! Time
 ! Event {{#for_external_table:<nowiki/>
 {{!}}-
 {{!}} {{{local_date}}}
 {{!}} {{{local_time}}}
 {{!}} [{{{link}}} {{{name}}}]
 }}
 |}
Некорректный JSONpath //local_date
Date Time Event
{{#get_file_data:}}
{{#get_file_data:
  file=test
  |format=JSON
  |data=name=$.name,version=$.version
  |use jsonpath
 }}
 The extension is called "{{#external_value:name}}". Its version is {{#external_value:version}}.
Add
$edgFilePath['test'] = "$wgExtensionDirectory/ExternalData/extension.json";
to your LocalSettings.php

The extension is called "External Data". Its version is 3.4-alpha.

{{#get_file_data:
  file=no_such_file
  |format=JSON
  |data=name=$.name,version=$.version
  |use jsonpath
 }}
 The extension is called "{{#external_value:name}}". Its version is {{#external_value:version}}.
Add
$edgFilePath['test'] = "$wgExtensionDirectory/ExternalData/extension.json";
to your LocalSettings.php
Файл no_such_file не определён.

The extension is called "Ошибка: локальная переменная «name» не установлена.". Its version is Ошибка: локальная переменная «version» не установлена..


{{#get_soap_data:}}
{{#get_soap_data:
  url=http://www.mnb.hu/arfolyamok.asmx?wsdl
  |request=GetCurrentExchangeRates
  |requestData=
  |response=GetCurrentExchangeRatesResult
  |format=xml
  |use xpath
  |data=from_nominal=/MNBCurrentExchangeRates/Day/Rate/@unit,from=/MNBCurrentExchangeRates/Day/Rate/@curr,rate=/MNBCurrentExchangeRates/Day/Rate,date=/MNBCurrentExchangeRates/Day/@date
 }}
 Echange rates on {{#external_value:date}} to Hungarian Forint:
 {{#for_external_table:<nowiki/>
* {{{from_nominal}}} {{{from}}} = {{{rate}}} HUF
 }}

sudo apt install php7.4-soap && sudo phpenmod soap && sudo service php7.4-fpm restart

Echange rates on 2024-04-18 to Hungarian Forint:

  • 1 AUD = 237,78 HUF
  • 1 BGN = 201,32 HUF
  • 1 BRL = 70,46 HUF
  • 1 CAD = 268,09 HUF
  • 1 CHF = 405,86 HUF
  • 1 CNY = 50,94 HUF
  • 1 CZK = 15,58 HUF
  • 1 DKK = 52,77 HUF
  • 1 EUR = 393,76 HUF
  • 1 GBP = 459,99 HUF
  • 1 HKD = 47,09 HUF
  • 100 IDR = 2,28 HUF
  • 1 ILS = 97,33 HUF
  • 1 INR = 4,41 HUF
  • 1 ISK = 2,62 HUF
  • 100 JPY = 238,9 HUF
  • 100 KRW = 26,84 HUF
  • 1 MXN = 21,74 HUF
  • 1 MYR = 77,09 HUF
  • 1 NOK = 33,5 HUF
  • 1 NZD = 218,67 HUF
  • 1 PHP = 6,45 HUF
  • 1 PLN = 90,92 HUF
  • 1 RON = 79,13 HUF
  • 1 RSD = 3,36 HUF
  • 1 RUB = 3,92 HUF
  • 1 SEK = 33,89 HUF
  • 1 SGD = 271,33 HUF
  • 1 THB = 10,03 HUF
  • 1 TRY = 11,36 HUF
  • 1 UAH = 9,31 HUF
  • 1 USD = 368,76 HUF
  • 1 ZAR = 19,37 HUF
  • Wrong URL!
  • Protocol: SOAP
  • Format: XML
{{#get_soap_data:
  url=http://www.falsemnb.hu/arfolyamok.asmx?wsdl
  |request=GetCurrentExchangeRates
  |requestData=
  |response=GetCurrentExchangeRatesResult
  |format=xml
  |use xpath
  |data=from_nominal=/MNBCurrentExchangeRates/Day/Rate/@unit,from=/MNBCurrentExchangeRates/Day/Rate/@curr,rate=/MNBCurrentExchangeRates/Day/Rate,date=/MNBCurrentExchangeRates/Day/@date
 }}
 Echange rates on {{#external_value:date}} to Hungarian Forint:
 {{#for_external_table:<nowiki/>
* {{{from_nominal}}} {{{from}}} = {{{rate}}} HUF
 }}

sudo apt install php7.4-soap && sudo phpenmod soap && sudo service php7.4-fpm restart

При создании клиента SOAP выброшено исключение SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.falsemnb.hu/arfolyamok.asmx?wsdl' : failed to load external entity "http://www.falsemnb.hu/arfolyamok.asmx?wsdl"

.
Не удалось получить URL http://www.falsemnb.hu/arfolyamok.asmx?wsdl после 3 попыток. Echange rates on Ошибка: локальная переменная «date» не установлена. to Hungarian Forint:


{{#get_ldap_data:}}
  • Protocol: LDAP
  • One entry
{{#get_ldap_data:
  domain=example
  |filter=(sn=training)
  |data=name=uid,class=objectClass,phone=telephoneNumber,email=mail
 }}
 * E-mail: {{#external_value:email}}
 * Phone: {{#external_value:phone}}
 * Name: {{#external_value:name}}
sudo apt install php7.4-ldap && sudo phpenmod ldap && sudo service php7.4-fpm restart. Add
$edgLDAPServer	['example']	= 'ldap.forumsys.com';
$edgLDAPBaseDN	['example']	= 'dc=example,dc=com';
$edgLDAPUser	['example']	= 'cn=read-only-admin,dc=example,dc=com';
$edgLDAPPass	['example']	= 'password';
to your LocalSettings.php.
  • E-mail: Ошибка: локальная переменная «email» не установлена.
  • Phone: Ошибка: локальная переменная «phone» не установлена.
  • Name: Ошибка: локальная переменная «name» не установлена.
  • Protocol: LDAP
  • Many entries
{{#get_ldap_data:
  domain=example
  |filter=(objectClass=person)
  |data=name=cn,phone=telephoneNumber,email=mail
  |all
 }}
 {| class="wikitable"
  ! Name !! Phone !! E-mail {{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{name}}} {{!}}{{!}} {{{phone}}} {{!}}{{!}} {{{email}}} }}
 |}
sudo apt install php7.4-ldap && sudo phpenmod ldap && sudo service php7.4-fpm restart. Add
$edgLDAPServer	['example']	= 'ldap.forumsys.com';
$edgLDAPBaseDN	['example']	= 'dc=example,dc=com';
$edgLDAPUser	['example']	= 'cn=read-only-admin,dc=example,dc=com';
$edgLDAPPass	['example']	= 'password';
to your LocalSettings.php.
Name Phone E-mail
Isaac Newton [email protected]
Albert Einstein 314-159-2653 [email protected]
Nikola Tesla [email protected]
Galileo Galilei [email protected]
Leonhard Euler [email protected]
Carl Friedrich Gauss [email protected]
Bernhard Riemann [email protected]
Euclid [email protected]
read-only-admin
Test
Marie Curie [email protected]
Alfred Nobel [email protected]
Robert Boyle 999-867-5309 [email protected]
Louis Pasteur 602-214-4978 [email protected]
No Group [email protected]
{{#get_db_data:}}
{{#get_db_data:
  db=rfam
  | from=family
  | limit=10
  | order by=num_full DESC
  | data=name=Author,number=num_full
 }}
 {| class="wikitable"
  ! Name !! Number{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{name}}} {{!}}{{!}} {{{number}}}
 }}
 |}
Add
$edgDBServer	['rfam']	= 'mysql-rfam-public.ebi.ac.uk:4497';
$edgDBServerType['rfam']	= 'mysql'; 
$edgDBName		['rfam']	= 'Rfam';
$edgDBUser		['rfam']	= 'rfamro';
$edgDBPass		['rfam']	= '';
to your LocalSettings.php.

See https://docs.rfam.org/en/latest/database.html.

Name Number
Eddy SR, Griffiths-Jones SR, Mifsud W 1429129
Bateman A 190650
Griffiths-Jones SR, Mifsud W, Gardner PP 139932
Wilkinson A 100454
Burge SW 75130
Griffiths-Jones SR 60585
Griffiths-Jones SR 58318
Bateman A 53249
Griffiths-Jones SR, Gardner PP 47401
Gardner PP 42386
  • Database type: MongoDB
  • Query type: simple find
{{#get_db_data:
  db = mongo
  | from = zips
  | limit = 10
  | order by = pop DESC
  | where = state = NY
  | data = id=_id,city=city,state=state,loc=loc,pop=pop
 }}
 Top ten zip codes in New York by population.
 {| class="wikitable"
  ! Id
  ! City
  ! Name
  ! Coordinates
 ! Population{{#for_external_table:<nowiki/>
 {{!}}-
 {{!}} {{{id}}} {{!}}{{!}} {{{city}}} {{!}}{{!}} {{{state}}} {{!}}{{!}} {{{loc}}} {{!}}{{!}} {{formatnum:{{{pop}}}}}
 }}
 |}

sudo apt install mongodb mongo-tools php-mongodb
composer require mongodb/mongodb
wget http://media.mongodb.org/zips.json
mongoimport -v --file=zips.json
sudo phpenmod mongodb
sudo service php7.4-fpm restart
cd ExternalData
composer require mongodb/mongodb
Add to LocalSettings.php:
$edgDBServerType['mongo']	= 'mongodb';
$edgDBName		['mongo']	= 'test';
В настройках вики неполная информация для БД с ID mongo. Отсутствует server.

Top ten zip codes in New York by population.

Id City Name Coordinates Population
  • Database type: MongoDB
  • Query type: aggregate
{{#get_db_data:
  db=mongo
  | from=zips
  | aggregate = [
   { "$group": { "_id": "$state", "totalPop": { "$sum": "$pop" } } },
   { "$match": { "totalPop": { "$gte": 5000000 } } }
 ]
  | order by = totalPop DESC
  | data=state=_id,pop=totalPop
 }}
 US states with population above five million.
 {| class="wikitable"
  ! State !! Population{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{state}}} {{!}}{{!}} {{formatnum:{{{pop}}}}}
 }}
 |}
В настройках вики неполная информация для БД с ID mongo. Отсутствует server.

US states with population above five million.

State Population
{{#get_db_data:
  db=mssql
  | from=Employees,Orders
  | join on=Employees.EmployeeID=Orders.EmployeeID
  | limit=10
  | data=title=TitleOfCourtesy,first=FirstName,last=LastName,position=Title,orders=COUNT(OrderID) AS NoOrders
  | group by=TitleOfCourtesy,FirstName,LastName,Title
  | order by=NoOrders DESC
 }}
 {| class="wikitable"
  ! Name !! Position !! Orders{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{title}}} {{{first}}} {{{last}}} {{!}}{{!}} {{{position}}} {{!}}{{!}} {{{orders}}}
 }}
 |}

Install MS SQL Server, install ODBC driver for Ubuntu, import NorthWind database, set the listening port to 5500, create login Test ang grant it databaseread role on NorthWind.

It is assumed that opt/microsoft/msodbcsql17/etc/odbcinst.ini has the entry:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1

Install and enable the odbc extension for PHP.

Add
$edgDBDriver	['mssql']	= 'ODBC Driver 17 for SQL Server';
$edgDBServer	['mssql']	= 'localhost,5500';
$edgDBServerType['mssql']	= 'odbc';
$edgDBName	['mssql']	= 'NorthWind';
$edgDBUser	['mssql']	= 'Test';
$edgDBPass	['mssql']	= 'Test0000';
to your LocalSettings.php.
Отсутствует библиотека odbc, необходимая для использования функции парсера '#get_db_data (type = odbc)' или функции Lua mw.ext.getExternalData.getDbData (type = odbc).
Name Position Orders
  • Database type: mySQL.
  • Prepared statement.
  • One per connection.
{{#get_db_data:
db = rfam2
| parameters=10116 <!-- this parameter is used to substitute question marks in prepared statement -->
| data=account=rfam_acc,sec=rfamseq_acc,start=seq_start,end=seq_end
}}
 {| class="wikitable"
  ! account !! sec !! start !! end{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{account}}} {{!}}{{!}} {{{sec}}} {{!}}{{!}} {{{start}}} {{!}}{{!}} {{{end}}}
 }}
 |}
Add
$edgDBServer	['rfam2']	= 'mysql-rfam-public.ebi.ac.uk:4497';
$edgDBServerType['rfam2']	= 'mysql';
$edgDBName	['rfam2']	= 'Rfam';
$edgDBUser	['rfam2']	= 'rfamro';
$edgDBPass	['rfam2']	= '';
$edgDBPrepared	['rfam2']	= <<<'SQL'
SELECT fr.rfam_acc, fr.rfamseq_acc, fr.seq_start, fr.seq_end
FROM full_region fr, rfamseq rf, taxonomy tx
WHERE rf.ncbi_id = tx.ncbi_id
AND fr.rfamseq_acc = rf.rfamseq_acc
AND tx.ncbi_id = ?
AND is_significant = 1 -- exclude low-scoring matches from the same clan
LIMIT 20;
SQL;
to your LocalSettings.php.

See https://docs.rfam.org/en/latest/database.html.

account sec start end
RF02143 AABR05000762.1 4020 3788
RF02151 AABR05005289.1 3544 3451
RF00604 AABR05007302.1 150415 150504
RF00133 AABR05007347.1 14415 14333
RF00108 AABR05008878.1 9310 9218
RF02116 AABR05016229.1 5765 5923
RF00457 AABR05020750.1 57609 57810
RF00598 AABR05022670.1 19047 19179
RF00286 AABR05027791.1 11759 11629
RF01877 AABR05033787.1 16536 16915
RF02255 AABR05042275.1 39958 39882
RF02256 AABR05042275.1 36961 36891
RF01200 AABR05046572.1 96751 96847
RF02110 AABR05051046.1 20835 20970
RF02090 AABR05061235.1 5092 4894
RF02091 AABR05061235.1 820 619
RF02175 AABR05062355.1 61332 61216
RF02039 AABR05069927.1 27030 27146
RF01234 AABR05079405.1 10776 10913
RF00071 AABR05088915.1 40283 40214
  • Database type: mySQL.
  • Prepared statement.
  • Several per connection.
{{#get_db_data: db = rfam3
 | query=sequences <!-- this parameter is used to choose one of the prepared statements -->
 | parameters=10116 <!-- this parameter is used to substitute question marks in prepared statement -->
 | data=account=rfam_acc,sec=rfamseq_acc,start=seq_start,end=seq_end
 }}
 {| class="wikitable"
  ! account !! sec !! start !! end{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{account}}} {{!}}{{!}} {{{sec}}} {{!}}{{!}} {{{start}}} {{!}}{{!}} {{{end}}}
 }}
 |}
Add
$edgDBServer	['rfam']	= 'mysql-rfam-public.ebi.ac.uk:4497';
$edgDBServerType['rfam3']	= 'mysql';
$edgDBName	['rfam3']	= 'Rfam';
$edgDBUser	['rfam3']	= 'rfamro';
$edgDBPass	['rfam3']	= '';
$edgDBPrepared	['rfam3']	= [
	'sequences' => <<<'SEQ'
SELECT fr.rfam_acc, fr.rfamseq_acc, fr.seq_start, fr.seq_end
FROM full_region fr, rfamseq rf, taxonomy tx
WHERE rf.ncbi_id = tx.ncbi_id
AND fr.rfamseq_acc = rf.rfamseq_acc
AND tx.ncbi_id = ?
AND is_significant = 1 -- exclude low-scoring matches from the same clan
SEQ,
	'sno' => <<<'SNO'
SELECT fr.rfam_acc, fr.rfamseq_acc, fr.seq_start, fr.seq_end, f.type
FROM full_region fr, rfamseq rf, taxonomy tx, family f
WHERE
rf.ncbi_id = tx.ncbi_id
AND f.rfam_acc = fr.rfam_acc
AND fr.rfamseq_acc = rf.rfamseq_acc
AND tx.tax_string LIKE ?
AND f.type LIKE '%snoRNA%'
AND is_significant = 1 -- exclude low-scoring matches from the same clan
SNO];
to your LocalSettings.php.

See https://docs.rfam.org/en/latest/database.html.

account sec start end
RF02143 AABR05000762.1 4020 3788
RF02151 AABR05005289.1 3544 3451
RF00604 AABR05007302.1 150415 150504
RF00133 AABR05007347.1 14415 14333
RF00108 AABR05008878.1 9310 9218
RF02116 AABR05016229.1 5765 5923
RF00457 AABR05020750.1 57609 57810
RF00598 AABR05022670.1 19047 19179
RF00286 AABR05027791.1 11759 11629
RF01877 AABR05033787.1 16536 16915
RF02255 AABR05042275.1 39958 39882
RF02256 AABR05042275.1 36961 36891
RF01200 AABR05046572.1 96751 96847
RF02110 AABR05051046.1 20835 20970
RF02090 AABR05061235.1 5092 4894
RF02091 AABR05061235.1 820 619
RF02175 AABR05062355.1 61332 61216
RF02039 AABR05069927.1 27030 27146
RF01234 AABR05079405.1 10776 10913
RF00071 AABR05088915.1 40283 40214
  • Database type: Microsoft SQL Server
  • Prepared statement.
{{#get_db_data:
  db=odbc
  | parameters=WA
  | data=title=TitleOfCourtesy,first=FirstName,last=LastName,position=Title,city=City,orders=COUNT(OrderID) AS NoOrders
 }}
 {| class="wikitable"
  ! Name !! Position !! Orders !! City{{#for_external_table:<nowiki/>
  {{!}}-
  {{!}} {{{title}}} {{{first}}} {{{last}}} {{!}}{{!}} {{{position}}} {{!}}{{!}} {{{orders}}} {{!}}{{!}} {{{city}}}
 }}
 |}

Install MS SQL Server, install ODBC driver for Ubuntu, import NorthWind database, set the listening port to 5500, create login Test ang grant it databaseread role on NorthWind.

It is assumed that opt/microsoft/msodbcsql17/etc/odbcinst.ini has the entry:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.5.so.2.1

Install and enable the odbc extension for PHP.

Add
$edgDBDriver	['odbc']	= 'ODBC Driver 17 for SQL Server';
$edgDBServer	['odbc']	= 'localhost,5500';
$edgDBServerType['odbc']	= 'odbc';
$edgDBName		['odbc']	= 'NorthWind';
$edgDBUser		['odbc']	= 'Test';
$edgDBPass		['odbc']	= 'Test0000';
$edgDBPrepared  ['odbc']    = <<<'ODBC'
SELECT TOP 10 TitleOfCourtesy, FirstName, LastName, Title, City, COUNT(OrderID) AS NoOrders
FROM Employees LEFT JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID
WHERE Employees.Region = ?
GROUP BY TitleOfCourtesy, FirstName, LastName, Title, City
ORDER BY NoOrders DESC;
ODBC;
to your LocalSettings.php.

Отсутствует библиотека odbc, необходимая для использования функции парсера '#get_db_data (type = odbc)' или функции Lua mw.ext.getExternalData.getDbData (type = odbc).

Name Position Orders City
{{#get_program_data:}}
{{#get_program_data:
    program = man
  | topic = ls
  | data = manual=__text
  | format = text
}}<blockquote>{{#external_value:manual}}</blockquote>

Add
// man
$edgExeCommand      ['man']     = 'man $topic$';
$edgExeParams       ['man']     = ['topic'];
to your LocalSettings.php.

LS(1) User Commands LS(1)

NAME ls - list directory contents

SYNOPSIS ls [OPTION]... [FILE]...

DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐ fied.

Mandatory arguments to long options are mandatory for short options too.

-a, --all do not ignore entries starting with .

-A, --almost-all do not list implied . and ..

--author with -l, print the author of each file

-b, --escape print C-style escapes for nongraphic characters

--block-size=SIZE with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below

-B, --ignore-backups do not list implied entries ending with ~

-c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first

-C list entries by columns

--color[=WHEN] colorize the output; WHEN can be 'always' (default if omitted), 'auto', or 'never'; more info below

-d, --directory list directories themselves, not their contents

-D, --dired generate output designed for Emacs' dired mode

-f do not sort, enable -aU, disable -ls --color

-F, --classify append indicator (one of */=>@|) to entries

--file-type likewise, except do not append '*'

--format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C

--full-time like -l --time-style=full-iso

-g like -l, but do not list owner

--group-directories-first group directories before files;

can be augmented with a --sort option, but any use of --sort=none (-U) disables grouping

-G, --no-group in a long listing, don't print group names

-h, --human-readable with -l and -s, print sizes like 1K 234M 2G etc.

--si likewise, but use powers of 1000 not 1024

-H, --dereference-command-line follow symbolic links listed on the command line

--dereference-command-line-symlink-to-dir follow each command line symbolic link

that points to a directory

--hide=PATTERN do not list implied entries matching shell PATTERN (overridden by -a or -A)

--hyperlink[=WHEN] hyperlink file names; WHEN can be 'always' (default if omitted), 'auto', or 'never'

--indicator-style=WORD append indicator with style WORD to entry names: none (default), slash (-p), file-type (--file-type), classify (-F)

-i, --inode print the index number of each file

-I, --ignore=PATTERN do not list implied entries matching shell PATTERN

-k, --kibibytes default to 1024-byte blocks for disk usage; used only with -s and per directory totals

-l use a long listing format

-L, --dereference when showing file information for a symbolic link, show informa‐ tion for the file the link references rather than for the link itself

-m fill width with a comma separated list of entries

-n, --numeric-uid-gid like -l, but list numeric user and group IDs

-N, --literal print entry names without quoting

-o like -l, but do not list group information

-p, --indicator-style=slash append / indicator to directories

-q, --hide-control-chars print ? instead of nongraphic characters

--show-control-chars show nongraphic characters as-is (the default, unless program is 'ls' and output is a terminal)

-Q, --quote-name enclose entry names in double quotes

--quoting-style=WORD use quoting style WORD for entry names: literal, locale, shell, shell-always, shell-escape, shell-escape-always, c, escape (overrides QUOTING_STYLE environment variable)

-r, --reverse reverse order while sorting

-R, --recursive list subdirectories recursively

-s, --size print the allocated size of each file, in blocks

-S sort by file size, largest first

--sort=WORD sort by WORD instead of name: none (-U), size (-S), time (-t), version (-v), extension (-X)

--time=WORD with -l, show time as WORD instead of default modification time: atime or access or use (-u); ctime or status (-c); also use specified time as sort key if --sort=time (newest first)

--time-style=TIME_STYLE time/date format with -l; see TIME_STYLE below

-t sort by modification time, newest first

-T, --tabsize=COLS assume tab stops at each COLS instead of 8

-u with -lt: sort by, and show, access time; with -l: show access time and sort by name; otherwise: sort by access time, newest first

-U do not sort; list entries in directory order

-v natural sort of (version) numbers within text

-w, --width=COLS set output width to COLS. 0 means no limit

-x list entries by lines instead of by columns

-X sort alphabetically by entry extension

-Z, --context print any security context of each file

-1 list one file per line. Avoid '\n' with -q or -b

--help display this help and exit

--version output version information and exit

The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).

The TIME_STYLE argument can be full-iso, long-iso, iso, locale, or +FORMAT. FORMAT is interpreted like in date(1). If FORMAT is FOR‐ MAT1<newline>FORMAT2, then FORMAT1 applies to non-recent files and FOR‐ MAT2 to recent files. TIME_STYLE prefixed with 'posix-' takes effect only outside the POSIX locale. Also the TIME_STYLE environment vari‐ able sets the default style to use.

Using color to distinguish file types is disabled both by default and with --color=never. With --color=auto, ls emits color codes only when standard output is connected to a terminal. The LS_COLORS environment variable can change the settings. Use the dircolors command to set it.

Exit status: 0 if OK,

1 if minor problems (e.g., cannot access subdirectory),

2 if serious trouble (e.g., cannot access command-line argument).

AUTHOR Written by Richard M. Stallman and David MacKenzie.

REPORTING BUGS GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Report ls translation bugs to <https://translationproject.org/team/>

COPYRIGHT Copyright © 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO Full documentation at: <https://www.gnu.org/software/coreutils/ls> or available locally via: info '(coreutils) ls invocation'

GNU coreutils 8.30 September 2019 LS(1)

  • Tag emulation mode.
  • Program: GraphViz
  • dot layout
<graphviz layout="dot">digraph Example1{
    bgcolor = "transparent";
    label = "Жизнь";
    splines = ortho;
    subgraph cluster_earthly {
        bgcolor = "lightgreen";
        label = "Земная";
        Зачатие;
        [[Аборт]];
        Рождение;
        subgraph cluster_legal {
            node [shape = rect];
            bgcolor = "green";
            label = "Юридическая";
            [[Юность]];
            Зрелость;
            Старость;
        }
        {rank = same; Аборт; Рождение}
        [[Смерть]];
    }
    subgraph cluster_heavenly {
        node [shape = rect];
        bgcolor = "lightyellow";
        label = "Загробная";
        labelloc = "b"
        rank = same;
        [[Ад]];
        [[Рай]];
    }
    Зачатие->Рождение->Юность->Зрелость->Старость->Смерть;
    Зачатие->Аборт->Смерть;
    Юность->Смерть;
    Зрелость->Смерть;
    Смерть->Ад;
    Смерть->Рай;
 }</graphviz>
Add
// GraphViz:
$edgExeName         ['graphviz']     = 'GraphViz';
$edgExeUrl          ['graphviz']     = 'https://graphviz.org/';
$edgExeCommand      ['graphviz']     = 'dot -K$layout$ -Tsvg';
$edgExeParams       ['graphviz']     = ['layout' => 'dot'];
$edgExeInput        ['graphviz']     = 'dot';
$edgExePreprocess   ['graphviz']     = 'EDConnectorExe::edfWikilinks4dot';
$edgExePostprocess  ['graphviz']     = 'EDConnectorExe::edfExtractSVG';
to your LocalSettings.php.

$edgExeTags ['graphviz'] = 'graphviz';

Example1 Жизнь cluster_earthly Земная cluster_legal Юридическая cluster_heavenly Загробная Зачатие Зачатие Аборт Аборт Зачатие->Аборт Рождение Рождение Зачатие->Рождение Смерть Смерть Аборт->Смерть Юность Юность Рождение->Юность Зрелость Зрелость Юность->Зрелость Юность->Смерть Старость Старость Зрелость->Старость Зрелость->Смерть Старость->Смерть Ад Ад Смерть->Ад Рай Рай Смерть->Рай

<plantuml>@startuml
 participant User
 User -> A: DoWork
 activate A #FFBBBB
 A -> A: Internal call
 activate A #DarkSalmon
 A -> B: << createRequest >>
 activate B
 B --> A: RequestCreated
 deactivate B
 deactivate A
 A -> User: Done
 deactivate A
 @enduml
 </plantuml>

Run sudo wget https://downloads.sourceforge.net/project/plantuml/plantuml.jar -P /usr/share/java

Add
// PlantUML
// sudo wget https://downloads.sourceforge.net/project/plantuml/plantuml.jar -P /usr/share/java
$edgExeName             ['plantuml']    = 'PlantUML';
$edgExeUrl              ['plantuml']    = 'https://plantuml.com';
$edgExeVersionCommand   ['plantuml']    = 'java -jar /usr/share/java/plantuml.jar -version';
$edgExeCommand          ['plantuml']    = 'java -jar /usr/share/java/plantuml.jar -tsvg -charset UTF-8 -p';
$edgExeLimits           ['plantuml']    = [ 'memory' => 0 ];
$edgExeInput            ['plantuml']    = 'uml';
$edgExePreprocess       ['plantuml']    = 'EDConnectorExe::wikilinks4dot';
$edgExePostprocess      ['plantuml']    = 'EDConnectorExe::innerXML';
to your LocalSettings.php.

$edgExeTags ['plantuml'] = 'graphviz';

UserUserAABBDoWorkInternal call<< createRequest >>RequestCreatedDone

{{#get_file_data:}} + {{#get_program_data:}}

Диаграмма классов

  • обход директории
  • вызов dot
{{#get_file_data: directory = classes
  | file name = *.php
  | format = text
  | regex = /^\s*(?<abstract>abstract)?\s*class\s+(?<class>\w+)(\s+extends\s*(?<extends>\w+))?/m
  | data = file=__file,abstract=abstract,class=class,base=extends
 }}{{#tag:graphviz|digraph "Иерархия классов"{
        rankdir {{=}} RL;
        node [shape {{=}} rect, fontsize = 8];
 {{#display_external_table: template = Класс в диаграмме
  | data = class=class,base=base,abstract=abstract
 }}
 }|layout=dot}}
Add
// GraphViz:
$edgExeName         ['graphviz']     = 'GraphViz';
$edgExeUrl          ['graphviz']     = 'https://graphviz.org/';
$edgExeCommand      ['graphviz']     = 'dot -K$layout$ -Tsvg';
$edgExeParams       ['graphviz']     = ['layout' => 'dot'];
$edgExeInput        ['graphviz']     = 'dot';
$edgExePreprocess   ['graphviz']     = 'EDConnectorExe::edfWikilinks4dot';
$edgExePostprocess  ['graphviz']     = 'EDConnectorExe::edfExtractSVG';
$edgExeTags         ['graphviz']     = 'graphviz';

// Class hierarchy. // {{#get_dir_data:}} + {{#get_program_data:}}
$edgDirectoryPath   ['classes'] = "$wgExtensionDirectory/ExternalData/includes";
to LocalSettings.php

Иерархия классов EDParserFunctions EDParserFunctions EDScribunto EDScribunto Scribunto_LuaLibraryBase Scribunto_LuaLibraryBase EDScribunto->Scribunto_LuaLibraryBase EDConnectorPreparedOdbc EDConnectorPreparedOdbc EDConnectorPrepared EDConnectorPrepared EDConnectorPreparedOdbc->EDConnectorPrepared EDConnectorDb EDConnectorDb EDConnectorPrepared->EDConnectorDb EDConnectorDirectory EDConnectorDirectory EDConnectorPath EDConnectorPath EDConnectorDirectory->EDConnectorPath EDConnectorBase EDConnectorBase EDConnectorPath->EDConnectorBase EDConnectorPreparedPostgresql EDConnectorPreparedPostgresql EDConnectorPreparedPostgresql->EDConnectorPrepared EDConnectorFile EDConnectorFile EDConnectorFile->EDConnectorPath EDConnectorMongodb5 EDConnectorMongodb5 EDConnectorMongodb EDConnectorMongodb EDConnectorMongodb5->EDConnectorMongodb EDConnectorComposed EDConnectorComposed EDConnectorMongodb->EDConnectorComposed EDConnectorWeb EDConnectorWeb EDConnectorHttp EDConnectorHttp EDConnectorWeb->EDConnectorHttp EDConnectorHttp->EDConnectorBase EDConnectorDb->EDConnectorBase EDConnectorSoap EDConnectorSoap EDConnectorSoap->EDConnectorHttp EDConnectorRdbms EDConnectorRdbms EDConnectorRdbms->EDConnectorComposed EDConnectorComposed->EDConnectorDb EDConnectorExe EDConnectorExe EDConnectorExe->EDConnectorBase EDConnectorSqlite EDConnectorSqlite EDConnectorSqlite->EDConnectorRdbms EDConnectorSql EDConnectorSql EDConnectorSql->EDConnectorRdbms EDConnectorMongodb7 EDConnectorMongodb7 EDConnectorMongodb7->EDConnectorMongodb EDConnectorLdap EDConnectorLdap EDConnectorLdap->EDConnectorBase EDConnectorDirectoryWalker EDConnectorDirectoryWalker EDConnectorDirectoryWalker->EDConnectorDirectory EDConnectorDummy EDConnectorDummy EDConnectorDummy->EDConnectorBase EDConnectorInline EDConnectorInline EDConnectorInline->EDConnectorBase EDConnectorOdbcMssql EDConnectorOdbcMssql EDConnectorOdbc EDConnectorOdbc EDConnectorOdbcMssql->EDConnectorOdbc EDConnectorOdbc->EDConnectorComposed EDConnectorPostgresql EDConnectorPostgresql EDConnectorPostgresql->EDConnectorRdbms EDConnectorPreparedMysql EDConnectorPreparedMysql EDConnectorPreparedMysql->EDConnectorPrepared EDReparseJob EDReparseJob Job Job EDReparseJob->Job EDArraySlice EDArraySlice EDParserXMLwithXPath EDParserXMLwithXPath EDParserXML EDParserXML EDParserXMLwithXPath->EDParserXML EDParserBase EDParserBase EDParserXML->EDParserBase EDParserXMLsimple EDParserXMLsimple EDParserXMLsimple->EDParserXML EDParserAuto EDParserAuto EDParserAuto->EDParserBase EDParserZip EDParserZip EDParserArchive EDParserArchive EDParserZip->EDParserArchive EDParserArchive->EDParserBase EDParserText EDParserText EDParserText->EDParserBase EDParserHTMLwithXPath EDParserHTMLwithXPath EDParserHTMLwithXPath->EDParserXMLwithXPath EDParserYAMLwithJSONPath EDParserYAMLwithJSONPath EDParserJSONwithJSONPath EDParserJSONwithJSONPath EDParserYAMLwithJSONPath->EDParserJSONwithJSONPath EDParserJSON EDParserJSON EDParserJSONwithJSONPath->EDParserJSON EDParserPhar EDParserPhar EDParserPhar->EDParserArchive EDParserJSONsimple EDParserJSONsimple EDParserJSONsimple->EDParserJSON EDParserJSON->EDParserBase EDParserHTMLwithCSS EDParserHTMLwithCSS EDParserHTMLwithCSS->EDParserHTMLwithXPath EDParserCSV EDParserCSV EDParserCSV->EDParserBase EDParserGFF EDParserGFF EDParserGFF->EDParserBase EDParserException EDParserException Exception Exception EDParserException->Exception EDParserIni EDParserIni EDParserIni->EDParserBase EDParserYAMLsimple EDParserYAMLsimple EDParserYAMLsimple->EDParserJSONsimple EDParserRar EDParserRar EDParserRar->EDParserArchive EDParserRegex EDParserRegex EDParserRegex->EDParserBase EDJsonObject EDJsonObject ExternalDataHooks ExternalDataHooks EDGetData EDGetData SpecialPage SpecialPage EDGetData->SpecialPage

<gnuplot>set dummy u, v
set key bmargin center horizontal Right noreverse enhanced autotitle nobox
set parametric
set view 45, 50, 1, 1
set isosamples 50, 10
set hidden3d back offset 1 trianglepattern 3 undefined 1 altdiagonal bentover
set style data lines
set ztics  norangelimit -1.00000,0.25,1.00000
set title "Parametric Sphere" 
set urange [ -1.57080 : 1.57080 ] noreverse nowriteback
set vrange [ 0.00000 : 6.28319 ] noreverse nowriteback
set xrange [ * : * ] noreverse writeback
set x2range [ * : * ] noreverse writeback
set yrange [ * : * ] noreverse writeback
set y2range [ * : * ] noreverse writeback
set zrange [ * : * ] noreverse writeback
set cbrange [ * : * ] noreverse writeback
set rrange [ * : * ] noreverse writeback
set colorbox vertical origin screen 0.9, 0.2 size screen 0.05, 0.6 front  noinvert bdefault
VoxelDistance = 9.00500479207635e-308
#NO_ANIMATION = 1
splot cos(u)*cos(v),cos(u)*sin(v),sin(u)</gnuplot>

Run sudo apt install gnuplot and cd /var/www/js && mkdir gnuplot && cd gnuplot && wget http://gnuplot.sourceforge.net/demo_svg_5.4/gnuplot_svg.js

Add
// gnuplot
$edgExeName             ['gnuplot']    = 'gnuplot';
$edgExeUrl              ['gnuplot']    = 'http://www.gnuplot.info/';
$edgExeVersionCommand   ['gnuplot']    = 'gnuplot -V';
$edgExeCommand          ['gnuplot']    = ['gnuplot', '-e', 'set terminal svg size $width$,$height$ dynamic enhanced '
	. 'font \'arial,$size$\' mouse jsdir \'/js/gnuplot\' name \'$name$\' $heads$ dashlength 1.0', '-'];
$edgExeParams           ['gnuplot']    = [ 'width' => 600, 'height' => 400, 'size' => 10, 'name' => 'gnuplot', 'heads' => 'butt' ];
$edgExeParamFilters     ['gnuplot']    = [ 'width' => '/^\d+$/', 'height' => '/^\d+$/', 'size' => '/^\d+$/', 'heads' => '/^rounded|butt|square$/' ];
$edgExeInput            ['gnuplot']    = 'script';
$edgExePostprocess      ['gnuplot']    = 'EDConnectorExe::innerXML';
to your LocalSettings.php.

$edgExeTags ['gnuplot'] = 'gnuplot';

gnuplot Produced by GNUPLOT 5.2 patchlevel 8 Parametric Sphere gnuplot_plot_1 gnuplot_plot_2 cos(u)*cos(v),cos(u)*sin(v),sin(u) -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1

See also Module:Test/ED.