Re: [Hackmeeting] Questua per le slides | la scrittura strut…

Delete this message

Reply to this message
Author: dan
Date:  
To: hackmeeting
Old-Topics: [Hackmeeting] Questua per le slides
Subject: Re: [Hackmeeting] Questua per le slides | la scrittura struturatta
43r0 wrote:
>Chi ha tenuto un talk e non ha lasciato le slides le può mandare a
>hackmeeting2016@??? o anche qui in lista - please in questo
>thread - poi verranno caricate sul sito.
>
>Nei prossimi giorni taglieremo anche gli audio dei talks che sono stati
>strimmati su icecast, va bene caricarli su http://www.arkiwi.org/ ? Chi
>mi da un paio di dritte? A qualcun@ scoccia?
>
>DAIDAIDAI


in allegato il file di testo in markdown del talk sulla scrittura
strutturata, dal quale ricavare in autonomia il Pdf o una slide.

ciao

~ d


% Scrivere e pubblicare in CommonMark alla buona
% dan [chiocciola] autistici [punto] org
% 16 marzo 2016

\newpage

# Introduzione

## Marcare il testo

Un marcatore è un segno convenzionale per indicare la formattazione.

I linguaggi di marcatura *leggeri* usano espressioni codificate abbastanza
semplici da essere utilizzabili durante la fase creativa di scrittura.

In altre parole sono un linguaggio con regole semplici per descrivere la
rappresentazione del testo da cui creare documenti strutturati che saranno
utilizzabili su più supporti.

## Esempio di scrittura con marcatori

    # Capitolo primo
      bla bla bla


    # Capitolo secondo 
      bla bla *bla in grassetto*


Una caratteristica importante è che la lettura del testo crudo non presenta
difficoltà.

## Markdown e CommonMark

Markdown è il linguaggio di marcatura inventato da Aaron Swartz e John Gruber.
Nato per pubblicare in HTML, presenta delle limitazioni per altri formati di
pubblicazione. CommonMark è il dialetto che si propone di superare queste
limitazioni e di uniformare le convenzioni. Alla buona: Markdown è il formato
stretto creato nel 2004, CommonMark è il Markdown esteso grazie alla conversione
con Pandoc. Un testo scritto in CommonMark può essere convertito in un formato
di pubblicazione come HTML, PDF, EPUB o LaTeX.

Questo testo è stato scritto in Markdown esteso e convertito con Pandoc.
Per la sua eventuale utilità se ne consiglia la lettura nel formato
[crudo in CommonMark][] e il confronto con la pagina [convertita in HTML][]
[o in PDF][].

## Usare un editore di testo

Per scrivere e inserire i marcatori liberamente è necessario usare un editore di
testo che sappia scrivere, salvare, riscrivere e stampare e che non conosca la
formattazione[^nonsa], di quella si occupa lo scrittore usando i marcatori.

Qualunque editore di testo va bene a patto che scriva e salvi in formato puro
testo (TXT). Ad esempio [Gedit][], il quale è anche in grado di visualizzare la
struttura logica del testo evidenziando i marcatori.

Quando viene data al documento una desinenza che dichiara il formato, l'editore
potrà riconoscerlo automagicamente: la desinenza .md significa Markdown.

Esempio: questo documento si chiama: commonmark-buona.md

[^nonsa]: I documenti scritti in un linguaggio di marcatura come HTML vengono
        solitamente fruiti con la formattazione che gli viene restituita da un
        navigatore, ma restano documenti in semplice testo.


# Sintassi

## Capitoli

Un Capitolo è rappresentato da una riga preceduta da un cancelletto.

Se ne possono usare fino a sei: #, ##, ###, eccetera[^h].

    Esempio:


    # Titolo
    ## Capitolo
    ### Sottocapitolo


[^h]: Ci sono anche altri metodi per creare gli headers, si possono usare quelli
    che si preferiscono, solo non è il caso di mischiarli tra loro.


## Paragrafi

Per andare a capo (punto e a capo), mettere due spazi a fine riga.

Ecco come funzionano le pillole:
gialla e rossa, nella fossa.
Bianca e viola, qui si vola.

Per rappresentare un paragrafo, lasciare una linea vuota.

## Attributi del testo

Per creare attributi al testo si usa spesso l'asterisco.

### Italico

Una parola tra asterischi è in *italico*

`*italico*`

### Grassetto

Una parola (o frase) tra due asterischi è **grassetto**

`**grassetto**`

### Barrato

Una parola tra quattro tilde è ~~barrata~~ [^al]

`~~barrata~~`

[^al]: Esistono altri tipi di attributi, come superscript, tag e spoiler, oltre
    le tabelle e anche le funzioni matematiche, che non verranno descritti qui.


## Links

Vengono considerati quattro tipi di link: automatico, allineato, di riferimento
e interno alla pagina.

### Link automatico

Un indirizzo web (URL) tra parentesi acute verrà automaticamente visualizzato.

`<URL>`

<https://stackoverflow.com/editing-help>

### Link allineato

La sintassi del link allineato è: nome tra parentesi quadre e URL tra
parentesi tonde.

`[nome](url)`

Esempio: [markdown announce page](http://www.aaronsw.com/weblog/001189)

### Link di riferimento

Il link di riferimento è composto da due parti dove l'una rimanda all'altra.

#### Link di riferimento esplicito

Il link di riferimento esplicito usa solo parentesi quadre, si riferisce a un
nome che viene espresso più avanti, ad esempio a fine pagina.

`[riferimento][nome]`

e

`[nome]:url`

Esempio: [12121][markdown page] la pagina del markdown

[markdown page]: https://daringfireball.net/projects/markdown/ "markdown page"

#### Link di riferimento implicito

Il link di riferimento implicito omette il nome.

`[riferimento][]`

e

`[riferimento]:url`

### Link interno alla pagina

Per rappresentare un link a una sezione del documento, lo si può puntare a un
capitolo.

`vai alla sezione [Sintassi](#sintassi)`

vai alla sezione [Sintassi](#sintassi)

### Link a un'immagine

L'inserimento delle immagini usa la stessa sintassi dei link, ma preceduta da un
punto esclamativo.

`![nome](immagine.png)`

### Utilizzo dei link

Per accompagnare il link a una descrizione metterla tra virgolette dopo l'URL.

`[nome](url "descrizione")`

Il link allineato è più veloce da inserire scrivendo, ma rende la lettura del
testo crudo più faticosa, mentre il link di riferimento scorre meglio.

Questo esempio mostra un link allineato con descrizione che punta alla
[parola Markdown](https://it.wikipedia.org/wiki/Markdown "Markdown è un
linguaggio di markup con una sintassi del testo semplice") sull'enciclopedia
libera. Va benissimo per la pubblicazione sul web, ma leggere il testo crudo non
è comodo, soprattutto se i link fossero molti.

Questo link di riferimento implicito con descrizione invece scorre benissimo:
punta [alla parola Markdown][] sull'enciclopedia libera. La leggibilità è ottima
in quanto il riferimento compare a fine pagina o paragrafo e non ostacola la
lettura.

[alla parola Markdown]: https://it.wikipedia.org/wiki/Markdown "Markdown è un linguaggio di markup con una sintassi del testo semplice"

## Rappresentare il Codice

Per rappresentare del codice è possibile usare un blocco di testo con quattro
spazi (o una Tab) a inizio riga.

    blocco di testo
    rappresentato come codice


È possibile anche mettere la parola o frase tra accenti a sinistra (backtick).

`` ` ``codice`` ` ``

Esempio: `questa frase viene rappresentata come codice`.

## Blockquotes

Per rappresentare un blocco di testo che risulti separato dal resto usare
una parentesi acuta `>` a inizio riga.

Esempio:

`> blocco di testo separato dal resto`

Risulta:

> blocco di testo separato dal resto


## Elenchi

Per rappresentare una lista non numerata usare un asterisco a inizio riga.

Esempio:

    * latte
    * caffé
    * miele


Risulta:

* latte
* caffé
* miele

Lasciando delle righe in mezzo si creano paragrafi multipli.

Per rappresentare una lista numerata usare i numeri:

1. cartine
3. tabacco
2. filtri

Non è necessario che la numerazione sia progressiva, ma è consigliabile.

## Note a pié pagina

Le note a piede pagina sono in due parti, si rappresentano usando un accento
circonflesso `^` tra parentesi quadre.

`[^nota]`

e

`[^nota]: riferimento`

Questa è una nota [^nota]

[^nota]: Il riferimento può essere messo essere posto ovunque e comparirà al piede della
pagina.

    Il riferimento alla nota può anche continuare in un blocco di testo.


# Pubblicazione

## Impaginazione

### Informazioni bibliografiche

Titolo autore e data possono essere rappresentati con questa sintassi all'inizio
del testo

    % Titolo
    % Autore
    % Data


### Interruzione di pagina

Per rappresentare un'interruzione di pagina[^ip] si può utilizzare:

`\newpage`

[^ip]: l'interruzione di pagina non viene resa in HTML

## Conversione

Una volta scritto il documento, è possibile convertirlo in un formato di
pubblicazione. In questo contesto viene usato il convertitore di documenti
libero e a sorgente aperta Pandoc, alcuni esempi:[^deb]

[^deb]: È stata utilizzata BunsenLabs, distribuzione Linux basata su Debian 8.

Installare Pandoc e Citeproc:

    apt-get install pandoc pandoc-citeproc


Convertire da Markdown in HTML:

    pandoc -s articolo.md -o articolo.html


Convertire da Markdown in PDF:

    pandoc tesina.md -o tesina.pdf


Convertire da Markdown a EPUB:

    pandoc -f markdown libro.md -t epub -o libro.epub


Convertire da Markdown in LaTeX:

    pandoc -f markdown saggio.md -t latex -o saggio.tex


## Citazioni

### Inserire una citazione

> È sempre una buona idea scrivere da qualche parte, a grandi caratteri che
> ispirano fiducia, le parole: NON FATEVI PRENDERE DAL PANICO [vedi @dougadams:ggpa, pp. 5].


La sintassi per inserire una citazione estraendola da un file bibliografico:
(id)entificativo del file bibliografico preceduto da una chiocciola tra
parentesi quadre, separate (se le citazioni sono più d'una) da punto e virgola.

Esempio:

`[@id]`

Esempio citazione:

`[vedi @dougadams, pp. 21-22]`

Esempio doppia citazione:

`[considera @dougadams79, pp. 21-22 ; ma anche @tumembete85, pp. 42]`

Si possono usare anche le citazioni allineate:

`@manzoni ha scritto che`

### Creare un documento in LaTeX o PDF con bibliografia

Una volta aggiunte al testo le citazioni, si potrà convertire il file da
Markdown nel formato desiderato usando Pandoc e l'estensione pandoc-citeproc.

Esempio: il file in formato BibTeX `biblio.bib` contiene le seguenti righe:

    @book{dougadams:ggpa,
        author = {Douglas, Adams},
        title = {Guida galattica per gli autostoppisti},
        series = {Urania},
        volume = {1},
        publisher = {Mondadori},
        address = {Milano},
        year = {1980}
        }


Convertire un testo da Markdown a LaTeX specificando il file bibliografico
esterno:

`pandoc --bibliography=biblio.bib saggio.md -o saggio.tex`

Convertire un testo da Markdown a PDF con indice:

`pandoc --bibliography=biblio.bib --toc -s saggio.md -o saggio.pdf`

Lo stesso comando con estensione .epub produrrà l'effetto desiderato. (generare
un EPUB).

L'opzione standalone `-s` produce un documento indipendente;
L'opzione `--toc` genera l'indice dei contenuti;
L'opzione `-N` numera i capitoli;
L'opzione `-H`, ad esempio: `-H head.css`, può essere usata per
inserire un link a un file css nel header HTML.

Quando non si specifica lo stile di citazione con l'opzione `--csl` Pandoc usa
il Chicago Manual of Style.

Pandoc usa unicode UTF-8. Consultare il manuale di [Pandoc][] per altre opzioni.

Le citazioni vengono riportate automaticamente alla fine del documento, dunque
l'ultimo capitolo farà bene a chiamarsi: Bibliografia.

`# Bibliografia`

\newpage

# Utilizzare un editore di testo avanzato

## Emacs

### Usare Emacs per scrivere in Markdown

GNU Emacs è un libero editore di testo che associa i comandi a sequenze di
tasti; usa diversi *modi* per comportarsi diversamente[^e] a seconda di quello che
si sta scrivendo. In questo contesto viene usato GNU Emacs 24.4.1

[^e]: Perché c'è differenza tra programmare in Python o scrivere una sceneggiatura.

#### markdown-mode.el

Il *modo* di Emacs per scrivere Markdown si chiama [markdown-mode.el][] il quale
utilizza alcune convenzioni di org-mode portate al Markdown.

Una volta scaricato [markdown-mode][] e inserito nel path di Emacs, solitamente
~/.emacs.d/lisp/ è comodo segnalare a Emacs di aprire ogni file con desinenza
.md direttamente in markdown-mode, aggiungendo queste righe al ~/.emacs

    ; attivare il percorso
        (setq load-path (cons "~/.emacs.d/lisp/" load-path))


    ; attivare il markdown-mode per i file.md
        (autoload 'markdown-mode "markdown-mode" "Major mode for editing Markdown files" t)
            (add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))


#### Integrazione di markdown-mode.el con Pandoc

Convertire da Markdown in altro formato da Emacs usando Pandoc

    (defun convert-markdown-to (newtype)
    (interactive "sOutput[html|html5|rtf|pdf|mediawiki|latex|..]: ")
        (let ((current-document (buffer-file-name))
            (temp-filename (concat "./output." newtype)))
                (with-temp-file temp-filename
                    (call-process-shell-command (concat "pandoc -s -f markdown -t " newtype)
                        nil t nil current-document))


Il comando `convert-markdown-to` convertirà il file che viene editato nel
formato prescelto: ad esempio HTML, HTML5, PDF, MediaWiki, LaTeX. Il file
chiamato output.[xxx] verrà salvato nella stessa directory.

Attibuire una chiave da tastiera al comando `convert-markdown-to`

    (browse-url temp-filename)))
        (eval-after-load "markdown-mode"
            '(define-key markdown-mode-map (kbd "C-c C-c c") 'convert-markdown-to))


## Vim[^b]

### Usare Vim per scrivere in Markdown

Vim (o Vi IMproved) è un libero editore di testo avanzato comunemente
installato su sistemi operativi Unix-like, come Linux, MacOSX e BSD.
In questo contesto viene usato Vim 7.4 o successive.

Vim offre una perfetta integrazione con Pandoc tramite l'installazione di un
*plugin* chiamato [vim-pandoc](https://github.com/vim-pandoc/vim-pandoc).

#### Installazione di vim-pandoc

L'installazione di questo plugin avviene tramite l'uso di uno dei seguenti
gestori di pacchetti per Vim: pathogen, Vundle o NeoBundle. Quello consigliato
da questa guida è [Vundle](https://github.com/gmarik/vundle) il quale richiede
l'inserimento delle seguenti righe nel file di configurazione di Vim,
comunemente: *~/.vimrc*:

    Plugin 'vim-pandoc/vim-pandoc'
    Plugin 'vim-pandoc/vim-pandoc-syntax' 


Una volta avviato Vim, eseguire il comando per procedere allo scaricamento e
l'installazione del plugin:

    :PluginInstall


#### Utilizzo di vim-pandoc

Tramite questo plugin, Vim assiste la scrittura di documenti in Markdown. In
aggiunta, supporta la creazione di pagine HTML, documenti PDF, TeX e ogni altro
formato supportato dal programma Pandoc.

Per convertire il documento che si sta editando in HTML, eseguire il comando:

    :Pandoc


Rimandiamo alla documentazione ufficiale del plugin per maggiori dettagli.

[^b]: Contributo di Baku

\newpage

# la Navigazione fuorilinea

Editare un testo con un programma di videoscrittura permette di usare la tecnica
del copia e incolla e di applicare il montaggio non lineare alla scrittura.
Usare un editore di testo avanzato come Emacs o Vim permette inoltre di accedere
alla funzionalità chiamata navigazione fuorilinea. Con la navigazione
fuorilinea si effettua un passaggio da micro a macro, con la possibilità di
visualizzare una *mappa* del testo da editare e di usare il copia e incolla su
interi capitoli.

> Navigazione Fuorilinea è una funzionalità presente negli editori di testo
> strutturali che utilizzano la modalità outline, a scomparsa o con pannello
> laterale. Può causare dadaismo.


Esempio:

![](media/markdown-outline-navigation-1.png)

La prima immagine mostra questo testo durante la scrittura

![](media/markdown-outline-navigation-2.png)

la seconda immagine mostra lo stesso testo collassato in modalità navigazione fuorilinea a
scomparsa.

\newpage

# Compendio

    # capitoli     *italico*      **grassetto**     `codice`
    elenco:        * * * *        1. 2. 3. 4.
    link:          [nome](url)
    link ref:      [ref][]        [ref]:url 
    nota:          [^nota][]      [^nota]:cosa
    immagine:      ![nome](immagine.png)
    citazione:     [vedi @eco, pp. 42]
    breakpage:     \newpage


Emacs markdown-mode keybind:
Folding outline navigation: `Shift-Tab`
Vai a predecente/prossimo capitolo: `C-c C-p`, `C-c C-n`
Converte e offre anteprima HTML nel browser via Pandoc: `C-c C-c c`
Elenca i comandi da tastiera disponibili: `C-c C-h`

Per pubblicare questo file sono stati usati i seguenti comandi:

    pandoc --bibliography=biblio.bib --toc -s commonmark-buona.md -o commonmark-buona.html
    pandoc --bibliography=biblio.bib --toc -s commonmark-buona.md -o commonmark-buona.pdf


al file HTML è stato poi aggiunto un css in testa

    <link rel="stylesheet" type="text/css" href="un.css" />


nota: per convertire un CV è stato usato questo comando. Possa tu non averne mai bisogno.

    pandoc -V geometry:"top=3cm, bottom=1.5cm, left=3cm, right=1cm" cv.md -o cv.pdf


[Pagina sintassi Markdown](https://daringfireball.net/projects/markdown/syntax)
[Pandoc user guide](http://pandoc.org/README.html)
[Pandoc citerproc homepage](https://github.com/jgm/pandoc-citeproc)
[Emacs tutorial](http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html
"Emacs tutorial in inglese de l'Università di Chicago")
[Vim tutorial](http://vim.wikia.com/wiki/Tutorial "Vim tutorial in english")
[GNU/Linux Debian](https://www.debian.org/index.it.html "il sistema operativo
libero Debian")
[BunsenLabs Linux](https://www.bunsenlabs.org/ "una distribuzione Linux leggera
basata su Debian")

[crudo in CommonMark]: commonmark-buona.md
[convertita in HTML]: commonmark-buona.html
[o in PDF]: commonmark-buona.pdf
[Gedit]: https://wiki.gnome.org/Apps/Gedit "Gedit è un editore di testo"
[Pandoc]: http://pandoc.org/README.html "Pandoc, il convertitore di documenti universale"
[markdown-mode.el]: https://www.emacswiki.org/emacs/MarkdownMode "Pagina wiki del markdown-mode"
[markdown-mode]: http://jblevins.org/projects/markdown-mode/ "Emacs Markdown Mode"

# Bibliografia