畫支持與MediaWiki集成:在Wiki頁面嵌入動(dòng)態(tài)流程圖)
Graph-Easy動(dòng)畫支持與MediaWiki集成在Wiki頁面嵌入動(dòng)態(tài)流程圖【免費(fèi)下載鏈接】Graph-EasyConvert or render graphs (as ASCII, HTML, SVG or via Graphviz)項(xiàng)目地址: https://gitcode.com/gh_mirrors/gr/Graph-EasyGraph-Easy是一款 Perl 圖渲染引擎能將簡單的文本描述轉(zhuǎn)換為 HTML、SVG、ASCII 等多種格式并通過內(nèi)置的output屬性與MediaWiki深度集成讓 Wiki 頁面直接展示可交互的動(dòng)態(tài)流程圖。本文帶你快速完成從零到在 Wiki 里畫出流程圖的全過程。 Graph-Easy 能做什么Graph-Easy 用極簡語法描述圖結(jié)構(gòu)例如[ Bonn ] - [ Berlin ] [ Berlin ] - [ Frankfurt ] { border: 1px dotted black; } [ Frankfurt ] - [ Dresden ]經(jīng)過自動(dòng)布局引擎處理后可輸出為HTML 表格 CSS、SVG 矢量圖、ASCII 字符畫或Graphviz DOT四種形式。其中 HTML 和 SVG 輸出天然運(yùn)行在瀏覽器中支持 CSS 懸停、過渡、縮放等動(dòng)態(tài)效果——這就是動(dòng)態(tài)流程圖的核心來源。核心渲染邏輯位于 lib/Graph/Easy.pmoutput()方法會(huì)根據(jù)圖中聲明的格式自動(dòng)調(diào)用對應(yīng)的渲染器。 MediaWiki 集成output屬性是關(guān)鍵Graph-Easy 為 MediaWiki 環(huán)境預(yù)留了一個(gè)專用屬性output它在圖定義中聲明期望的輸出格式graph { output: html; } [ 需求分析 ] - [ 架構(gòu)設(shè)計(jì) ] - [ 編碼實(shí)現(xiàn) ]在 lib/Graph/Easy/Attributes.pm 中可以看到output支持以下格式格式值說明適用場景html生成 HTML 表格 CSSWiki 頁面內(nèi)嵌推薦svg生成 SVG 矢量圖需要無損縮放時(shí)ascii字符畫終端 / 純文本graphvizDOT 格式交給dot二次渲染boxart增強(qiáng)字符畫終端美化debug調(diào)試信息開發(fā)排錯(cuò)MediaWiki 端的mediawiki-graph擴(kuò)展在解析模板時(shí)會(huì)讀取該屬性并調(diào)用Graph::Easy::output()將結(jié)果直接插入頁面——無需手動(dòng)導(dǎo)出圖片。 三步在 Wiki 中嵌入動(dòng)態(tài)流程圖第 1 步安裝 Graph-Easygit clone https://gitcode.com/gh_mirrors/gr/Graph-Easy cd Graph-Easy perl Makefile.PL make make install第 2 步編寫圖文本創(chuàng)建一個(gè).txt文件使用 Graph-Easy 文本語法graph { label: 部署流水線; output: html; node { shape: rounded; } edge { arrowstyle: filled; } } [ 代碼提交 ] -- { border: 1px solid #4CAF50; } [ CI 構(gòu)建 ] [ CI 構(gòu)建 ] -- [ 自動(dòng)化測試 ] [ 自動(dòng)化測試 ] -- [ 部署到生產(chǎn) ]第 3 步渲染并嵌入 Wiki方式 A命令行直接生成 HTML 片段perl -Ilib examples/as_html my_graph.txt將輸出的 HTML 代碼粘貼到 Wiki 頁面的pre或源碼模式即可。完整示例可參考 examples/as_html 腳本。方式 B通過 MediaWiki 模板推薦在 Wiki 頁面中使用模板調(diào)用{{#invoke:graph-easy|render| [ 代碼提交 ] -- [ CI 構(gòu)建 ] [ CI 構(gòu)建 ] -- [ 部署到生產(chǎn) ] }}模板內(nèi)部調(diào)用Graph::Easy::Parser解析文本再經(jīng)output()方法按output屬性渲染。解析器實(shí)現(xiàn)在 lib/Graph/Easy/Parser.pm。 讓流程圖動(dòng)起來CSS 與 SVG 技巧HTML 輸出本質(zhì)是tablestyle組合你可以在此基礎(chǔ)上追加 CSS 動(dòng)畫table.graph td { transition: background-color 0.3s, transform 0.2s; } table.graph td:hover { background-color: #e3f2fd; transform: scale(1.05); }SVG 輸出則支持animate和animateTransform等原生 SMIL 動(dòng)畫標(biāo)簽可實(shí)現(xiàn)箭頭流動(dòng)、節(jié)點(diǎn)脈沖等效果。SVG 渲染器位于 lib/Graph/Easy/As_graphviz.pm經(jīng) Graphviz 后端或直接通過as_svg方法生成。提示examples/as_svg演示了完整的 SVG 輸出流程可作為動(dòng)畫改造的起點(diǎn)。? 進(jìn)階用 wikicrawl 從 Wiki 自動(dòng)生成關(guān)系圖項(xiàng)目附帶了一個(gè)極具創(chuàng)意的示例腳本 examples/wikicrawl.pl它能抓取指定 Wikipedia 頁面及其鏈接將文章 → 被鏈接文章關(guān)系轉(zhuǎn)化為 Graph-Easy 圖按鏈接深度著色越深層顏色越暖輸出.txt圖描述 .png渲染結(jié)果perl examples/wikicrawl.pl --langde --rootBerlin --maxdepth3這展示了 Graph-Easy 在從 Wiki 提取圖 → 渲染回 Wiki閉環(huán)中的完整能力。 關(guān)鍵文件速查文件作用lib/Graph/Easy.pm核心模塊output()總?cè)肟趌ib/Graph/Easy/Attributes.pmoutput屬性定義與文檔lib/Graph/Easy/Parser.pm文本語法解析器examples/as_htmlHTML 輸出示例腳本examples/as_svgSVG 輸出示例腳本examples/wikicrawl.plWiki 爬取生成圖examples/html.pl完整 HTML 頁面生成示例README項(xiàng)目總覽與安裝說明? 常見問題QWiki 頁面里 HTML 被過濾了怎么辦AMediaWiki 默認(rèn)會(huì)轉(zhuǎn)義table等標(biāo)簽。需在LocalSettings.php中注冊mediawiki-graph擴(kuò)展或在模板層通過wfLoadExtension允許內(nèi)聯(lián) HTML。Q節(jié)點(diǎn)太多導(dǎo)致布局緩慢A在graph {}中設(shè)置timeout: 120;限制布局時(shí)間或減少邊數(shù)量。布局引擎在 lib/Graph/Easy/Layout/ 下提供 Grid、Force、Path 等多種策略可選。Q能否輸出 Boxart 風(fēng)格的字符動(dòng)畫A可以。output: boxart;生成帶 Unicode 框線字符的增強(qiáng) ASCII 圖配合 Wiki 的pre標(biāo)簽展示適合純文本環(huán)境。Graph-Easy 讓畫流程圖這件事從打開繪圖軟件退化為寫一行文本。而output屬性 MediaWiki 模板的組合則讓這份文本直接在 Wiki 頁面中活起來——無需圖片文件無需額外依賴一條命令一個(gè)模板流程圖就嵌好了?!久赓M(fèi)下載鏈接】Graph-EasyConvert or render graphs (as ASCII, HTML, SVG or via Graphviz)項(xiàng)目地址: https://gitcode.com/gh_mirrors/gr/Graph-Easy創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考