Tutorial de Metalsmith. Paulo Jerônimo :47:59 BRT

Documentos relacionados
Objetivo. Introdução; História; Conceito; SVN; Instalação; Prática através de exercícios.

José cria um repositório vazio no Bitbucket ( José cria no seu computador de desenvolvimento um repositório local

Git. Leonardo Gresta Paulino Murta

git git Utilização básica no controle de versão de pacotes João Eriberto Mota Filho Utilização básica no controle de versão de pacotes

Curso de git. Aula de outubro de 2018

Controle de versão utilizando Git André G. C. Pacheco Janeiro de 2018

Como criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Padrões de configuração GIT

Iniciando Git e GitHub. Univali, 2017 Benjamin Mezger

TUTORIAL GIT Victor Breder Comp-19 Março de 2017

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

Secure Client. Manual do Usuário. IPNv2. Secure Client IPNv2

DESBRAVANDO O GIT E O GITHUB

Entre os VCS s, podemos sitar o Mercurial, Subversion, CVS, Git dentre outros. E é do Git que vamos falar hoje.

Uma Introdução aos Sistemas de Controle de Versão Distribuídos. Leonardo Gresta Paulino Murta

Instalação em Windows 64 bits de Python3, OpenCV4 e Tensorflow12:

Controle de Versões com o Git

MANUAL DO SECURE CLIENT

Controlo de versões com GIT

Exemplos e comandos úteis de git

Git e Pais

Tutorial Ambiente, instalação e começando um novo projeto Django

Ricardo R. Lecheta. Novatec

Node.js. Download

Praticando Git. Praticando Git

Programação Web - HTML

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Tutorial 1 Configuração Apache Tomcat no NetBeans 8.0 (passo a passo)

(Visualizar versões remotas do NodeJs) $ nvm ls-remote Obs.: várias versões escolher/copiar a última versão LTS para instalação

Ruby on Rails Avançado

Backup do Samba 4. Introdução. Backup do samba4

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

HTML 5 TAGS BÁSICAS E ESTRUTURAIS. Prof. Rosemary Melo

Git e contribuição para projetos Open Source. Bruno Orlandi

JOHN MAYER - PARADISE VALLEY

BR localization: Hotfix 118. Technical documentation Version Feb 19, 2019

Tutorial Zabbix Migração 2.4 para 3.0 CentOS 7.1 Português via Pacote

CONCEITOS BÁSICOS SOBRE NODE.JS

Customização ao Extremo

Introdução à Engenharia ENG1000

Primeiros passos com no trabalho com Git

Customização de tema no plone Documentation. Release latest

Controle de Versão com GIT

TUTORIAL DE UTILIZAÇÃO DO OWL-S COMPOSER W. Trabalho de Conclusão de Curso Aluno: Adriano Novais Queiroz Orientadora: Prof.ª Daniela Barreiro Claro

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

Tutorial AGI para Elastix (port.php + consulta.php) v.2

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Tutorial de Instalação do Moodle no Ubuntu

BR localization: Hotfix 001. Technical documentation Documentação Técnica Version Oct 16, de outubro de 2018

Configurando ambiente de desenvolvimento React Native

Configurando uma aplicação Struts

E como podemos fazer o mesmo entendimento em JavaScript? Ou seja, como a linguagem funciona? A linguagem JavaScript surgiu mais ou menos ao mesmo

OVERRIDE NO JOOMLA 3.5

Tutorial Django e SVN na IDE Pycharm

Obtendo Ajuda. Linux oferece diversas formas de ajuda aos seus usuários:

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

Estudo de Caso II: LINUX. Flávia Maristela

INSTALACAO PRODUTOS DIGIVOICE NO ISSABEL PREPARAÇÃO DO SISTEMA

Prof. Esp. Andrew Rodrigues 1

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Globo Photo Documentation

Instalacao do Zabbix 2.x em Ambiente CentOS

Introdução ao Git. Author: Eduardo R. D Avila Date: Tue Mar 26 19:00:

Manual configuração Câmera SEKCAM PRO - V. 1.1

Má combinação SVN UUID e de dados SVN sincronização

WINDOWS. 1. Baixar o software cwrsync e efetuar a instalação.

EA975 - Laboratório de Engenharia de Software

Guia do Revendedor Windows Índice

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

BR localization: Hotfix 111. Technical documentation Documentação Técnica Version Nov 06, de novembro de 2018

Manual Técnico. Instalação e Configuração do Reporting Services

POO. Programação Orientada a Objeto. Conceitor HTML/PHP. Professor Jarbas Araújo

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

Masternodes da Moeda Discount

Gerencia um CSR para o certificado da terceira e a instalação em CMX

Laboratório 01 NetBeans

Pesquise defeitos arquivo manifesto não encontrado o erro no pacote recebido quando o ACS 5.x é promovido ou remendado

Como gerar e instalar um certificado em um S A

Construção de sites Aula 1

Responsáveis: Bruno Silva, André Coelho, Wellington Silva, Marcelo Hirano. Atualizado em: 08/09/2017 CONFIGURAÇÃO DE BACKUP DE ORIGEM LINUX

Conceitos de HTML 5 Aula 1

PySIGEP Documentation

Entraremos em sistema linux para realizar algumas tarefas e aprender alguns comandos.

Instalação Apache Tomcat 8.5 no Debian 8

Frameworks para interfaces móveis

Sistema SGPA-IFSP. Manual de Instalação

Programação para Internet I

Destaque em verde indica instalação de Cekeikon completa com GPU/CUDA8.0.

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Software Configuration Management

Delphi. Criando Ajuda Online. Criando Ajuda Online. Criando Ajuda Online. Jocélio Passos Criando Ajuda Online

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 5 PROF. EMILIO PARMEGIANI

Estácio-FIC Graduação em Redes de Computadores

GIT. Prof. Rafael Sandim

ADMINISTRAÇÃO DE SISTEMAS UNIX Aula Prática 01 Sistemas Operacionais Gil Eduardo de Andrade

TUTORIAL DE INSTALAÇÃO DO AMBIENTE DE DESENVOLVIMENTO ANDROID NO UBUNTU

Camera, Kinect e ROS. Andrey Masiero. 5 de fevereiro de 2016

HTML BÁSICO E TEMPLATE VIEW. Gabrielle Amorim Porto

Transcrição:

Tutorial de Metalsmith Paulo Jerônimo 2016-07-04 17:47:59 BRT

Conteúdo 1. Criando o projeto......................................................................... 2 2. Adicionando o Metalsmith................................................................. 4 3. Fazendo o uso de arquivos Markdown...................................................... 6 4. Disponibilizando arquivos estáticos (imagens, CSS, etc)...................................... 8 5. Desenvolvendo o uso de layouts.......................................................... 10 6. Suportando o uso de múltiplas línguas.................................................... 11 7. Inserindo a localização nas URLs.......................................................... 12 8. Traduzindo o layout..................................................................... 14 9. Traduzindo as URLs..................................................................... 15 10. Gerando um índice localizado........................................................... 16 11. Apresentando uma história de sucesso................................................... 17

Este tutorial (AINDA INCOMPLETO, EM DRAFT) apresenta como criar um site estático, em JavaScript, utilizando o Metalsmith, um dos vários geradores de sites estáticos existentes no mercado. Os seguintes assuntos são explorados: 1. Organização de uma estrutura de diretórios para o projeto; 2. Utilização do NodeJS e do Metalsmith; 3. Utilização do Git para o versionamento dos fontes; 4. Utilização do Vim com plugins provendo features para syntax highlighting e code completion para linguagens como JavaScript, JSON, Jade e Markdown, dentre outras; 5. Escrita de páginas utilizando a linguagem Markdown; 6. Escrita de templates utilizando a linguagem Jade; 7. Criação de sites apresentando conteúdos em diferentes línguas; Nesta versão, este tutorial expande, adapta e executa, passo a passo, numa VM Linux, os comandos apresentados, de forma bastante prática prática e assertiva, nestes dois outro tutoriais: 1. Building a static multi-language site with Metalsmith (part I) 2. Building a static multi-language site with Metalsmith (part II) Para que você possa se aprofundar ainda mais nos assuntos cobertos aqui, é recomendada a leitura desses materiais. Você pode fazer isso antes ou depois de seguir este tutorial, fica a teu critério. 1

1. Criando o projeto Inicie o projeto com os seguintes comandos: mkdir metalsmith-test && cd $_ cat > README.md <<'' # Metalsmith Test Aplicação desenvolvida seguindo o [tutorialmetalsmith](https://paulojeronimo.github.io/tutorial-metalsmith/) criado pelo [Paulo Jerônimo](https://github.com/paulojeronimo). date > TIMESTAMP npm init Abaixo são apresentadas as respostas que dou para os questionamentos feitos pelo comando acima. Em tuas respostas, utilize o teu nome para o campo author e deixe as outras respostas iguais. This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg> --save` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. name: (metalsmith-test) version: (1.0.0) description: Metalsmith test entry point: (index.js) test command: git repository:. keywords: metalsmith javascript author: Paulo Jerônimo license: (ISC) Verifique se o conteúdo do teu arquivo package.json é semelhante a este. Faça o teu primeiro git commit: 2

git init git commit -m 'Criado o projeto' Você receberá um erro na execução do comando git commit se ainda não ainda não tiver configurado teu nome e email no git. Isso ocorrerá, por exemplo, caso você esteja utilizando a fedora-nodejs-box pela primeira vez. Para corrigir esse problema, e poder reexecutar o comando, execute os comandos a seguir: (obviamente, informe teus dados como valores para user.name e user.email) git config --global user.name "Paulo Jerônimo" git config --global user.email "paulojeronimo@gmail.com" 3

2. Adicionando o Metalsmith Adicione o metalsmith ao package.json e crie um novo arquivo HTML com os comandos abaixo: npm install --save metalsmith mkdir content && touch content/index.html Observe as mudanças no repositório (). Crie o arquivo index.js com o comando abaixo: cat > index.js <<'' var path = require('path'); var metalsmith = require('metalsmith'); metalsmith( dirname).source('content').destination('dist').build(function (err) { if (err) { console.error(err); } }); Observe as mudanças na estrutura de diretórios do repositório: tree -L 1 node index.js find dist/ Crie o arquivo.gitignore com o comando abaixo: cat >.gitignore <<'' dist node_modules Faça o teu segundo commit: git commit -m 'Adicionado o uso do Metalsmith' 4

Verifique o log do repositório: git log --name-status 5

3. Fazendo o uso de arquivos Markdown Renomeie e o arquivo index.html para index.md e altere o seu conteúdo com os seguintes comandos: git mv content/index.html content/index.md cat > content/index.md <<'' --- title: Home --- My collection of **recipes**. Adicione o pacote metalsmith-markdown: npm install --save metalsmith-markdown Clone o código desse tutorial e adicione seu diretório ao.gitignore. Estamos fazendo isso para poder utilizar alguns arquivos de seu repositório. git clone https://github.com/paulojeronimo/tutorial-metalsmith echo tutorial-metalsmith >>.gitignore O conteúdo apresenta, no formato diff, as mudanças que você precisará fazer no index.js: as linhas com um "+" na frente representam adições realizadas. diff --git a/index.js b/index.js index eeb354b..6dac41a 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,12 @@ var path = require('path'); var metalsmith = require('metalsmith'); +var markdown = require('metalsmith-markdown'); metalsmith( dirname).source('content').destination('dist') +.use(markdown()).build(function (err) { if (err) { console.error(err); } }); 6

Você pode fazer essas alterações "na mão", alterando o arquivo, se quiser. Ou, você pode simplificar tua vida e executar o seguinte comando: git apply tutorial-metalsmith/patches/index.js.1 Você observará as mudanças através do comando git difftool. Antes, porém, faça as seguintes configurações: git config --global diff.tool vimdiff git config --global --add difftool.prompt false Agora, veja as diferenças: git difftool Execute o comando abaixo e veja o arquivo (index.html) que será gerado a partir do index.md: node index.js cat dist/index.html Faça o teu terceiro git commit: git commit -m 'Feito o uso de arquivos Markdown' 7

4. Disponibilizando arquivos estáticos (imagens, CSS, etc) Adicione o uso do pacote metalsmith-assets: npm install --save metalsmith-assets Crie o diretório assets/css e o arquivo styles.css dentro dele. Em seguida veja a estrutura montada. mkdir -p assets/css && touch $_/styles.css tree assets/ Para fazer uso de assets, mudanças precisarão ser realizadas no index.js, conforme o conteúdo abaixo: diff --git a/index.js b/index.js index 6dac41a..6f0288f 100644 --- a/index.js +++ b/index.js @@ -2,11 +2,15 @@ var path = require('path'); var metalsmith = require('metalsmith'); var markdown = require('metalsmith-markdown'); +var assets = require('metalsmith-assets'); metalsmith( dirname).source('content').destination('dist').use(markdown()) +.use(assets({ + source: 'assets' + })).build(function (err) { if (err) { console.error(err); } }); Altere o index.js executando o comando a seguir: git apply tutorial-metalsmith/patches/index.js.2 Verifique a mudança, rode novamente o index.js, e veja a estrutura construída: 8

cat index.js node $_ tree dist/ Faça o teu quarto git commit: git commit -m 'Disponibilizado arquivos estáticos' 9

5. Desenvolvendo o uso de layouts npm install --save jade metalsmith-layouts mkdir -p layouts && cat > layouts/default.jade << doctype html head title Cookbook - #{title} meta(charset='utf-8') link(rel='stylesheet', href='/css/styles.css') body header h1 Cookbook main: article h1= title!= contents cat tutorial-metalsmith/patches/index.js.3 git apply!$ node index.js cat dist/index.html git commit -m 'Desenvolvido o uso de layouts' 10

6. Suportando o uso de múltiplas línguas git mv content/index.md content/index_en.md cat > content/index_es.md <<'' --- title: Inicio --- Mi colección de **recetas**. npm install --save metalsmith-multi-language git apply tutorial-metalsmith/patches/index.js.4 cat index.js node $_ tree dist/ git commit -m 'Suportado o uso de múltiplas línguas 1/2' git apply tutorial-metalsmith/patches/layouts/default.jade.1 cat layouts/default.jade node index.js npm install -g http-server (cd dist/; http-server -p 4000) Abra a URL http://localhost:4000 e teste a aplicação. Ao terminar teu teste, pressione um Ctrl+C para encerrar o servidor e continuar os próximos comandos. git commit -am 'Suportado o uso de múltiplas línguas 2/2' 11

7. Inserindo a localização nas URLs npm install --save metalsmith-permalinks mkdir content/recipes cat > content/recipes/tortilla_en.md <<'' --- title: Spanish omelette --- Ingredients: - 2 potatoes - 3 eggs - 1 onion - Olive oil - Salt cat > content/recipes/tortilla_es.md <<'' --- title: Tortilla de patatas --- Ingredientes: - 2 patatas - 3 huevos - 1 cebolla - Aceite de oliva - Sal git apply tutorial-metalsmith/patches/index.js.5 git apply tutorial-metalsmith/patches/content/index_en.md.1 node index.js (cd dist/; http-server -p 4000) Abra a URL http://localhost:4000/en/spanish-omelette/ e teste a aplicação. Ao terminar teu teste, pressione um Ctrl+C para encerrar o servidor e continuar os próximos comandos. 12

git commit -m 'Inserida a localização nas URLs' 13

8. Traduzindo o layout npm install --save metalsmith-i18n mkdir -p locales cat > locales/en.json <<'' { "Cookbook": "Cookbook", "Also available in": "Also available in", "es": "castellano" } cat > locales/es.json <<'' { "Cookbook": "Recetario", "Also available in": "Disponible también en", "en": "English" } git apply tutorial-metalsmith/patches/index.js.6 git apply tutorial-metalsmith/patches/layouts/default.jade.2 node index.js (cd dist/; http-server -p 4000) Abra a URL http://localhost:4000/en/spanish-omelette/ e teste a aplicação. Ao terminar teu teste, pressione um Ctrl+C para encerrar o servidor e continuar os próximos comandos. git commit -m 'Traduzido o layout' 14

9. Traduzindo as URLs npm install --save metalsmith-collections git apply tutorial-metalsmith/patches/index.js.7 node index.js tree dist/ (cd dist/; http-server -p 4000) Abra a URL http://localhost:4000/en/recipes/spanish-omelette/ e teste a aplicação. Ao terminar teu teste, pressione um Ctrl+C para encerrar o servidor e continuar os próximos comandos. git commit -m 'Traduzidas as URLs' 15

10. Gerando um índice localizado git apply tutorial-metalsmith/patches/layouts/default.jade.3 cat > layouts/home.jade <<'' extends./default.jade block extra h2= ('Recipes') ul each recipe in collections[`recipes_${locale}`] li: a(href=`/${recipe.path}`)= recipe.title git apply tutorial-metalsmith/patches/content/index_en.md.2 node index.js sed -i 's/\(: "\)Recipes/\1Recetas/g' locales/es.json cat $_ git commit -m 'Gerado um índice localizado' 16

11. Apresentando uma história de sucesso Parabéns! Você concluiu um bom trabalho! Execute o comando git a seguir para ver toda a tua história de sucesso: git log --pretty=format:'* %s %Cgreen(%cr)' 17