[task] Vue transformation
Description
vuet is vue transformer task that allow to:
- process vue js file(s) using freemarker templates
Vuet task parameters
Attribute | Description | Value | Required |
---|---|---|---|
file | input file | .vue | no |
todir | output dir | yes | |
overwrite | overwrite output file | true by default | no |
Element | Description | Value | Required |
---|---|---|---|
fileset | fileset element | no | |
templateset | templates | yes |
Examples
Process vue file
bidjim
- input file
<?xml version="1.0"?>
<bidji>
<entity name="Menu">
<property name="Menu1" type="Icon1"/>
<property name="Menu2" type="Icon2"/>
<property name="Menu3" type="Icon3"/>
</entity>
</bidji>
build.xml
- ant file:
<project name="bidji-vuet" xmlns:bj="antlib:org.bidji.taskdefs">
<target name="fileset" description="gen fileset to vue(s)">
<bj:vuet todir="gen" overwrite="true"><!-- todir="dev" to rewrite source files -->
<fileset dir="datas">
<include name="*.bidjim" />
</fileset>
<templateset dir="dev">
<include name="js-vue/src/components/*.vue" />
</templateset>
</bj:vuet>
</target>
</project>
vue
- vue js file
<!--VUET(MENU)-->
<template>
<nav>
<ul>
<li v-for="item in navigation" :key="item.name">
<a :href="item.href" >{{ item.name }}</a>
</li>
</ul>
</nav>
</template>
<!--VUET_GEN-->
<script setup lang="ts">
import { , Icon1, Icon2, Icon3 } from '@heroicons/vue/24/outline'
const navigation = [
{ name: 'Menu1', href: '#', icon: Icon1, current: true },
{ name: 'Menu2', href: '#', icon: Icon2, current: false },
{ name: 'Menu3', href: '#', icon: Icon3, current: false },
]
</script>
<!--/VUET_GEN-->
<!--#VUET
[#assign entity = bidji.entity]
<script setup lang="ts">
import { [#foreach property in entity.property], ${property.@type}[/#foreach] } from '@heroicons/vue/24/outline'
const navigation = [
[#foreach property in entity.property]
{ name: '${property.@name}', href: '#', icon: ${property.@type}, current: ${property?is_first?c} },
[/#foreach]
]
</script>
/#VUET-->
<!--VUET_SRC-->