better edit

This commit is contained in:
Andy Bunce 2017-06-01 12:42:13 +01:00
parent f3aeff3c1c
commit ee22286a95
12 changed files with 475 additions and 124 deletions

View file

@ -7,23 +7,23 @@ declare namespace c="http://www.w3.org/ns/xproc-step";
declare namespace Document="java:ch.digitalfondue.jfiveparse.Document";
declare namespace Element="java:ch.digitalfondue.jfiveparse.Element";
declare namespace Node="java:ch.digitalfondue.jfiveparse.Node";
declare namespace list="java:java.util.ArrayList";
declare namespace functx = "http://www.functx.com";
declare variable $SRC:="C:/Users/andy/git/vue-poc/src/vue-poc/templates/";
declare variable $CORE:="C:/Users/andy/git/vue-poc/src/vue-poc/static/core.js";
declare variable $DEST:="C:/Users/andy/git/vue-poc/src/vue-poc/static/app-gen.js";
(:~
: generate javascript vue call from vue file
: generate javascript vue call from vue files in source folder and core.js
:)
declare function local:process($doc)
{
let $tempNode:= Document:getElementsByTagName($doc,"template")=>list:get(xs:int(0))
let $tempNode:= html5:getElementFirstByTagName($doc,"template")
let $template:= Node:getInnerHTML($tempNode)
let $id := Element:getAttribute($tempNode,"id")
let $name:=functx:capitalize-first($id)=>trace("ID")
let $script:= Document:getElementsByTagName($doc,"script")=>list:get(xs:int(0))
let $script:= html5:getElementFirstByTagName($doc,"script")
let $tempfix:=replace($template,"\$","\\\$")
let $s:= Node:getInnerHTML($script)=>replace('[''"]#' || $id || '[''"]','`' ||$tempfix ||'`')
@ -38,7 +38,9 @@ declare function functx:capitalize-first
{
concat(upper-case(substring($arg,1,1)), substring($arg,2))
};
let $files:= fw:directory-list($SRC,map{"include-filter":".*\.vue"})
//c:file/@name/resolve-uri(.,base-uri(.))
//c:file/@name/resolve-uri(.,base-uri(.))
let $docs:=$files!(fetch:text(.)=>html5:doc()=>local:process())
return file:write-text($DEST,string-join(($docs,fetch:text($CORE))))
let $comment:="// generated " || current-dateTime() || "

"
return file:write-text($DEST,string-join(($comment,$docs,fetch:text($CORE))))

View file

@ -1,3 +1,5 @@
module namespace html5="text.html5";
declare namespace Document="java:ch.digitalfondue.jfiveparse.Document";
declare namespace Element="java:ch.digitalfondue.jfiveparse.Element";
@ -6,14 +8,18 @@ declare namespace Parser="java:ch.digitalfondue.jfiveparse.Parser";
declare namespace Selector="java:ch.digitalfondue.jfiveparse.Selector";
declare namespace list="java:java.util.ArrayList";
(:~
: parse html text string into jfiveparse.Document
:)
declare function html5:doc($text as xs:string)
{
let $p:=Parser:new()
return Parser:parse($p,$text)
};
(:~
: apply function $fn to each jfiveparse.Node
:)
declare function html5:for-each($nodes,$fn as function(*))
{
for $index in 0 to list:size($nodes)-1
@ -21,6 +27,18 @@ declare function html5:for-each($nodes,$fn as function(*))
return $fn($a)
};
(:~
: first element with given name
:)
declare function html5:getElementFirstByTagName($doc,$tag as xs:string)
{
Document:getElementsByTagName($doc,$tag)
=>list:get(xs:int(0))
};
(:~
: @return matcher for given element and attribute with value
:)
declare function html5:selector()
{
Selector:select()