mirror of
https://gitlab.com/MisterBiggs/blog.git
synced 2025-06-15 14:46:52 +00:00
Initial commit
This commit is contained in:
commit
a50b0214bb
15
.gitlab-ci.yml
Normal file
15
.gitlab-ci.yml
Normal file
@ -0,0 +1,15 @@
|
||||
|
||||
image: monachus/hugo
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
|
||||
pages:
|
||||
script:
|
||||
- cd exampleSite
|
||||
- hugo --themesDir=../.. -d ../public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "Sites/blog/themes/hugo-swift-theme"]
|
||||
path = Sites/blog/themes/hugo-swift-theme
|
||||
url = https://github.com/onweru/hugo-swift-theme.git
|
6
Sites/blog/archetypes/default.md
Normal file
6
Sites/blog/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
16
Sites/blog/config.toml
Normal file
16
Sites/blog/config.toml
Normal file
@ -0,0 +1,16 @@
|
||||
baseURL = "blog.ansonbiggs.com"
|
||||
languageCode = "en-us"
|
||||
title = "Anson 3D"
|
||||
theme = "hugo-swift-theme"
|
||||
pygmentsCodefences = true
|
||||
pygmentsCodefencesGuessSyntax = true
|
||||
|
||||
[params]
|
||||
twitter = 'https://twitter.com/Anson_3D'
|
||||
|
||||
# [Params.staticman]
|
||||
# endpoint = "https://api.staticman.net"
|
||||
# gitProvider = "gitlab"
|
||||
# username = "MisterBiggs"
|
||||
# repository = "hugo-swift-theme"
|
||||
# branch = "master"
|
78
Sites/blog/content/posts/my-first-post.md
Normal file
78
Sites/blog/content/posts/my-first-post.md
Normal file
@ -0,0 +1,78 @@
|
||||
---
|
||||
title: "My First Post"
|
||||
date: 2019-08-08T21:56:14-07:00
|
||||
draft: true
|
||||
image: https://i.imgur.com/q7V9tC5.jpg
|
||||
author: Anson Biggs
|
||||
---
|
||||
|
||||
# Nec retia pavet vultus ligati maesta
|
||||
|
||||
## Postquam te vulnere lucoque ferunt
|
||||
|
||||
```python3
|
||||
numbers = [1, 2, 3, 4, 5, 6,]
|
||||
|
||||
for number in numbers:
|
||||
print(number)
|
||||
```
|
||||
|
||||
Lorem markdownum miserande hanc et Midan ostendit artis vertuntur lingua. Thoona
|
||||
de finibus celeres nec animam, dumque constituunt fila cognataque narrat verba.
|
||||
Ille animi vertuntur liquores bobus, caput _virentes regnum eduxit_ totumque in
|
||||
saxa, fortis _vela_ vertere auguror recisum. Revelli et maxima veniat tuorum
|
||||
[matris](http://parsnec.org/fide.html) curaque, praemiaque corripit quid hoc
|
||||
tendunt haec, et parens rates haut et! Caput annos, _in fasque albescere_ manu:
|
||||
natae origine palmis; et [illa simulat](http://aevoque-arserunt.org/sit), vix
|
||||
mares!
|
||||
|
||||
- Decuit curam Iovis
|
||||
- Dant ille plumas lora omnes nota
|
||||
- Amborum hoc Abas temptatae ferat enodisque viveret
|
||||
|
||||
## Respicit lacertos
|
||||
|
||||
Factum est dictoque relinqui a tantae nulla adquirit mercede quamquam, aliquid
|
||||
recepit: **exigit levatus**: est. Ergo sentit lora. Tamen fulvo traherent servo
|
||||
edidicitque longa, seducta invenio vertitur. Carinas et edita in mihi oculus
|
||||
populisque, motu duorum atque nullos herbis flumina iunctum fecisse corpus!
|
||||
Capistris vitam sed super ferunt.
|
||||
|
||||
> Atque fama alvum idem post negat virga illis terque, animos vestigia ut peti.
|
||||
> Amnem mulcet **fretum** dat cursus fuit Iunonia de amplexus auctor corpore est
|
||||
> corpore: annis est nubila probat: quod. Nostri fixurus Haemoniis frondem
|
||||
> [excedam forte](http://si.io/minos.html); luserit pueri iam quae **repetens
|
||||
> Quirini vulgarunt** inter **residunt**.
|
||||
|
||||
## Invida potest in oleis
|
||||
|
||||
Foret vitae in ensis profanus, pia cum procul, de septem _exstat_. Interdum
|
||||
_revocamina_ datis divulsere: tenentem **sustinet cervice cursus**, populo,
|
||||
parentem virorum. Freta et odit mitius hostem solitas carmine mihi non in
|
||||
classe, ab dixerat perque caperet inclusum furialibus nunc.
|
||||
|
||||
1. Pretium feris ictus horto certamina quem alteraque
|
||||
2. Stantes tutaeque iussit tenet
|
||||
3. Discordia Dianae agmen inque
|
||||
|
||||
## Percussit Latonia
|
||||
|
||||
Socii ululasse inquiri lumina, sum Aeolides cecinisse Nonacria habent exigui
|
||||
inque **et** silvae trementi conplexa dextraeque, ut. Iunctura volumina venisse
|
||||
imagine tumidum: **frequentat** dum dolor positae sponsa extemplo magnos Nestor
|
||||
et limenque: nunc effetum certe.
|
||||
|
||||
Dicta spectare arbitrium feres: coniungere imperat puero perdere steterat
|
||||
temperat me umbramque. Altera est Iovis iam, praeduraque rector atque cara,
|
||||
canities. Cervicibus certeque quid propioraque adest genuisse pectore cuius
|
||||
petit, dignare. Et meorum effugiam socer, _nunc_ vel, feris artus merum videri.
|
||||
Et videt lora sacras cursu furta quas pro onerata Maeandros, amori soleat apri
|
||||
pendebat vetitum, ex crescentemque usus?
|
||||
|
||||
Dei cede campoque vel Pallas pererrat ante meo. [Quisque
|
||||
quamquam](http://nudare.org/vindexque-dilexit) tempus, erat molis a feror
|
||||
marmore ut Zephyro [contentus vanis](http://aequor.org/qui). _Puto res_
|
||||
cervicibus vires benefacta neque rigidas attonitus fumabant alta, accipe
|
||||
habitataque vacuus. Mea tenere, vulgata, te adspexit, in interdum bibebatur
|
||||
debet Dictys te fugit te quoque! Orbem gerit prius altae nec quid irae Cinyras
|
||||
Anguemque iacent; cum hoc qui ubi.
|
4
Sites/blog/data/authors.yml
Normal file
4
Sites/blog/data/authors.yml
Normal file
@ -0,0 +1,4 @@
|
||||
- name: Anson Biggs
|
||||
twitter: Anson_3D
|
||||
photo: '.jpg'
|
||||
url: https://www.linkedin.com/in/ansonbiggs/
|
2
Sites/blog/data/designer.yml
Normal file
2
Sites/blog/data/designer.yml
Normal file
@ -0,0 +1,2 @@
|
||||
name: Anson Biggs
|
||||
url: https://www.linkedin.com/in/ansonbiggs/
|
10
Sites/blog/data/menu.yml
Normal file
10
Sites/blog/data/menu.yml
Normal file
@ -0,0 +1,10 @@
|
||||
- item: About
|
||||
url: about/
|
||||
- item: Blog
|
||||
url: ""
|
||||
- item: Category A
|
||||
url: categories/development/
|
||||
- item: Category B
|
||||
url: categories/golang/
|
||||
- item: Tag B
|
||||
url: tags/go/
|
@ -0,0 +1,339 @@
|
||||
function createEl(element) {
|
||||
return document.createElement(element);
|
||||
}
|
||||
|
||||
function elem(selector, parent = document){
|
||||
let elem = document.querySelector(selector);
|
||||
return elem != false ? elem : false;
|
||||
}
|
||||
|
||||
function elems(selector) {
|
||||
let elems = document.querySelectorAll(selector);
|
||||
return elems.length ? elems : false;
|
||||
}
|
||||
|
||||
function pushClass(el, targetClass) {
|
||||
// equivalent to addClass
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? false : elClass.add(targetClass);
|
||||
}
|
||||
}
|
||||
|
||||
function deleteClass(el, targetClass) {
|
||||
// equivalent to removeClass
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? elClass.remove(targetClass) : false;
|
||||
}
|
||||
}
|
||||
|
||||
function modifyClass(el, targetClass) {
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
elClass = el.classList;
|
||||
elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
|
||||
}
|
||||
}
|
||||
|
||||
function containsClass(el, targetClass) {
|
||||
if (el && typeof el == 'object' && targetClass) {
|
||||
return el.classList.contains(targetClass) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
function isChild(node, parentClass) {
|
||||
let objectsAreValid = node && typeof node == 'object' && parentClass && typeof parentClass == 'string';
|
||||
return (objectsAreValid && node.closest(parentClass)) ? true : false;
|
||||
}
|
||||
|
||||
(function updateDate() {
|
||||
var date = new Date();
|
||||
var year = date.getFullYear();
|
||||
elem('.year').innerHTML = year;
|
||||
})();
|
||||
|
||||
(function() {
|
||||
let bar = 'nav_bar-wrap';
|
||||
let navBar = elem(`.${bar}`);
|
||||
let nav = elem('.nav-body');
|
||||
let open = 'nav-open';
|
||||
let exit = 'nav-exit';
|
||||
let drop = 'nav-drop';
|
||||
let pop = 'nav-pop';
|
||||
let navDrop = elem(`.${drop}`);
|
||||
let hidden = 'hidden';
|
||||
|
||||
function toggleMenu(){
|
||||
modifyClass(navDrop, pop);
|
||||
modifyClass(navBar, hidden);
|
||||
let menuOpen = containsClass(nav, open);
|
||||
let menuPulled = containsClass(nav, exit);
|
||||
|
||||
let status = menuOpen || menuPulled ? true : false;
|
||||
|
||||
status ? modifyClass(nav, exit) : modifyClass(nav, open);
|
||||
status ? modifyClass(nav, open) : modifyClass(nav, exit);
|
||||
}
|
||||
|
||||
// $('.nav-bar, .nav-close').on('click', () => toggleMenu());
|
||||
navBar.addEventListener('click', function() {
|
||||
toggleMenu();
|
||||
});
|
||||
elem('.nav-close').addEventListener('click', function() {
|
||||
toggleMenu();
|
||||
});
|
||||
|
||||
elem('.nav-drop').addEventListener('click', function(e) {
|
||||
e.target === this ? toggleMenu() : false;
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
(function share(){
|
||||
let share = elem('.share');
|
||||
let open = 'share-open';
|
||||
let close = 'share-close';
|
||||
let button = elem('.share-trigger');
|
||||
|
||||
function showShare() {
|
||||
pushClass(share, open);
|
||||
deleteClass(share, close);
|
||||
}
|
||||
|
||||
function hideShare() {
|
||||
pushClass(share, open);
|
||||
deleteClass(share, close);
|
||||
}
|
||||
if (button) {
|
||||
button.addEventListener('click', function() {
|
||||
showShare();
|
||||
setTimeout(hideShare, 5000);
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
(function comments(){
|
||||
|
||||
let comments = elem('.js-comments');
|
||||
let form = elem('.form');
|
||||
let body = elem('body');
|
||||
let button = elem('.form_toggle');
|
||||
let loading = 'form-loading';
|
||||
let open = 'form-open';
|
||||
let show = 'modal_show'
|
||||
let toggled = 'toggled';
|
||||
|
||||
let successOutput = [
|
||||
'Review submitted',
|
||||
'Thanks for your review! It will show on the site once it has been approved.'
|
||||
];
|
||||
|
||||
let errorOutput = [
|
||||
'Error',
|
||||
'Sorry, there was an error with the submission!'
|
||||
];
|
||||
|
||||
function handleForm(form) {
|
||||
form.addEventListener('submit', function (event) {
|
||||
pushClass(form, loading);
|
||||
|
||||
function resetForm() {
|
||||
deleteClass(form, loading);
|
||||
// $("form").trigger("reset");
|
||||
}
|
||||
|
||||
function formActions(message) {
|
||||
showModal(...message) // array destructuring
|
||||
resetForm();
|
||||
}
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
function formToJSON(obj) {
|
||||
let rawData = Array.from(obj.elements);
|
||||
let data = {};
|
||||
rawData.forEach(function(element){
|
||||
data[element.name] = element.value;
|
||||
});
|
||||
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
|
||||
let data = formToJSON(form);
|
||||
let url = form.getAttribute('action').trim();
|
||||
fetch(url, {
|
||||
method: "POST",
|
||||
body: data,
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
}).then(function(res) {
|
||||
if(res.ok) {
|
||||
formActions(successOutput);
|
||||
} else {
|
||||
formActions(errorOutput);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
formActions(errorOutput);
|
||||
console.error('Error:', error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
form ? handleForm(form) : false;
|
||||
function closeModal() {
|
||||
elem('.modal_close').addEventListener('click', function () {
|
||||
deleteClass(body, show);
|
||||
deleteClass(form, loading);
|
||||
deleteClass(form, open);
|
||||
deleteClass(button, toggled);
|
||||
});
|
||||
}
|
||||
|
||||
containsClass(body, show) ? closeModal() : false;
|
||||
|
||||
function showModal(title, message) {
|
||||
elem('.modal_title').textContent = title;
|
||||
elem('.modal_text').innerHTML = message;
|
||||
|
||||
pushClass(body, show);
|
||||
}
|
||||
|
||||
|
||||
(function toggleForm() {
|
||||
if(button) {
|
||||
button.addEventListener('click', function() {
|
||||
modifyClass(form, open);
|
||||
modifyClass(this, toggled);
|
||||
this.textContent = containsClass(this, toggled) ? 'cancel' : 'comment';
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
})();
|
||||
|
||||
function elemAttribute(elem, attr, value = null) {
|
||||
if (value) {
|
||||
elem.setAttribute(attr, value);
|
||||
} else {
|
||||
value = elem.getAttribute(attr);
|
||||
return value ? value : false;
|
||||
}
|
||||
}
|
||||
|
||||
(function(){
|
||||
let links = document.querySelectorAll('a');
|
||||
if(links) {
|
||||
Array.from(links).forEach(function(link){
|
||||
let target, rel, blank, noopener, attr1, attr2, url, isExternal;
|
||||
url = elemAttribute(link, 'href');
|
||||
isExternal = (url && typeof url == 'string' && url.startsWith('http')) && !containsClass(link, 'nav_item') && !isChild(link, '.post_item') && !isChild(link, '.pager') ? true : false;
|
||||
if(isExternal) {
|
||||
target = 'target';
|
||||
rel = 'rel';
|
||||
blank = '_blank';
|
||||
noopener = 'noopener';
|
||||
attr1 = elemAttribute(link, target);
|
||||
attr2 = elemAttribute(link, noopener);
|
||||
|
||||
attr1 ? false : elemAttribute(link, target, blank);
|
||||
attr2 ? false : elemAttribute(link, noopener, noopener);
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
let headingNodes = [], results, link, icon, current, id,
|
||||
tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
|
||||
|
||||
|
||||
current = document.URL;
|
||||
|
||||
tags.forEach(function(tag){
|
||||
results = document.getElementsByTagName(tag);
|
||||
Array.prototype.push.apply(headingNodes, results);
|
||||
});
|
||||
|
||||
headingNodes.forEach(function(node){
|
||||
link = createEl('a');
|
||||
icon = createEl('img');
|
||||
icon.src = 'http://localhost:1313/images/icons/link.svg';
|
||||
link.className = 'link';
|
||||
link.appendChild(icon);
|
||||
id = node.getAttribute('id');
|
||||
if(id) {
|
||||
link.href = `${current}#${id}`;
|
||||
node.appendChild(link);
|
||||
pushClass(node, 'link_owner');
|
||||
}
|
||||
});
|
||||
|
||||
const copyToClipboard = str => {
|
||||
// Create a <textarea> element
|
||||
const el = createEl('textarea');
|
||||
// Set its value to the string that you want copied
|
||||
el.value = str;
|
||||
// Make it readonly to be tamper-proof
|
||||
el.setAttribute('readonly', '');
|
||||
// Move outside the screen to make it invisible
|
||||
el.style.position = 'absolute';
|
||||
el.style.left = '-9999px';
|
||||
// Append the <textarea> element to the HTML document
|
||||
document.body.appendChild(el);
|
||||
// Check if there is any content selected previously
|
||||
const selected =
|
||||
document.getSelection().rangeCount > 0
|
||||
? document.getSelection().getRangeAt(0) // Store selection if found
|
||||
: false; // Mark as false to know no selection existed before
|
||||
el.select(); // Select the <textarea> content
|
||||
document.execCommand('copy'); // Copy - only works as a result of a user action (e.g. click events)
|
||||
document.body.removeChild(el); // Remove the <textarea> element
|
||||
if (selected) { // If a selection existed before copying
|
||||
document.getSelection().removeAllRanges(); // Unselect everything on the HTML document
|
||||
document.getSelection().addRange(selected); // Restore the original selection
|
||||
}
|
||||
}
|
||||
|
||||
(function copyHeadingLink() {
|
||||
let deeplinks = document.querySelectorAll;
|
||||
let deeplink = 'link';
|
||||
if(deeplinks) {
|
||||
document.body.addEventListener('click', function(event)
|
||||
{
|
||||
let target = event.target;
|
||||
if (target.classList.contains(deeplink) || target.parentNode.classList.contains(deeplink)) {
|
||||
event.preventDefault();
|
||||
let newLink = target.href != undefined ? target.href : target.parentNode.href;
|
||||
copyToClipboard(newLink);
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
(function copyLinkToShare() {
|
||||
let copy, copied, excerpt, isCopyIcon, isInExcerpt, link, page, postCopy, postLink, target;
|
||||
copy = 'copy';
|
||||
copied = 'copy_done';
|
||||
excerpt = 'excerpt';
|
||||
postCopy = 'post_copy';
|
||||
postLink = 'post_card';
|
||||
page = document.documentElement;
|
||||
|
||||
page.addEventListener('click', function(event) {
|
||||
target = event.target;
|
||||
isCopyIcon = containsClass(target, copy);
|
||||
isInExcerpt = containsClass(target, postCopy);
|
||||
if (isCopyIcon) {
|
||||
if (isInExcerpt) {
|
||||
link = target.closest(`.${excerpt}`).previousElementSibling;
|
||||
link = containsClass(link, postLink)? elemAttribute(link, 'href') : false;
|
||||
} else {
|
||||
link = window.location.href;
|
||||
}
|
||||
if(link) {
|
||||
copyToClipboard(link);
|
||||
pushClass(target, copied);
|
||||
}
|
||||
}
|
||||
});
|
||||
})();
|
@ -0,0 +1 @@
|
||||
{"Target":"js/index.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1 @@
|
||||
{"Target":"css/main.29dc3cd97cc444f2814115c9e14cecf81ae89bf0ef85d08d7a9b02cc04e56d9169671a3a54273ea3b291d4711acacb9223000408296836c54503375f68dd5bf2.css","MediaType":"text/css","Data":{"Integrity":"sha512-Kdw82XzERPKBQRXJ4Uzs+Brom/DvhdCNepsCzATlbZFpZxo6VCc+o7KR1HEaysuSIwAECCloNsVFAzdfaN1b8g=="}}
|
1
Sites/blog/themes/hugo-swift-theme
Submodule
1
Sites/blog/themes/hugo-swift-theme
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f990880aee6e807b308094138c8686c8051af871
|
201
bin/LICENSE
Normal file
201
bin/LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
187
bin/README.md
Normal file
187
bin/README.md
Normal file
@ -0,0 +1,187 @@
|
||||

|
||||
|
||||
A Fast and Flexible Static Site Generator built with love by [bep](https://github.com/bep), [spf13](http://spf13.com/) and [friends](https://github.com/gohugoio/hugo/graphs/contributors) in [Go][].
|
||||
|
||||
[Website](https://gohugo.io) |
|
||||
[Forum](https://discourse.gohugo.io) |
|
||||
[Documentation](https://gohugo.io/getting-started/) |
|
||||
[Installation Guide](https://gohugo.io/getting-started/installing/) |
|
||||
[Contribution Guide](CONTRIBUTING.md) |
|
||||
[Twitter](https://twitter.com/gohugoio)
|
||||
|
||||
[](https://godoc.org/github.com/gohugoio/hugo)
|
||||
[](https://travis-ci.org/gohugoio/hugo)
|
||||
[](https://goreportcard.com/report/github.com/gohugoio/hugo)
|
||||
|
||||
## Overview
|
||||
|
||||
Hugo is a static HTML and CSS website generator written in [Go][].
|
||||
It is optimized for speed, ease of use, and configurability.
|
||||
Hugo takes a directory with content and templates and renders them into a full HTML website.
|
||||
|
||||
Hugo relies on Markdown files with front matter for metadata, and you can run Hugo from any directory.
|
||||
This works well for shared hosts and other systems where you don’t have a privileged account.
|
||||
|
||||
Hugo renders a typical website of moderate size in a fraction of a second.
|
||||
A good rule of thumb is that each piece of content renders in around 1 millisecond.
|
||||
|
||||
Hugo is designed to work well for any kind of website including blogs, tumbles, and docs.
|
||||
|
||||
#### Supported Architectures
|
||||
|
||||
Currently, we provide pre-built Hugo binaries for Windows, Linux, FreeBSD, NetBSD, macOS (Darwin), and [Android](https://gist.github.com/bep/a0d8a26cf6b4f8bc992729b8e50b480b) for x64, i386 and ARM architectures.
|
||||
|
||||
Hugo may also be compiled from source wherever the Go compiler tool chain can run, e.g. for other operating systems including DragonFly BSD, OpenBSD, Plan 9, and Solaris.
|
||||
|
||||
**Complete documentation is available at [Hugo Documentation](https://gohugo.io/getting-started/).**
|
||||
|
||||
## Choose How to Install
|
||||
|
||||
If you want to use Hugo as your site generator, simply install the Hugo binaries.
|
||||
The Hugo binaries have no external dependencies.
|
||||
|
||||
To contribute to the Hugo source code or documentation, you should [fork the Hugo GitHub project](https://github.com/gohugoio/hugo#fork-destination-box) and clone it to your local machine.
|
||||
|
||||
Finally, you can install the Hugo source code with `go`, build the binaries yourself, and run Hugo that way.
|
||||
Building the binaries is an easy task for an experienced `go` getter.
|
||||
|
||||
### Install Hugo as Your Site Generator (Binary Install)
|
||||
|
||||
Use the [installation instructions in the Hugo documentation](https://gohugo.io/getting-started/installing/).
|
||||
|
||||
### Build and Install the Binaries from Source (Advanced Install)
|
||||
|
||||
#### Prerequisite Tools
|
||||
|
||||
* [Git](https://git-scm.com/)
|
||||
* [Go (at least Go 1.11)](https://golang.org/dl/)
|
||||
|
||||
#### Fetch from GitHub
|
||||
|
||||
Since Hugo 0.48, Hugo uses the Go Modules support built into Go 1.11 to build. The easiest is to clone Hugo in a directory outside of `GOPATH`, as in the following example:
|
||||
|
||||
```bash
|
||||
mkdir $HOME/src
|
||||
cd $HOME/src
|
||||
git clone https://github.com/gohugoio/hugo.git
|
||||
cd hugo
|
||||
go install
|
||||
```
|
||||
|
||||
**If you are a Windows user, substitute the `$HOME` environment variable above with `%USERPROFILE%`.**
|
||||
|
||||
## The Hugo Documentation
|
||||
|
||||
The Hugo documentation now lives in its own repository, see https://github.com/gohugoio/hugoDocs. But we do keep a version of that documentation as a `git subtree` in this repository. To build the sub folder `/docs` as a Hugo site, you need to clone this repo:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:gohugoio/hugo.git
|
||||
```
|
||||
## Contributing to Hugo
|
||||
|
||||
For a complete guide to contributing to Hugo, see the [Contribution Guide](CONTRIBUTING.md).
|
||||
|
||||
We welcome contributions to Hugo of any kind including documentation, themes,
|
||||
organization, tutorials, blog posts, bug reports, issues, feature requests,
|
||||
feature implementations, pull requests, answering questions on the forum,
|
||||
helping to manage issues, etc.
|
||||
|
||||
The Hugo community and maintainers are [very active](https://github.com/gohugoio/hugo/pulse/monthly) and helpful, and the project benefits greatly from this activity.
|
||||
|
||||
### Asking Support Questions
|
||||
|
||||
We have an active [discussion forum](https://discourse.gohugo.io) where users and developers can ask questions.
|
||||
Please don't use the GitHub issue tracker to ask questions.
|
||||
|
||||
### Reporting Issues
|
||||
|
||||
If you believe you have found a defect in Hugo or its documentation, use
|
||||
the GitHub issue tracker to report the problem to the Hugo maintainers.
|
||||
If you're not sure if it's a bug or not, start by asking in the [discussion forum](https://discourse.gohugo.io).
|
||||
When reporting the issue, please provide the version of Hugo in use (`hugo version`).
|
||||
|
||||
### Submitting Patches
|
||||
|
||||
The Hugo project welcomes all contributors and contributions regardless of skill or experience level.
|
||||
If you are interested in helping with the project, we will help you with your contribution.
|
||||
Hugo is a very active project with many contributions happening daily.
|
||||
|
||||
Because we want to create the best possible product for our users and the best contribution experience for our developers,
|
||||
we have a set of guidelines which ensure that all contributions are acceptable.
|
||||
The guidelines are not intended as a filter or barrier to participation.
|
||||
If you are unfamiliar with the contribution process, the Hugo team will help you and teach you how to bring your contribution in accordance with the guidelines.
|
||||
|
||||
For a complete guide to contributing code to Hugo, see the [Contribution Guide](CONTRIBUTING.md).
|
||||
|
||||
[](https://github.com/igrigorik/ga-beacon)
|
||||
|
||||
[Go]: https://golang.org/
|
||||
[Hugo Documentation]: https://gohugo.io/overview/introduction/
|
||||
|
||||
## Dependencies
|
||||
|
||||
Hugo stands on the shoulder of many great open source libraries, in lexical order:
|
||||
|
||||
| Dependency | License |
|
||||
| :------------- | :------------- |
|
||||
| [github.com/BurntSushi/locker](https://github.com/BurntSushi/locker) | The Unlicense |
|
||||
| [github.com/BurntSushi/toml](https://github.com/BurntSushi/toml) | MIT License |
|
||||
| [github.com/PuerkitoBio/purell](https://github.com/PuerkitoBio/purell) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [github.com/PuerkitoBio/urlesc](https://github.com/PuerkitoBio/urlesc) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [github.com/alecthomas/chroma](https://github.com/alecthomas/chroma) | MIT License |
|
||||
| [github.com/bep/debounce](https://github.com/bep/debounce) | MIT License |
|
||||
| [github.com/bep/gitmap](https://github.com/bep/gitmap) | MIT License |
|
||||
| [github.com/bep/go-tocss](https://github.com/bep/go-tocss) | MIT License |
|
||||
| [github.com/niklasfasching/go-org](https://github.com/niklasfasching/go-org) | MIT License |
|
||||
| [github.com/cpuguy83/go-md2man](https://github.com/cpuguy83/go-md2man) | MIT License |
|
||||
| [github.com/danwakefield/fnmatch](https://github.com/danwakefield/fnmatch) | BSD 2-Clause "Simplified" License |
|
||||
| [github.com/disintegration/imaging](https://github.com/disintegration/imaging) | MIT License |
|
||||
| [github.com/dlclark/regexp2](https://github.com/dlclark/regexp2) | MIT License |
|
||||
| [github.com/eknkc/amber](https://github.com/eknkc/amber) | MIT License |
|
||||
| [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [github.com/gobwas/glob](https://github.com/gobwas/glob) | MIT License |
|
||||
| [github.com/gorilla/websocket](https://github.com/gorilla/websocket) | BSD 2-Clause "Simplified" License |
|
||||
| [github.com/hashicorp/go-immutable-radix](https://github.com/hashicorp/go-immutable-radix) | Mozilla Public License 2.0 |
|
||||
| [github.com/hashicorp/golang-lru](https://github.com/hashicorp/golang-lru) | Mozilla Public License 2.0 |
|
||||
| [github.com/hashicorp/hcl](https://github.com/hashicorp/hcl) | Mozilla Public License 2.0 |
|
||||
| [github.com/jdkato/prose](https://github.com/jdkato/prose) | MIT License |
|
||||
| [github.com/kyokomi/emoji](https://github.com/kyokomi/emoji) | MIT License |
|
||||
| [github.com/magiconair/properties](https://github.com/magiconair/properties) | BSD 2-Clause "Simplified" License |
|
||||
| [github.com/markbates/inflect](https://github.com/markbates/inflect) | MIT License |
|
||||
| [github.com/mattn/go-isatty](https://github.com/mattn/go-isatty) | MIT License |
|
||||
| [github.com/mattn/go-runewidth](https://github.com/mattn/go-runewidth) | MIT License |
|
||||
| [github.com/miekg/mmark](https://github.com/miekg/mmark) | Simplified BSD License |
|
||||
| [github.com/mitchellh/hashstructure](https://github.com/mitchellh/hashstructure) | MIT License |
|
||||
| [github.com/mitchellh/mapstructure](https://github.com/mitchellh/mapstructure) | MIT License |
|
||||
| [github.com/muesli/smartcrop](https://github.com/muesli/smartcrop) | MIT License |
|
||||
| [github.com/nicksnyder/go-i18n](https://github.com/nicksnyder/go-i18n) | MIT License |
|
||||
| [github.com/olekukonko/tablewriter](https://github.com/olekukonko/tablewriter) | MIT License |
|
||||
| [github.com/pelletier/go-toml](https://github.com/pelletier/go-toml) | MIT License |
|
||||
| [github.com/pkg/errors](https://github.com/pkg/errors) | BSD 2-Clause "Simplified" License |
|
||||
| [github.com/russross/blackfriday](https://github.com/russross/blackfriday) | Simplified BSD License |
|
||||
| [github.com/shurcooL/sanitized_anchor_name](https://github.com/shurcooL/sanitized_anchor_name) | MIT License |
|
||||
| [github.com/spf13/afero](https://github.com/spf13/afero) | Apache License 2.0 |
|
||||
| [github.com/spf13/cast](https://github.com/spf13/cast) | MIT License |
|
||||
| [github.com/spf13/cobra](https://github.com/spf13/cobra) | Apache License 2.0 |
|
||||
| [github.com/spf13/fsync](https://github.com/spf13/fsync) | MIT License |
|
||||
| [github.com/spf13/jwalterweatherman](https://github.com/spf13/jwalterweatherman) | MIT License |
|
||||
| [github.com/spf13/nitro](https://github.com/spf13/nitro) | Apache License 2.0 |
|
||||
| [github.com/spf13/pflag](https://github.com/spf13/pflag) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [github.com/spf13/viper](https://github.com/spf13/viper) | MIT License |
|
||||
| [github.com/tdewolff/minify](https://github.com/tdewolff/minify) | MIT License |
|
||||
| [github.com/tdewolff/parse](https://github.com/tdewolff/parse) | MIT License |
|
||||
| [github.com/wellington/go-libsass](https://github.com/wellington/go-libsass) | Apache License 2.0 |
|
||||
| [github.com/yosssi/ace](https://github.com/yosssi/ace) | MIT License |
|
||||
| [golang.org/x/image](https://golang.org/x/image) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [golang.org/x/net](https://golang.org/x/net) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [golang.org/x/sync](https://golang.org/x/sync) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [golang.org/x/sys](https://golang.org/x/sys) | BSD 3-Clause "New" or "Revised" License |
|
||||
| [golang.org/x/text](https://golang.org/x/text) | BSD 3-Clause "New" or "Revised" License
|
||||
| [gopkg.in/yaml.v2](https://gopkg.in/yaml.v2) | Apache License 2.0 |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
bin/hugo.exe
Normal file
BIN
bin/hugo.exe
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user