feat: Implement robust theme system and document architecture
- Implement flexible theme switching via site.conf (site_theme, site_theme_css_file). - Ensure correct copying of theme static assets, with theme assets overriding root assets. - Resolve CSS linking issues by checking file existence after static copy and using correct paths for Pandoc. - Refactor path construction to prevent duplication when using absolute/relative output paths. - Create comprehensive how-it-works.md detailing system architecture, theme creation, and overall workflow. - Clarify design philosophy: qsgen3 remains design-agnostic, only linking main theme CSS automatically.
This commit is contained in:
parent
c14e943f2b
commit
c470ac40c0
91
README.md
91
README.md
@ -1,70 +1,45 @@
|
||||
<img src="qsg2-square.png" width="150" align="left">
|
||||
# qsgen3 - A Minimal Markdown Static Site Generator
|
||||
|
||||
# Quick Site Generator 2
|
||||
This is a refactored version of qsgen, focusing on simplicity, Markdown with YAML frontmatter, and a Zsh-based build process.
|
||||
|
||||
[](LICENSE)
|
||||
## Project Goals
|
||||
|
||||
Quick Site Generator 2 is a powerful static website generator written in Zsh, inspired by [Nikola](https://github.com/getnikola/nikola). It's designed to be fast, flexible, and easy to use, with support for both custom QSTags and standard Markdown syntax.
|
||||
- Remove QSTags and switch to Markdown + YAML frontmatter.
|
||||
- Simplify codebase by removing multilingual and theme support.
|
||||
- Refactor templating with uniform variables (e.g., `{{ content }}`, `{{ title }}`).
|
||||
- Ensure future-proofing by avoiding complex dependencies (like AWK for long string manipulation) for core tasks.
|
||||
- Provide a solid initial setup that works out of the box with a sample post, index, and layout.
|
||||
- Include a converter script in `scripts/convert-qstags-to-md.sh` for legacy content.
|
||||
|
||||
## Features
|
||||
## Structure
|
||||
|
||||
- 🚀 Blazing fast static site generation
|
||||
- 📝 Supports both QSTags and Markdown content
|
||||
- 🌍 Multi-language support (en_US, en_UK, es_ES, fr_FR, nb_NO)
|
||||
- 🎨 Themeable with custom templates (see [THEME-HOWTO.md](THEME-HOWTO.md))
|
||||
- 📱 Responsive design ready
|
||||
- 🔍 SEO friendly
|
||||
- 🔄 Automatic rebuild on file changes
|
||||
- `bin/qsgen3`: The main Zsh build script.
|
||||
- `site.conf`: Site configuration (INI format).
|
||||
- `content/`: Source Markdown files.
|
||||
- `content/posts/`: Blog posts.
|
||||
- `content/pages/`: Static pages.
|
||||
- `layouts/`: HTML templates.
|
||||
- `layouts/base.html`: Base template for all pages.
|
||||
- `layouts/post.html`: Template for individual blog posts.
|
||||
- `layouts/page.html`: Template for static pages.
|
||||
- `static/`: Static assets (CSS, images, etc.) copied as-is to the output.
|
||||
- `output/`: The generated website.
|
||||
- `scripts/`: Utility scripts (e.g., content converter).
|
||||
|
||||
## Quick Start
|
||||
## Usage
|
||||
|
||||
1. **Installation**
|
||||
1. Configure your site in `site.conf`.
|
||||
2. Add Markdown content to the `content/` directory.
|
||||
3. Customize templates in `layouts/`.
|
||||
4. Run the build script:
|
||||
```bash
|
||||
git clone https://github.com/kekePower/qsgen2.git
|
||||
cd qsgen2
|
||||
chmod +x qsgen2
|
||||
./bin/qsgen3
|
||||
```
|
||||
5. Your static site will be generated in the `output/` directory.
|
||||
|
||||
2. **Create a new site**
|
||||
```bash
|
||||
./qsgen2 new my-site
|
||||
cd my-site
|
||||
```
|
||||
## Dependencies
|
||||
|
||||
3. **Build and serve**
|
||||
```bash
|
||||
./qsgen2 build
|
||||
./qsgen2 serve
|
||||
```
|
||||
- Zsh
|
||||
- A Markdown processor (e.g., Pandoc, CommonMark, or a Zsh-native solution if feasible for basic needs).
|
||||
- Standard Unix utilities (grep, sed, find, etc.).
|
||||
|
||||
For detailed documentation, see the [HOWTO.md](HOWTO.md) guide.
|
||||
|
||||
## Recent Changes
|
||||
|
||||
- Added Norwegian (nb_NO) language support
|
||||
- Improved internationalization (i18n) system
|
||||
- Cleaned up temporary and backup files
|
||||
- Updated documentation
|
||||
- Added comprehensive HOWTO guide
|
||||
|
||||
## Requirements
|
||||
|
||||
- Zsh 5.8 or later
|
||||
- Pandoc (for Markdown support)
|
||||
- Basic Unix tools (sed, grep, etc.)
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) before submitting pull requests.
|
||||
|
||||
## Support
|
||||
|
||||
For support, please [open an issue](https://github.com/kekePower/qsgen2/issues) on GitHub.
|
||||
|
||||
---
|
||||
|
||||
*Created with ❤️ by kekePower*
|
||||
|
1110
bin/qsgen3
Executable file
1110
bin/qsgen3
Executable file
File diff suppressed because it is too large
Load Diff
30
content/posts/hello-world.md
Normal file
30
content/posts/hello-world.md
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
title: "Hello, World!"
|
||||
date: "2024-05-30"
|
||||
author: "qsgen3"
|
||||
draft: false
|
||||
summary: "My first post using the qsgen3 static site generator."
|
||||
---
|
||||
|
||||
Welcome to qsgen3!
|
||||
|
||||
This is your first post. You can edit it or delete it and start writing your own content.
|
||||
|
||||
## Markdown Features
|
||||
|
||||
Qsgen3 supports standard Markdown features, including:
|
||||
|
||||
- Headings
|
||||
- **Bold** and *italic* text
|
||||
- Lists:
|
||||
- Unordered
|
||||
- Ordered
|
||||
- [Links](https://example.com)
|
||||
- `Inline code`
|
||||
|
||||
```bash
|
||||
# Code blocks
|
||||
echo "Hello from a code block!"
|
||||
```
|
||||
|
||||
Enjoy creating your site!
|
131
home/stig/projects/qsgen3/output/static/blog_index.tpl
Normal file
131
home/stig/projects/qsgen3/output/static/blog_index.tpl
Normal file
@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - Blog</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<meta content="Webflow" name="generator"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);
|
||||
</script>
|
||||
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/" class="nav-link w-nav-link">Inicio</a>
|
||||
<a href="/sobre.html" class="nav-link w-nav-link">Sobre El Vikingo TI</a>
|
||||
<a href="/servicios.html" class="nav-link w-nav-link">Que Hago</a>
|
||||
<a href="/contacto.html" class="nav-link w-nav-link">Contáctame</a>
|
||||
<a href="/blog/" class="nav-link w-nav-link">Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">Blog</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">#tagline</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<p> </p>
|
||||
|
||||
<!-- Header End -->
|
||||
|
||||
<!-- Body Start -->
|
||||
|
||||
BODY
|
||||
|
||||
<!-- Body End -->
|
||||
|
||||
<!-- Begin Footer Template -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
17
home/stig/projects/qsgen3/output/static/blog_list.tpl
Normal file
17
home/stig/projects/qsgen3/output/static/blog_list.tpl
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
<!-- Blog Post for Index Start -->
|
||||
|
||||
<!-- <div id="process" class="section"> -->
|
||||
<div class="w-container">
|
||||
<h3><a class="link" href="BLOGURL">BLOGTITLE</a></h3>
|
||||
<div class="grow-row w-row">
|
||||
INGRESS
|
||||
</div>
|
||||
<div class="grow-row w-row">
|
||||
<strong style="font-size: 10px; padding-top: 3px;">BLOGDATE</strong>
|
||||
</div>
|
||||
<div class="divider grey"></div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- Blog Post for Index End -->
|
125
home/stig/projects/qsgen3/output/static/blogs.tpl
Normal file
125
home/stig/projects/qsgen3/output/static/blogs.tpl
Normal file
@ -0,0 +1,125 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - BLOGTITLE</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/blog/" class="nav-link w-nav-link">← Al Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header project-page">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">BLOGTITLE</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">
|
||||
CALADAY - CALNDAY - CALMONTH - CALYEAR
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Blog Post Start -->
|
||||
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<div id="process" class="section ingress">
|
||||
<div class="w-container">
|
||||
INGRESS
|
||||
<div class="divider grey"></div>
|
||||
<div class="grow-row w-row">
|
||||
BODY
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Blog Post End -->
|
||||
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
2
home/stig/projects/qsgen3/output/static/css/jquery-3.5.1.js
vendored
Normal file
2
home/stig/projects/qsgen3/output/static/css/jquery-3.5.1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
29
home/stig/projects/qsgen3/output/static/css/webflow.js
Normal file
29
home/stig/projects/qsgen3/output/static/css/webflow.js
Normal file
File diff suppressed because one or more lines are too long
33
home/stig/projects/qsgen3/output/static/css/webfont.js
Normal file
33
home/stig/projects/qsgen3/output/static/css/webfont.js
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2016 Small Batch, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.m=b||a;this.c=this.m.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
|
||||
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
|
||||
function z(a){if("string"===typeof a.f)return a.f;var b=a.m.location.protocol;"about:"==b&&(b=a.a.location.protocol);return"https:"==b?"https:":"http:"}function ea(a){return a.m.location.hostname||a.a.location.hostname}
|
||||
function A(a,b,c){function d(){k&&e&&f&&(k(g),k=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,k=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
|
||||
function B(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function C(){this.a=0;this.c=null}function D(a){a.a++;return function(){a.a--;E(a)}}function F(a,b){a.c=b;E(a)}function E(a){0==a.a&&a.c&&(a.c(),a.c=null)};function G(a){this.a=a||"-"}G.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function H(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return I(a)+" "+(a.f+"00")+" 300px "+J(a.c)}function J(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function K(a){return a.a+a.f}function I(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
|
||||
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.m.document.documentElement;this.h=b;this.a=new G("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);L(a,"loading")}function M(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}L(a,"inactive")}function L(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,K(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function N(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function O(a){u(a.c,"body",a.a)}function P(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+J(a.c)+";"+("font-style:"+I(a)+";font-weight:"+(a.f+"00")+";")};function Q(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}Q.prototype.start=function(){var a=this.c.m.document,b=this,c=q(),d=new Promise(function(d,e){function k(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a=
|
||||
P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)};
|
||||
function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)};
|
||||
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)};
|
||||
function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h<c.length;h++){var l=c[h],n=k[l.c],r=b.a,x=l;r.g&&w(r.f,[r.a.c("wf",x.c,K(x).toString(),"loading")]);L(r,"fontloading",x);r=null;null===X&&(X=window.FontFace?(x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent))?42<parseInt(x[1],10):!0:!1);X?r=new Q(p(b.g,b),p(b.h,b),b.c,l,b.s,n):r=new R(p(b.g,b),p(b.h,b),b.c,l,b.s,a,
|
||||
n);m.push(r)}for(h=0;h<m.length;h++)m[h].start()}},0)}function qa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){ra(a,f,b,d,c)})};function sa(a,b){this.c=a;this.a=b}function ta(a,b,c){var d=z(a.c);a=(a.a.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return d+"//"+a+"/"+b+".js"+(c?"?v="+c:"")}
|
||||
sa.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var m=0;m<c.length;m++){var l=c[m].fontfamily;void 0!=c[m].fontStyle&&void 0!=c[m].fontWeight?(h=c[m].fontStyle+c[m].fontWeight,e.push(new H(l,h))):e.push(new H(l))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.m;B(this.c,ta(c,d,e),function(e){e?a([]):(f["__MonotypeConfiguration__"+d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+
|
||||
d}else a([])};function ua(a,b){this.c=a;this.a=b}ua.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new C;b=0;for(c=d.length;b<c;b++)A(this.c,d[b],D(g));var k=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),m=0;m<h.length;m+=1)k.push(new H(d[0],h[m]));else k.push(new H(d[0]));F(g,function(){a(k,f)})};function va(a,b,c){a?this.c=a:this.c=b+wa;this.a=[];this.f=[];this.g=c||""}var wa="//fonts.googleapis.com/css";function xa(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
|
||||
function ya(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function za(a){this.f=a;this.a=[];this.c={}}
|
||||
var Aa={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Ba={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ca={i:"i",italic:"i",n:"n",normal:"n"},
|
||||
Da=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
|
||||
function Ea(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var k=d[1];g=[];if(k)for(var k=k.split(","),h=k.length,m=0;m<h;m++){var l;l=k[m];if(l.match(/^[\w-]+$/)){var n=Da.exec(l.toLowerCase());if(null==n)l="";else{l=n[2];l=null==l||""==l?"n":Ca[l];n=n[1];if(null==n||""==n)n="4";else var r=Ba[n],n=r?r:isNaN(n)?"4":n.substr(0,1);l=[l,n].join("")}}else l="";l&&g.push(l)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
|
||||
g,0<d.length&&(d=Aa[d[0]])&&(a.c[e]=d))}a.c[e]||(d=Aa[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new H(e,f[d]))}};function Fa(a,b){this.c=a;this.a=b}var Ga={Arimo:!0,Cousine:!0,Tinos:!0};Fa.prototype.load=function(a){var b=new C,c=this.c,d=new va(this.a.api,z(c),this.a.text),e=this.a.families;xa(d,e);var f=new za(e);Ea(f);A(c,ya(d),D(b));F(b,function(){a(f.a,f.c,Ga)})};function Ha(a,b){this.c=a;this.a=b}Ha.prototype.load=function(a){var b=this.a.id,c=this.c.m;b?B(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],k=b[f+1],h=0;h<k.length;h++)e.push(new H(g,k[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(m){}a(e)}},2E3):a([])};function Ia(a,b){this.c=a;this.f=b;this.a=[]}Ia.prototype.load=function(a){var b=this.f.id,c=this.c.m,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,k=c.fonts.length;g<k;++g){var h=c.fonts[g];d.a.push(new H(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},B(this.c,z(this.c)+(this.f.api||"//f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new pa(window);Y.a.c.custom=function(a,b){return new ua(b,a)};Y.a.c.fontdeck=function(a,b){return new Ia(b,a)};Y.a.c.monotype=function(a,b){return new sa(b,a)};Y.a.c.typekit=function(a,b){return new Ha(b,a)};Y.a.c.google=function(a,b){return new Fa(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
|
127
home/stig/projects/qsgen3/output/static/pages.tpl
Normal file
127
home/stig/projects/qsgen3/output/static/pages.tpl
Normal file
@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - #pagetitle</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<meta content="Webflow" name="generator"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);
|
||||
</script>
|
||||
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/" class="nav-link w-nav-link">Inicio</a>
|
||||
<a href="/sobre.html" class="nav-link w-nav-link">Sobre #sitename</a>
|
||||
<a href="/servicios.html" class="nav-link w-nav-link">Que Hago</a>
|
||||
<a href="/contacto.html" class="nav-link w-nav-link">Contáctame</a>
|
||||
<a href="/blog/" class="nav-link w-nav-link">Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">#pagetitle</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">#tagline</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<!-- Header End -->
|
||||
|
||||
<!-- Body Start -->
|
||||
|
||||
BODY
|
||||
|
||||
<!-- Body End -->
|
||||
|
||||
<!-- Begin Footer Template -->
|
||||
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
29
home/stig/projects/qsgen3/output/static/testimonies.tpl
Normal file
29
home/stig/projects/qsgen3/output/static/testimonies.tpl
Normal file
@ -0,0 +1,29 @@
|
||||
<div id="process" class="section">
|
||||
<div class="w-container">
|
||||
<h2>How we make brands thrive</h2>
|
||||
<div class="divider grey"></div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7763b9b97cdf3e0008b9_icon-target.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>SET a target</h3>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.</p>
|
||||
</div>
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper push-top">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7772b9b97cdf3e0008bc_icon-design.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>design a solution</h3>
|
||||
<p>Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.</p>
|
||||
</div>
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper push-top">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7778b9b97cdf3e0008be_icon-chart.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>track the progress</h3>
|
||||
<p>Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
1029
how-it-works.md
Normal file
1029
how-it-works.md
Normal file
File diff suppressed because it is too large
Load Diff
110
layouts/css/default.css
Normal file
110
layouts/css/default.css
Normal file
@ -0,0 +1,110 @@
|
||||
/* Default Theme for qsgen3 */
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6;
|
||||
margin: 20px auto;
|
||||
padding: 0 20px;
|
||||
max-width: 800px;
|
||||
background-color: #fdfdfd;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: #eee;
|
||||
padding: 1em 0;
|
||||
margin-bottom: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
header h1 a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header .tagline {
|
||||
color: #555;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
nav ul li {
|
||||
display: inline;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none;
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
article header {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
margin-bottom: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #333;
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #f0f0f0;
|
||||
padding: 15px;
|
||||
overflow-x: auto;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
background-color: #f0f0f0;
|
||||
padding: 0.2em 0.4em;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid #ccc;
|
||||
padding-left: 15px;
|
||||
margin-left: 0;
|
||||
font-style: italic;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 3em;
|
||||
padding-top: 1em;
|
||||
border-top: 1px solid #eee;
|
||||
font-size: 0.9em;
|
||||
color: #777;
|
||||
}
|
47
layouts/index.html
Normal file
47
layouts/index.html
Normal file
@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>$site_name$ - $site_tagline$</title>
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$">
|
||||
$endfor$
|
||||
$if(site_rss_url)$
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="$site_rss_url$">
|
||||
$endif$
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="$site_url$">$site_name$</a></h1>
|
||||
<p>$site_tagline$</p>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section id="posts-list">
|
||||
<h2>Latest Posts</h2>
|
||||
$if(posts)$
|
||||
<ul>
|
||||
$for(posts)$
|
||||
<li>
|
||||
<h3><a href="$posts.url$">$posts.title$</a></h3>
|
||||
$if(posts.date)$
|
||||
<p class="date">$posts.date$</p>
|
||||
$endif$
|
||||
$if(posts.summary)$
|
||||
<p>$posts.summary$</p>
|
||||
$endif$
|
||||
</li>
|
||||
$endfor$
|
||||
</ul>
|
||||
$else$
|
||||
<p>No posts found.</p>
|
||||
$endif$
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>© $current_year$ $site_name$. Generated by qsgen3.</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
32
layouts/page.html
Normal file
32
layouts/page.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>$site_name$ - $title$</title>
|
||||
<meta name="description" content="$description$"> <!-- Add description to frontmatter -->
|
||||
<link rel="stylesheet" href="/static/css/style.css"> <!-- Assuming site served from root -->
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$">
|
||||
$endfor$
|
||||
$if(math)$ $math$ $endif$
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="/">$site_name$</a></h1>
|
||||
<p>$site_tagline$</p>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<header>
|
||||
<h1>$title$</h1>
|
||||
</header>
|
||||
$body$
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© $current_year$ $site_name$. Generated by qsgen3.</p>
|
||||
<p><a href="$site_url$">$site_url$</a></p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
39
layouts/post.html
Normal file
39
layouts/post.html
Normal file
@ -0,0 +1,39 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>$site_name$ - $title$</title>
|
||||
<meta name="author" content="$author$">
|
||||
<meta name="description" content="$description$"> <!-- Add description to frontmatter -->
|
||||
$if(date)$<meta name="date" content="$date$">$endif$
|
||||
$for(css)$
|
||||
<link rel="stylesheet" href="$css$">
|
||||
$endfor$
|
||||
$if(math)$ $math$ $endif$
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="/">$site_name$</a></h1>
|
||||
<p>$site_tagline$</p>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<header>
|
||||
<h1>$title$</h1>
|
||||
$if(author)$
|
||||
<p class="author">By: $author$</p>
|
||||
$endif$
|
||||
$if(date)$
|
||||
<p class="date">Published: $date$</p>
|
||||
$endif$
|
||||
</header>
|
||||
$body$
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© $current_year$ $site_name$. Generated by qsgen3. </p>
|
||||
<p><a href="$site_url$">$site_url$</a></p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
24
layouts/rss.xml
Normal file
24
layouts/rss.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>$site_name$</title>
|
||||
<link>$site_url$</link>
|
||||
<description>$site_tagline$</description>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>$rfc_2822_date$</lastBuildDate>
|
||||
<atom:link href="$site_url$/rss.xml" rel="self" type="application/rss+xml" />
|
||||
|
||||
$if(posts)$
|
||||
$for(posts)$
|
||||
<item>
|
||||
<title>$it.post_title$</title>
|
||||
<link>$it.post_url$</link>
|
||||
<pubDate>$it.post_rfc_2822_date$</pubDate>
|
||||
<guid isPermaLink="true">$it.post_url$</guid>
|
||||
<description><![CDATA[$it.post_summary$]]></description>
|
||||
</item>
|
||||
$endfor$
|
||||
$endif$
|
||||
|
||||
</channel>
|
||||
</rss>
|
110
output/css/theme.css
Normal file
110
output/css/theme.css
Normal file
@ -0,0 +1,110 @@
|
||||
/* Default Theme for qsgen3 */
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6;
|
||||
margin: 20px auto;
|
||||
padding: 0 20px;
|
||||
max-width: 800px;
|
||||
background-color: #fdfdfd;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: #eee;
|
||||
padding: 1em 0;
|
||||
margin-bottom: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
header h1 a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header .tagline {
|
||||
color: #555;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
nav ul li {
|
||||
display: inline;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none;
|
||||
color: #007bff;
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
article header {
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
margin-bottom: 1em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
color: #333;
|
||||
margin-top: 1.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #007bff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
pre {
|
||||
background-color: #f0f0f0;
|
||||
padding: 15px;
|
||||
overflow-x: auto;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: monospace;
|
||||
background-color: #f0f0f0;
|
||||
padding: 0.2em 0.4em;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 4px solid #ccc;
|
||||
padding-left: 15px;
|
||||
margin-left: 0;
|
||||
font-style: italic;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 3em;
|
||||
padding-top: 1em;
|
||||
border-top: 1px solid #eee;
|
||||
font-size: 0.9em;
|
||||
color: #777;
|
||||
}
|
34
output/index.html
Normal file
34
output/index.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>My Awesome Site - A brief description of my site</title>
|
||||
<link rel="stylesheet" href="/static/css/minimaltemplate-v1.css">
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="http://localhost:8000">My Awesome Site</a></h1>
|
||||
<p>A brief description of my site</p>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<section id="posts-list">
|
||||
<h2>Latest Posts</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<h3><a href="http://localhost:8000/posts/hello-world.html">Hello,
|
||||
World!</a></h3>
|
||||
<p class="date">2024-05-30</p>
|
||||
<p>My first
|
||||
post using the qsgen3 static site generator.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 My Awesome Site. Generated by qsgen3.</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
53
output/posts/hello-world.html
Normal file
53
output/posts/hello-world.html
Normal file
@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>My Awesome Site - Hello, World!</title>
|
||||
<meta name="author" content="qsgen3">
|
||||
<meta name="description" content=""> <!-- Add description to frontmatter -->
|
||||
<meta name="date" content="2024-05-30">
|
||||
<link rel="stylesheet" href="/static/css/minimaltemplate-v1.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1><a href="/">My Awesome Site</a></h1>
|
||||
<p>A brief description of my site</p>
|
||||
</header>
|
||||
<main>
|
||||
<article>
|
||||
<header>
|
||||
<h1>Hello, World!</h1>
|
||||
<p class="author">By: qsgen3</p>
|
||||
<p class="date">Published: 2024-05-30</p>
|
||||
</header>
|
||||
<p>Welcome to qsgen3!</p>
|
||||
<p>This is your first post. You can edit it or delete it and
|
||||
start writing your own content.</p>
|
||||
<h2 id="markdown-features">Markdown Features</h2>
|
||||
<p>Qsgen3 supports standard Markdown features,
|
||||
including:</p>
|
||||
<ul>
|
||||
<li>Headings</li>
|
||||
<li><strong>Bold</strong> and <em>italic</em> text</li>
|
||||
<li>Lists:
|
||||
<ul>
|
||||
<li>Unordered</li>
|
||||
<li>Ordered</li>
|
||||
</ul></li>
|
||||
<li><a href="https://example.com">Links</a></li>
|
||||
<li><code>Inline code</code></li>
|
||||
</ul>
|
||||
<div class="sourceCode" id="cb1"><pre
|
||||
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Code blocks</span></span>
|
||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="bu">echo</span> <span class="st">"Hello from a code block!"</span></span></code></pre></div>
|
||||
<p>Enjoy creating your site!</p>
|
||||
</article>
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2025 My Awesome Site. Generated by qsgen3. </p>
|
||||
<p><a href="http://localhost:8000">http://localhost:8000</a></p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
21
output/rss.xml
Normal file
21
output/rss.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>My Awesome Site</title>
|
||||
<link>http://localhost:8000</link>
|
||||
<description>A brief description of my site</description>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate></lastBuildDate>
|
||||
<atom:link href="http://localhost:8000/rss.xml" rel="self" type="application/rss+xml" />
|
||||
|
||||
<item>
|
||||
<title>Hello, World!</title>
|
||||
<link>http://localhost:8000/posts/hello-world.html</link>
|
||||
<pubDate></pubDate>
|
||||
<guid isPermaLink="true">http://localhost:8000/posts/hello-world.html</guid>
|
||||
<description><![CDATA[My first post using the qsgen3 static site
|
||||
generator.]]></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
131
output/static/blog_index.tpl
Normal file
131
output/static/blog_index.tpl
Normal file
@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - Blog</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<meta content="Webflow" name="generator"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);
|
||||
</script>
|
||||
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/" class="nav-link w-nav-link">Inicio</a>
|
||||
<a href="/sobre.html" class="nav-link w-nav-link">Sobre El Vikingo TI</a>
|
||||
<a href="/servicios.html" class="nav-link w-nav-link">Que Hago</a>
|
||||
<a href="/contacto.html" class="nav-link w-nav-link">Contáctame</a>
|
||||
<a href="/blog/" class="nav-link w-nav-link">Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">Blog</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">#tagline</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<p> </p>
|
||||
|
||||
<!-- Header End -->
|
||||
|
||||
<!-- Body Start -->
|
||||
|
||||
BODY
|
||||
|
||||
<!-- Body End -->
|
||||
|
||||
<!-- Begin Footer Template -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
17
output/static/blog_list.tpl
Normal file
17
output/static/blog_list.tpl
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
<!-- Blog Post for Index Start -->
|
||||
|
||||
<!-- <div id="process" class="section"> -->
|
||||
<div class="w-container">
|
||||
<h3><a class="link" href="BLOGURL">BLOGTITLE</a></h3>
|
||||
<div class="grow-row w-row">
|
||||
INGRESS
|
||||
</div>
|
||||
<div class="grow-row w-row">
|
||||
<strong style="font-size: 10px; padding-top: 3px;">BLOGDATE</strong>
|
||||
</div>
|
||||
<div class="divider grey"></div>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- Blog Post for Index End -->
|
125
output/static/blogs.tpl
Normal file
125
output/static/blogs.tpl
Normal file
@ -0,0 +1,125 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - BLOGTITLE</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/blog/" class="nav-link w-nav-link">← Al Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header project-page">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">BLOGTITLE</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">
|
||||
CALADAY - CALNDAY - CALMONTH - CALYEAR
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Blog Post Start -->
|
||||
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<div id="process" class="section ingress">
|
||||
<div class="w-container">
|
||||
INGRESS
|
||||
<div class="divider grey"></div>
|
||||
<div class="grow-row w-row">
|
||||
BODY
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Blog Post End -->
|
||||
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
2
output/static/css/jquery-3.5.1.js
vendored
Normal file
2
output/static/css/jquery-3.5.1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
663
output/static/css/minimaltemplate-v1.css
Normal file
663
output/static/css/minimaltemplate-v1.css
Normal file
File diff suppressed because one or more lines are too long
29
output/static/css/webflow.js
Normal file
29
output/static/css/webflow.js
Normal file
File diff suppressed because one or more lines are too long
33
output/static/css/webfont.js
Normal file
33
output/static/css/webfont.js
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2016 Small Batch, Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
/* Web Font Loader v1.6.26 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.m=b||a;this.c=this.m.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
|
||||
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
|
||||
function z(a){if("string"===typeof a.f)return a.f;var b=a.m.location.protocol;"about:"==b&&(b=a.a.location.protocol);return"https:"==b?"https:":"http:"}function ea(a){return a.m.location.hostname||a.a.location.hostname}
|
||||
function A(a,b,c){function d(){k&&e&&f&&(k(g),k=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,k=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
|
||||
function B(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function C(){this.a=0;this.c=null}function D(a){a.a++;return function(){a.a--;E(a)}}function F(a,b){a.c=b;E(a)}function E(a){0==a.a&&a.c&&(a.c(),a.c=null)};function G(a){this.a=a||"-"}G.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function H(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return I(a)+" "+(a.f+"00")+" 300px "+J(a.c)}function J(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function K(a){return a.a+a.f}function I(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
|
||||
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.m.document.documentElement;this.h=b;this.a=new G("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);L(a,"loading")}function M(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}L(a,"inactive")}function L(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,K(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function N(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function O(a){u(a.c,"body",a.a)}function P(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+J(a.c)+";"+("font-style:"+I(a)+";font-weight:"+(a.f+"00")+";")};function Q(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}Q.prototype.start=function(){var a=this.c.m.document,b=this,c=q(),d=new Promise(function(d,e){function k(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,d){setTimeout(d,b.f)});Promise.race([e,d]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a=
|
||||
P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)};
|
||||
function ma(a,b,c){for(var d in S)if(S.hasOwnProperty(d)&&b===a.f[S[d]]&&c===a.f[S[d]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=U()&&ma(a,b,c));d?q()-a.A>=a.w?U()&&ma(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)};
|
||||
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,d,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)};
|
||||
function ra(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=d||null||{};if(0===c.length&&f)M(b.a);else{b.f+=c.length;f&&(b.j=f);var h,m=[];for(h=0;h<c.length;h++){var l=c[h],n=k[l.c],r=b.a,x=l;r.g&&w(r.f,[r.a.c("wf",x.c,K(x).toString(),"loading")]);L(r,"fontloading",x);r=null;null===X&&(X=window.FontFace?(x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent))?42<parseInt(x[1],10):!0:!1);X?r=new Q(p(b.g,b),p(b.h,b),b.c,l,b.s,n):r=new R(p(b.g,b),p(b.h,b),b.c,l,b.s,a,
|
||||
n);m.push(r)}for(h=0;h<m.length;h++)m[h].start()}},0)}function qa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){ra(a,f,b,d,c)})};function sa(a,b){this.c=a;this.a=b}function ta(a,b,c){var d=z(a.c);a=(a.a.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return d+"//"+a+"/"+b+".js"+(c?"?v="+c:"")}
|
||||
sa.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var m=0;m<c.length;m++){var l=c[m].fontfamily;void 0!=c[m].fontStyle&&void 0!=c[m].fontWeight?(h=c[m].fontStyle+c[m].fontWeight,e.push(new H(l,h))):e.push(new H(l))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.m;B(this.c,ta(c,d,e),function(e){e?a([]):(f["__MonotypeConfiguration__"+d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+
|
||||
d}else a([])};function ua(a,b){this.c=a;this.a=b}ua.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new C;b=0;for(c=d.length;b<c;b++)A(this.c,d[b],D(g));var k=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),m=0;m<h.length;m+=1)k.push(new H(d[0],h[m]));else k.push(new H(d[0]));F(g,function(){a(k,f)})};function va(a,b,c){a?this.c=a:this.c=b+wa;this.a=[];this.f=[];this.g=c||""}var wa="//fonts.googleapis.com/css";function xa(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
|
||||
function ya(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function za(a){this.f=a;this.a=[];this.c={}}
|
||||
var Aa={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Ba={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ca={i:"i",italic:"i",n:"n",normal:"n"},
|
||||
Da=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
|
||||
function Ea(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var k=d[1];g=[];if(k)for(var k=k.split(","),h=k.length,m=0;m<h;m++){var l;l=k[m];if(l.match(/^[\w-]+$/)){var n=Da.exec(l.toLowerCase());if(null==n)l="";else{l=n[2];l=null==l||""==l?"n":Ca[l];n=n[1];if(null==n||""==n)n="4";else var r=Ba[n],n=r?r:isNaN(n)?"4":n.substr(0,1);l=[l,n].join("")}}else l="";l&&g.push(l)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
|
||||
g,0<d.length&&(d=Aa[d[0]])&&(a.c[e]=d))}a.c[e]||(d=Aa[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new H(e,f[d]))}};function Fa(a,b){this.c=a;this.a=b}var Ga={Arimo:!0,Cousine:!0,Tinos:!0};Fa.prototype.load=function(a){var b=new C,c=this.c,d=new va(this.a.api,z(c),this.a.text),e=this.a.families;xa(d,e);var f=new za(e);Ea(f);A(c,ya(d),D(b));F(b,function(){a(f.a,f.c,Ga)})};function Ha(a,b){this.c=a;this.a=b}Ha.prototype.load=function(a){var b=this.a.id,c=this.c.m;b?B(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],k=b[f+1],h=0;h<k.length;h++)e.push(new H(g,k[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(m){}a(e)}},2E3):a([])};function Ia(a,b){this.c=a;this.f=b;this.a=[]}Ia.prototype.load=function(a){var b=this.f.id,c=this.c.m,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,k=c.fonts.length;g<k;++g){var h=c.fonts[g];d.a.push(new H(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},B(this.c,z(this.c)+(this.f.api||"//f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new pa(window);Y.a.c.custom=function(a,b){return new ua(b,a)};Y.a.c.fontdeck=function(a,b){return new Ia(b,a)};Y.a.c.monotype=function(a,b){return new sa(b,a)};Y.a.c.typekit=function(a,b){return new Ha(b,a)};Y.a.c.google=function(a,b){return new Fa(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
|
127
output/static/pages.tpl
Normal file
127
output/static/pages.tpl
Normal file
@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>#sitename - #pagetitle</title>
|
||||
<meta content="width=device-width, initial-scale=1" name="viewport"/>
|
||||
<meta content="Webflow" name="generator"/>
|
||||
<link href="/css/minimaltemplate-v1.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/css/webfont.js" type="text/javascript">
|
||||
</script>
|
||||
<script type="text/javascript">WebFont.load({ google: { families: ["Vollkorn:400,400italic,700,700italic","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Oswald:200,300,400,500,600,700"] }});</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);
|
||||
</script>
|
||||
|
||||
<link href="/images/el-vikingo-ti.png" rel="shortcut icon" type="image/png"/>
|
||||
<link href="/images/el-vikingo-ti.png" rel="apple-touch-icon"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div data-collapse="medium" data-animation="default" data-duration="400" role="banner" class="navbar w-nav">
|
||||
<div class="w-container">
|
||||
|
||||
<a href="/" class="brand-block w-clearfix w-nav-brand">
|
||||
<img src="/images/el-vikingo-ti.png" width="65" alt="" class="logo-img"/>
|
||||
<h1 class="logo-title">#sitename</h1>
|
||||
</a>
|
||||
|
||||
<nav role="navigation" class="nav-menu w-nav-menu">
|
||||
<a href="/" class="nav-link w-nav-link">Inicio</a>
|
||||
<a href="/sobre.html" class="nav-link w-nav-link">Sobre #sitename</a>
|
||||
<a href="/servicios.html" class="nav-link w-nav-link">Que Hago</a>
|
||||
<a href="/contacto.html" class="nav-link w-nav-link">Contáctame</a>
|
||||
<a href="/blog/" class="nav-link w-nav-link">Blog</a>
|
||||
</nav>
|
||||
<div class="menu-button w-nav-button">
|
||||
<div class="w-icon-nav-menu">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="w-container">
|
||||
<h1 class="main-heading">#pagetitle</h1>
|
||||
<div class="divider">
|
||||
</div>
|
||||
<div class="main-subtitle">#tagline</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-section">
|
||||
<div class="w-container">
|
||||
|
||||
<!-- Header End -->
|
||||
|
||||
<!-- Body Start -->
|
||||
|
||||
BODY
|
||||
|
||||
<!-- Body End -->
|
||||
|
||||
<!-- Begin Footer Template -->
|
||||
|
||||
</div>
|
||||
<div id="contact" class="section contact">
|
||||
<div class="w-container">
|
||||
<h2>Ponte en contacto conmigo</h2>
|
||||
<div class="divider grey">
|
||||
</div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
|
||||
<div class="icon-wrapper">
|
||||
<img src="/images/map-icon.png" width="44" alt=""/>
|
||||
</div>
|
||||
<h3>Lo que hago</h3>
|
||||
<p class="contact-text">
|
||||
Elegir a El Vikingo TI significa<br/>
|
||||
optar por la tranquilidad, la profesionalidad<br/>
|
||||
y una calidad de transmisión inigualable.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/mail-icon.png" width="70" alt=""/>
|
||||
</div>
|
||||
<h3>La manera tradicional</h3>
|
||||
<p class="contact-text">Correo Electronico<br/>
|
||||
<a href="/contacto.html" class="link">Envíeme un mensaje</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="w-col w-col-4">
|
||||
<div class="icon-wrapper _2">
|
||||
<img src="/images/heart-icon.png" width="68" alt=""/>
|
||||
</div>
|
||||
<h3>Redes Sociales</h3>
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block w-clearfix">
|
||||
<img src="/images/facebook-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Facebook</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/twitter-icon_black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">Twitter</div></a>
|
||||
|
||||
<a href="#" class="social-wrapper contact-text w-inline-block">
|
||||
<img src="/images/linkdin-icon-black.svg" width="14" alt="" class="social-icon"/>
|
||||
<div class="social-link-text">LinkedIn</div></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer id="footer" class="newsection footer">
|
||||
<img src="/images/el-vikingo-ti.png" width="43" alt="El Vikingo TI Logo" class="footer-logo"/>
|
||||
<p class="footer-text">
|
||||
#updated
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="/css/jquery-3.5.1.js" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
|
||||
<script src="/css/webflow.js" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
29
output/static/testimonies.tpl
Normal file
29
output/static/testimonies.tpl
Normal file
@ -0,0 +1,29 @@
|
||||
<div id="process" class="section">
|
||||
<div class="w-container">
|
||||
<h2>How we make brands thrive</h2>
|
||||
<div class="divider grey"></div>
|
||||
<div class="w-row">
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7763b9b97cdf3e0008b9_icon-target.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>SET a target</h3>
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.</p>
|
||||
</div>
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper push-top">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7772b9b97cdf3e0008bc_icon-design.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>design a solution</h3>
|
||||
<p>Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat.</p>
|
||||
</div>
|
||||
<div class="w-col w-col-4">
|
||||
<div class="grey-icon-wrapper push-top">
|
||||
<img src="https://assets.website-files.com/530ab3ac7b5bc4ca19000b96/530b7778b9b97cdf3e0008be_icon-chart.png" width="127" alt="" class="big-icon"/>
|
||||
</div>
|
||||
<h3>track the progress</h3>
|
||||
<p>Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
19
site.conf
Normal file
19
site.conf
Normal file
@ -0,0 +1,19 @@
|
||||
# Site Configuration for qsgen3
|
||||
|
||||
# --- Site Metadata ---
|
||||
site_name="My Awesome Site"
|
||||
site_tagline="A brief description of my site"
|
||||
site_url="http://localhost:8000"
|
||||
site_theme="minimal"
|
||||
site_theme_css_file="css/minimaltemplate-v1.css"
|
||||
|
||||
# --- Paths ---
|
||||
paths_content_dir="content"
|
||||
paths_output_dir="output"
|
||||
paths_layouts_dir="layouts"
|
||||
paths_static_dir="static"
|
||||
|
||||
# --- Build Options ---
|
||||
build_options_generate_rss=true
|
||||
build_options_generate_sitemap=true
|
||||
build_options_process_drafts=false
|
@ -1,26 +1,26 @@
|
||||
; Place this file in your project directory
|
||||
# Example Site Configuration for qsgen3
|
||||
# Copy this file to 'site.conf' in your project root and customize it.
|
||||
|
||||
[site]
|
||||
; This is the name of your site
|
||||
name = "The Site Name"
|
||||
; This is the tagline
|
||||
tagline = "The Site Tagline"
|
||||
; This is the URL of your site
|
||||
url = "https://www.example.com"
|
||||
; This is where your HTML files go
|
||||
root = /path/to/www/dir
|
||||
; The theme of your site
|
||||
theme = theme_name
|
||||
; sitemap or not: true or false
|
||||
sitemap = true
|
||||
; Do you want the blog to appear on the front page
|
||||
; true = yes and false = no
|
||||
blog = true
|
||||
# --- Site Metadata ---
|
||||
site_name="My Example Site"
|
||||
site_tagline="An example site generated by qsgen3"
|
||||
site_url="http://localhost:8000" # Or your actual production URL
|
||||
site_theme="default" # Specifies the theme to use (e.g., default, dark)
|
||||
|
||||
[project]
|
||||
; This is where you work before you generate the output
|
||||
root = /path/to/working/project
|
||||
; Languages: en_US, en_UK, es_ES, nb_NO, fr_FR
|
||||
lang = en_US
|
||||
; Use QStags (native) or Markdown (markdown)
|
||||
generator = native
|
||||
# --- Paths (relative to project root) ---
|
||||
paths_content_dir="content"
|
||||
paths_output_dir="output"
|
||||
paths_layouts_dir="layouts"
|
||||
paths_static_dir="static"
|
||||
|
||||
# --- Build Options ---
|
||||
# Generate an RSS feed (true/false)
|
||||
build_options_generate_rss=true
|
||||
|
||||
# Generate a sitemap.xml (true/false)
|
||||
# Note: sitemap generation is not fully implemented in qsgen3 yet,
|
||||
# but the configuration option is reserved.
|
||||
build_options_generate_sitemap=true
|
||||
|
||||
# Process draft posts/pages (true/false)
|
||||
build_options_process_drafts=false
|
||||
|
31
static/css/style.css
Normal file
31
static/css/style.css
Normal file
@ -0,0 +1,31 @@
|
||||
/* Basic styling - feel free to replace */
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6;
|
||||
margin: 20px;
|
||||
background-color: #f4f4f4;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
header h1 a {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header p {
|
||||
font-style: italic;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
main {
|
||||
background-color: #fff;
|
||||
padding: 20px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
font-size: 0.9em;
|
||||
color: #777;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user