diff options
Diffstat (limited to 'v_windows/v/old/examples/templates')
-rw-r--r-- | v_windows/v/old/examples/templates/data.json | 197 | ||||
-rw-r--r-- | v_windows/v/old/examples/templates/readme.md | 14 | ||||
-rw-r--r-- | v_windows/v/old/examples/templates/template.md | 16 | ||||
-rw-r--r-- | v_windows/v/old/examples/templates/templates.v | 196 |
4 files changed, 423 insertions, 0 deletions
diff --git a/v_windows/v/old/examples/templates/data.json b/v_windows/v/old/examples/templates/data.json new file mode 100644 index 0000000..a6765cf --- /dev/null +++ b/v_windows/v/old/examples/templates/data.json @@ -0,0 +1,197 @@ +[ + { + "name": "www_threefold_io", + "url": "https://github.com/threefoldfoundation/www_threefold_io", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "tf", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_io", + "domains": [ + "www.threefold.io", + "www.threefold.me" + ], + "descr": "is our entry point for everyone, redirect to the detailed websites underneith." + }, + { + "name": "www_threefold_cloud", + "url": "https://github.com/threefoldfoundation/www_threefold_cloud", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "cloud", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_cloud", + "domains": [ + "cloud.threefold.io", + "cloud.threefold.me" + ], + "descr": "for people looking to deploy solutions on top of a cloud, alternative to e.g. digital ocean" + }, + { + "name": "www_threefold_farming", + "url": "https://github.com/threefoldfoundation/www_threefold_farming", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "farming", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_farming", + "domains": [ + "farming.threefold.io", + "farming.threefold.me" + ], + "descr": "crypto & minining enthusiasts, be the internet, know about farming & tokens." + }, + { + "name": "www_threefold_twin", + "url": "https://github.com/threefoldfoundation/www_threefold_twin", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "twin", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_twin", + "domains": [ + "twin.threefold.io", + "twin.threefold.me" + ], + "descr": "you digital life" + }, + { + "name": "www_threefold_marketplace", + "url": "https://github.com/threefoldfoundation/www_threefold_marketplace", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "marketplace", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_marketplace", + "domains": [ + "now.threefold.io", + "marketplace.threefold.io", + "now.threefold.me", + "marketplace.threefold.me" + ], + "descr": "apps for community builders, runs on top of evdc" + }, + { + "name": "www_conscious_internet", + "url": "https://github.com/threefoldfoundation/www_conscious_internet", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "conscious_internet", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_conscious_internet", + "domains": [ + "www.consciousinternet.org", + "eco.threefold.io", + "community.threefold.io", + "eco.threefold.me", + "community.threefold.me" + ], + "descr": "community around threefold, partners, friends, ..." + }, + { + "name": "www_threefold_tech", + "url": "https://github.com/threefoldtech/www_threefold_tech", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "tech", + "path_code": "/Users/despiegk/codewww/github/threefoldtech/www_threefold_tech", + "domains": [ + "www.threefold.tech" + ], + "descr": "cyberpandemic, use the tech to build your own solutions with, certification for TFGrid" + }, + { + "name": "www_examplesite", + "url": "https://github.com/threefoldfoundation/www_examplesite", + "branch": "default", + "pull": false, + "cat": 2, + "alias": "example", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/www_examplesite", + "domains": [ + "example.threefold.io" + ], + "descr": "" + }, + { + "name": "info_threefold", + "url": "https://github.com/threefoldfoundation/info_foundation_archive", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "threefold", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_foundation_archive", + "domains": [ + "info.threefold.io" + ], + "descr": "wiki for foundation, collaborate, what if farmings, tokens" + }, + { + "name": "info_sdk", + "url": "https://github.com/threefoldfoundation/info_sdk", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "sdk", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_sdk", + "domains": [ + "sdk.threefold.io", + "sdk_info.threefold.io" + ], + "descr": "for IAC, devops, how to do Infrastruture As Code, 3bot, Ansible, tfgrid-sdk, ..." + }, + { + "name": "info_legal", + "url": "https://github.com/threefoldfoundation/info_legal", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "legal", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_legal", + "domains": [ + "legal.threefold.io", + "legal_info.threefold.io" + ], + "descr": "" + }, + { + "name": "info_cloud", + "url": "https://github.com/threefoldfoundation/info_cloud", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "cloud", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_cloud", + "domains": [ + "cloud_info.threefold.io" + ], + "descr": "how to use the cloud for deploying apps: evdc, kubernetes, planetary fs, ... + marketplace solutions " + }, + { + "name": "info_tftech", + "url": "https://github.com/threefoldtech/info_tftech", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "tftech", + "path_code": "/Users/despiegk/codewww/github/threefoldtech/info_tftech", + "domains": [ + "info.threefold.tech" + ], + "descr": "" + }, + { + "name": "info_digitaltwin", + "url": "https://github.com/threefoldfoundation/info_digitaltwin.git", + "branch": "default", + "pull": false, + "cat": 0, + "alias": "twin", + "path_code": "/Users/despiegk/codewww/github/threefoldfoundation/info_digitaltwin", + "domains": [ + "twin_info.threefold.io" + ], + "descr": "" + } +]
\ No newline at end of file diff --git a/v_windows/v/old/examples/templates/readme.md b/v_windows/v/old/examples/templates/readme.md new file mode 100644 index 0000000..3129068 --- /dev/null +++ b/v_windows/v/old/examples/templates/readme.md @@ -0,0 +1,14 @@ +# example how to work with templates + +- templates support + - if + - for loops + - even nesting of for loops + - syntax checking + - embed the template into the binary + +Its a very cool way how to do also do e.g. system administration, fill in +config files, etc... + +The example there is also a good demonstration of how to use json on a more +complex object and read/write to file. diff --git a/v_windows/v/old/examples/templates/template.md b/v_windows/v/old/examples/templates/template.md new file mode 100644 index 0000000..7bbdc0d --- /dev/null +++ b/v_windows/v/old/examples/templates/template.md @@ -0,0 +1,16 @@ +# WIKIs + +@for site in sites +@if site.cat == .wiki + +## @{site.domains[0]}@port_str + +- [errors]("//@{site.domains[0]}@port_str/errors") + +### domains + +@for dom in site.domains +- @dom +@end +@end +@end diff --git a/v_windows/v/old/examples/templates/templates.v b/v_windows/v/old/examples/templates/templates.v new file mode 100644 index 0000000..65ec459 --- /dev/null +++ b/v_windows/v/old/examples/templates/templates.v @@ -0,0 +1,196 @@ +module main + +import os +import json + +pub struct SiteConfig { +pub mut: + name string + url string + branch string = 'default' // means is the default branch + pull bool + cat SiteCat + alias string + path_code string + domains []string + descr string +} + +pub enum SiteCat { + wiki + data + web +} + +fn data_get() []SiteConfig { + data := [SiteConfig{ + name: 'www_threefold_io' + url: 'https://github.com/threefoldfoundation/www_threefold_io' + branch: 'default' + pull: false + cat: .web + alias: 'tf' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_io' + domains: ['www.threefold.io', 'www.threefold.me'] + descr: 'is our entry point for everyone, redirect to the detailed websites underneith.' + }, SiteConfig{ + name: 'www_threefold_cloud' + url: 'https://github.com/threefoldfoundation/www_threefold_cloud' + branch: 'default' + pull: false + cat: .web + alias: 'cloud' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_cloud' + domains: ['cloud.threefold.io', 'cloud.threefold.me'] + descr: 'for people looking to deploy solutions on top of a cloud, alternative to e.g. digital ocean' + }, SiteConfig{ + name: 'www_threefold_farming' + url: 'https://github.com/threefoldfoundation/www_threefold_farming' + branch: 'default' + pull: false + cat: .web + alias: 'farming' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_farming' + domains: ['farming.threefold.io', 'farming.threefold.me'] + descr: 'crypto & minining enthusiasts, be the internet, know about farming & tokens.' + }, SiteConfig{ + name: 'www_threefold_twin' + url: 'https://github.com/threefoldfoundation/www_threefold_twin' + branch: 'default' + pull: false + cat: .web + alias: 'twin' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_twin' + domains: ['twin.threefold.io', 'twin.threefold.me'] + descr: 'you digital life' + }, SiteConfig{ + name: 'www_threefold_marketplace' + url: 'https://github.com/threefoldfoundation/www_threefold_marketplace' + branch: 'default' + pull: false + cat: .web + alias: 'marketplace' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_threefold_marketplace' + domains: ['now.threefold.io', 'marketplace.threefold.io', 'now.threefold.me', + 'marketplace.threefold.me', + ] + descr: 'apps for community builders, runs on top of evdc' + }, SiteConfig{ + name: 'www_conscious_internet' + url: 'https://github.com/threefoldfoundation/www_conscious_internet' + branch: 'default' + pull: false + cat: .web + alias: 'conscious_internet' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_conscious_internet' + domains: ['www.consciousinternet.org', 'eco.threefold.io', 'community.threefold.io', + 'eco.threefold.me', 'community.threefold.me'] + descr: 'community around threefold, partners, friends, ...' + }, SiteConfig{ + name: 'www_threefold_tech' + url: 'https://github.com/threefoldtech/www_threefold_tech' + branch: 'default' + pull: false + cat: .web + alias: 'tech' + path_code: '/Users/despiegk/codewww/github/threefoldtech/www_threefold_tech' + domains: ['www.threefold.tech'] + descr: 'cyberpandemic, use the tech to build your own solutions with, certification for TFGrid' + }, SiteConfig{ + name: 'www_examplesite' + url: 'https://github.com/threefoldfoundation/www_examplesite' + branch: 'default' + pull: false + cat: .web + alias: 'example' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/www_examplesite' + domains: ['example.threefold.io'] + descr: '' + }, SiteConfig{ + name: 'info_threefold' + url: 'https://github.com/threefoldfoundation/info_foundation_archive' + branch: 'default' + pull: false + cat: .wiki + alias: 'threefold' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_foundation_archive' + domains: ['info.threefold.io'] + descr: 'wiki for foundation, collaborate, what if farmings, tokens' + }, SiteConfig{ + name: 'info_sdk' + url: 'https://github.com/threefoldfoundation/info_sdk' + branch: 'default' + pull: false + cat: .wiki + alias: 'sdk' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_sdk' + domains: ['sdk.threefold.io', 'sdk_info.threefold.io'] + descr: 'for IAC, devops, how to do Infrastruture As Code, 3bot, Ansible, tfgrid-sdk, ...' + }, SiteConfig{ + name: 'info_legal' + url: 'https://github.com/threefoldfoundation/info_legal' + branch: 'default' + pull: false + cat: .wiki + alias: 'legal' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_legal' + domains: ['legal.threefold.io', 'legal_info.threefold.io'] + descr: '' + }, SiteConfig{ + name: 'info_cloud' + url: 'https://github.com/threefoldfoundation/info_cloud' + branch: 'default' + pull: false + cat: .wiki + alias: 'cloud' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_cloud' + domains: ['cloud_info.threefold.io'] + descr: 'how to use the cloud for deploying apps: evdc, kubernetes, planetary fs, ... + marketplace solutions ' + }, SiteConfig{ + name: 'info_tftech' + url: 'https://github.com/threefoldtech/info_tftech' + branch: 'default' + pull: false + cat: .wiki + alias: 'tftech' + path_code: '/Users/despiegk/codewww/github/threefoldtech/info_tftech' + domains: ['info.threefold.tech'] + descr: '' + }, SiteConfig{ + name: 'info_digitaltwin' + url: 'https://github.com/threefoldfoundation/info_digitaltwin.git' + branch: 'default' + pull: false + cat: .wiki + alias: 'twin' + path_code: '/Users/despiegk/codewww/github/threefoldfoundation/info_digitaltwin' + domains: ['twin_info.threefold.io'] + descr: '' + }] + return data +} + +fn data_dump(data []SiteConfig) { + a := json.encode_pretty(data) + os.write_file(os.resource_abs_path('data.json'), a) or { panic(err) } +} + +fn data_load() []SiteConfig { + data := os.read_file(os.resource_abs_path('data.json')) or { panic(err) } + a := json.decode([]SiteConfig, data) or { panic(err) } + return a +} + +fn filled_in_template() string { + port_str := '80' + sites := data_load() + return $tmpl('template.md') +} + +fn main() { + // A NICE test how to work with the json module + // data := data_get() + // data_dump(data) + b := filled_in_template() + println(b) +} |