Ho esaminato la sintassi di markdown usata in GitHub per un po ', ma tranne il ridimensionamento di un'immagine nella misura della pagina readme.md, non riesco a capire come centrare un'immagine in essa.
È possibile? Se lo è, come?
Ho esaminato la sintassi di markdown usata in GitHub per un po ', ma tranne il ridimensionamento di un'immagine nella misura della pagina readme.md, non riesco a capire come centrare un'immagine in essa.
È possibile? Se lo è, come?
Risposte:
Ho esaminato la sintassi markdown usata in github [...], non riesco a capire come centrare un'immagine
TL; DR
No, non puoi fare affidamento solo sulla sintassi di Markdown. A Markdown non interessa il posizionamento.
Nota: alcuni processori di markdown supportano l'inclusione di HTML (come giustamente sottolineato da @ waldyr.ar), e nel caso GitHub è possibile eseguire il fallback a qualcosa di simile <div style="text-align:center"><img src="..." /></div>
. Fai attenzione che l'immagine non sarà centrata se il tuo repository è biforcuto in un diverso ambiente di hosting (Codeplex, BitBucket, ...) o se il documento non viene letto attraverso un browser (Anteprima Sublime Text Markdown, MarkdownPad, VisualStudio Web Anteprima di Marks Essentials, ...).
Nota 2: tenere presente che anche all'interno del sito Web GitHub, il modo in cui viene visualizzato il markdown non è uniforme. Il wiki, ad esempio, non consentirà questo inganno posizionale css.
Versione integrale
La sintassi Markdown non offre la possibilità di controllare la posizione di un'immagine.
Infatti, sarebbe borderline contro la filosofia Markdown per consentire tale formattazione, come affermato nella "filosofia" sezione
"Un documento in formato Markdown dovrebbe essere pubblicabile così com'è, come testo normale, senza sembrare contrassegnato da tag o istruzioni di formattazione."
I file di markdown sono resi dal sito Web github.com attraverso l'uso della libreria Ruby Redcarpet .
Redcarpet espone alcune estensioni (come barrato, ad esempio) che non fanno parte della sintassi Markdown standard e forniscono ulteriori "funzionalità". Tuttavia, nessuna estensione supportata ti consente di centrare un'immagine.
<img align="..." src="..." alt="...">
<span style="display:block;text-align:center">![Test Automation]Automated-Testing.png)</span>
align
attributo su un img
tag è obsoleto a partire da HTML 4.01 e obsoleto a partire da HTML5.
Questo è dal supporto di Github:
Hey Waldyr,
Markdown non ti permette di modificare direttamente l'allineamento (vedi i documenti qui: http://daringfireball.net/projects/markdown/syntax#img ), ma puoi semplicemente usare un tag 'img' HTML grezzo e fare l'allineamento con inline css.
Saluti,
Quindi è possibile allineare le immagini! Devi solo usare i CSS inline per risolvere il problema. Puoi prendere un esempio dal mio repository github . Nella parte inferiore di README.md è presente un'immagine allineata centrata. Per semplicità puoi semplicemente fare come segue:
<p align="center">
<img src="http://some_place.com/image.png" />
</p>
Sebbene, come diceva nulltoken, sarebbe al limite con la filosofia Markdown!
Questo codice dal mio readme :
<p align="center">
<img src="https://github.com/waldyr/Sublime-Installer/blob/master/sublime_text.png?raw=true" alt="Sublime's custom image"/>
</p>
Produce questo output di immagine, tranne se centrato quando visualizzato su GitHub:
align
attributo non sia supportato in HTML5 ?
In alternativa, se hai il controllo del CSS, potresti essere intelligente con i parametri URL e CSS .
Markdown:
![A cute kitten](http://placekitten.com/200/300?style=centerme)
E CSS:
img[src$="centerme"] {
display:block;
margin: 0 auto;
}
È possibile creare una varietà di opzioni di stile in questo modo e mantenere pulito il markdown di codice aggiuntivo. Ovviamente non hai alcun controllo su ciò che accade se qualcun altro usa il markdown da qualche altra parte, ma questo è un problema di stile generale con tutti i documenti di markdown che condividi.
Per allineamento a sinistra
<img align="left" width="600" height="200" src="https://www.python.org/python-.png">
Per il corretto allineamento
<img align="right" width="600" height="200" src="https://www.python.org/python-.png">
E per l'allineamento centrale
<p align="center">
<img width="600" height="200" src="https://www.python.org/python-.png">
</p>
Fork qui per riferimenti futuri, se lo trovi utile.
Puoi anche ridimensionare l'immagine alla larghezza e altezza desiderate . Per esempio:
<p align="center">
<img src="https://anyserver.com/image.png" width="750px" height="300px"/></p>
Per aggiungere una didascalia centrata all'immagine, basta un'altra riga:
<p align="center">This is a centered caption for the image<p align="center">
Fortunatamente, questo funziona sia per README.md che per le pagine Wiki di GitHub.
Possiamo usare questo. Per favore cambia la posizione src di ur img dalla cartella git e aggiungi testo alternativo se img non è caricato
<p align="center">
<img src="ur img url here" alt="alternate text">
</p>
Vai al Readme.mdfile e usa questo codice.
<div align="center">
<img src=https://newfastuff.com/wp-content/uploads/2019/05/bW7QXVB.png" >
<p>Perfectly balanced</p>
</div>
<div align=”center”> [ Your content here ]</div>
si adatta a tutto nella pagina e al centro lo allinea in base alle dimensioni della pagina.
Il mio modo di risolvere il problema con il posizionamento dell'immagine era usare gli attributi HTML:
![Image](Image.svg){ width="800" height="600" style="display: block; margin: 0 auto" }
L'immagine è stata ridimensionata e centrata correttamente, almeno nel mio renderer VS markdown locale.
Quindi, ho inviato le modifiche al repository e sfortunatamente mi sono reso conto che non funziona per il file README.md di GitHub . Tuttavia lascerò questa risposta in quanto potrebbe aiutare qualcun altro.
Quindi, alla fine, ho invece usato un buon vecchio tag HTML:
<img src="Image.svg" alt="Image" width="800" height="600" style="display: block; margin: 0 auto" />
Ma indovina un po? Alcuni metodi JS hanno sostituito il mio style
attributo! Ho anche provato l' class
attributo e con lo stesso risultato!
Poi ho trovato la seguente pagina di sintesi in cui è stato utilizzato ancora più HTML di vecchia scuola:
<p align="center">
<img src="Image.svg" alt="Image" width="800" height="600" />
</p>
Questo funziona bene, tuttavia, vorrei lasciarlo senza ulteriori commenti ...
Usa questo HTML / CSS per aggiungere e centrare un'immagine e impostarne le dimensioni al 60% della larghezza dello spazio dello schermo all'interno del tuo file markdown, che di solito è un buon valore iniziale:
<img src="https://i.stack.imgur.com/RJj4x.png"
style="display:block;float:none;margin-left:auto;margin-right:auto;width:60%">
Cambia il width
valore CSS in qualunque percentuale tu voglia, o rimuovilo del tutto per usare la dimensione predefinita del markdown, che penso sia il 100% della larghezza dello schermo se l'immagine è più grande dello schermo, o altrimenti è la larghezza effettiva dell'immagine.
Fatto!
Oppure continua a leggere per ulteriori informazioni.
Copia e incolla questo nella parte superiore del file markdown per centrare e ridimensionare tutte le immagini nel file (quindi inserisci tutte le immagini che desideri con la normale sintassi di markdown):
<style>
img
{
display:block;
float:none;
margin-left:auto;
margin-right:auto;
width:60%;
}
</style>
Oppure, qui c'è lo stesso codice sopra ma con commenti HTML e CSS dettagliati per spiegare esattamente cosa sta succedendo:
<!-- (This is an HTML comment). Copy and paste this entire HTML `<style>...</style>` element (block)
to the top of your markdown file -->
<style>
/* (This is a CSS comment). The below `img` style sets the default CSS styling for all images
hereafter in this markdown file. */
img
{
/* Default display value is `inline-block`. Set it to `block` to prevent surrounding text from
wrapping around the image. Instead, `block` format will force the text to be above or below the
image, but never to the sides. */
display:block;
/* Common float options are `left`, `right`, and `none`. Set to `none` to override any previous
settings which might have been `left` or `right`. `left` causes the image to be to the left,
with text wrapped to the right of the image, and `right` causes the image to be to the right,
with text wrapped to its left, so long as `display:inline-block` is also used. */
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
/* You may also set the size of the image, in percent of width of the screen on which the image
is being viewed, for example. A good starting point is 60%. It will auto-scale and auto-size
the image no matter what screen or device it is being viewed on, maintaining proporptions and
not distorting it. */
width:60%;
/* You may optionally force a fixed size, or intentionally skew/distort an image by also
setting the height. Values for `width` and `height` are commonly set in either percent (%)
or pixels (px). Ex: `width:100%;` or `height:600px;`. */
/* height:400px; */
}
</style>
Ora, sia che tu inserisca un'immagine usando il markdown:
![](https://i.stack.imgur.com/RJj4x.png)
O HTML nel tuo file markdown:
<img src="https://i.stack.imgur.com/RJj4x.png">
... verrà automaticamente centrato e ridimensionato al 60% della larghezza della visualizzazione dello schermo, come descritto nei commenti all'interno dell'HTML e CSS sopra. (Naturalmente la dimensione del 60% è anche molto facilmente modificabile, e di seguito vi presento semplici modi per farlo su una base immagine per immagine).
Indipendentemente dal fatto che tu abbia o meno copiato e incollato il <style>
blocco sopra nella parte superiore del file markdown, anche questo funzionerà, poiché sovrascrive e ha la precedenza su qualsiasi impostazione di stile dell'ambito di file che hai impostato sopra:
<img src="https://i.stack.imgur.com/RJj4x.png" style="display:block;float:none;margin-left:auto;margin-right:auto;width:60%">
Puoi anche formattarlo su più righe, in questo modo, e funzionerà comunque:
<img src="https://i.stack.imgur.com/RJj4x.png"
alt="this is an optional description of the image to help the blind and show up in case the
image won't load"
style="display:block; /* override the default display setting of `inline-block` */
float:none; /* override any prior settings of `left` or `right` */
/* set both the left and right margins to `auto` to center the image */
margin-left:auto;
margin-right:auto;
width:60%; /* optionally resize the image to a screen percentage width if you want too */
">
Aggiungi tutto questo in cima al tuo file markdown.
<style>
/* By default, make all images center-aligned, and 60% of the width
of the screen in size */
img
{
display:block;
float:none;
margin-left:auto;
margin-right:auto;
width:60%;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
}
</style>
Ora, il tuo img
blocco CSS ha impostato le impostazioni predefinite per le immagini da centrare e il 60% della larghezza dello spazio dello schermo in termini di dimensioni, ma puoi usare le classi CSS leftAlign
e rightAlign
per sovrascrivere quelle impostazioni immagine per immagine.
Ad esempio, questa immagine sarà allineata al centro e di dimensioni pari al 60% (l'impostazione predefinita impostata sopra):
<img src="https://i.stack.imgur.com/RJj4x.png">
Questa immagine sarà allineata a sinistra , tuttavia, con il testo a capo alla sua destra, usando la leftAlign
classe CSS che abbiamo appena creato sopra!
<img src="https://i.stack.imgur.com/RJj4x.png" class="leftAlign">
Potrebbe apparire così:
Puoi comunque sovrascrivere una qualsiasi delle sue proprietà CSS tramite l' style
attributo , tuttavia, ad esempio larghezza, in questo modo:
<img src="https://i.stack.imgur.com/RJj4x.png" class="leftAlign" style="width:20%">
E ora otterrai questo:
img
impostazioni predefinite di markdownUn'altra opzione a ciò che abbiamo appena mostrato sopra, in cui abbiamo modificato le img
property:value
impostazioni predefinite e creato 2 classi, è quella di lasciare solo tutte le img
proprietà di markdown predefinite , ma creare 3 classi CSS personalizzate, come questa:
<style>
/* Create a CSS class to style images to center-align */
.centerAlign
{
display:block;
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
width:60%;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
width:60%;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
width:60%;
}
</style>
Usali, ovviamente, in questo modo:
<img src="https://i.stack.imgur.com/RJj4x.png" class="centerAlign" style="width:20%">
Nota come ho impostato manualmente la width
proprietà usando l' style
attributo CSS sopra, ma se avessi qualcosa di più complicato che volevo fare, avrei potuto anche creare alcune classi aggiuntive come questa, aggiungendole all'interno del <style>...</style>
blocco sopra:
/* custom CSS class to set a predefined "small" size for an image */
.small
{
width:20%;
/* set any other properties, as desired, inside this class too */
}
Ora puoi assegnare più classi allo stesso oggetto, in questo modo. Basta separare i nomi delle classi con uno spazio, NON con una virgola . In caso di impostazioni contrastanti, credo che qualsiasi impostazione arrivi per ultima sarà quella che avrà effetto, ignorando tutte le impostazioni precedentemente impostate. Questo dovrebbe valere anche nel caso in cui imposti più volte le stesse proprietà CSS nella stessa classe CSS o all'interno dello stesso style
attributo HTML .
<img src="https://i.stack.imgur.com/RJj4x.png" class="centerAlign small">
L'ultimo trucco è quello che ho imparato in questa risposta qui: come posso usare i CSS per dare uno stile diverso a più immagini? . Come puoi vedere sopra, tutte e 3 le align
classi CSS impostano la larghezza dell'immagine al 60%. Pertanto, questa impostazione comune può essere configurata contemporaneamente in questo modo, se lo si desidera, quindi è possibile configurare le impostazioni specifiche per ciascuna classe in seguito:
<style>
/* set common properties for multiple CSS classes all at once */
.centerAlign, .leftAlign, .rightAlign {
width:60%;
}
/* Now set the specific properties for each class individually */
/* Create a CSS class to style images to center-align */
.centerAlign
{
display:block;
float:none;
/* Set both the left and right margins to `auto` to cause the image to be centered. */
margin-left:auto;
margin-right:auto;
}
/* Create a CSS class to style images to left-align, or "float left" */
.leftAlign
{
display:inline-block;
float:left;
/* provide a 15 pixel gap between the image and the text to its right */
margin-right:15px;
}
/* Create a CSS class to style images to right-align, or "float right" */
.rightAlign
{
display:inline-block;
float:right;
/* provide a 15 pixel gap between the image and the text to its left */
margin-left:15px;
}
/* custom CSS class to set a predefined "small" size for an image */
.small
{
width:20%;
/* set any other properties, as desired, inside this class too */
}
</style>
Per quanto mi riguarda, tutto ciò che può essere scritto in un documento markdown e ottenere il risultato desiderato è tutto ciò che stiamo cercando, non una sintassi "puro markdown".
In C e C ++, il compilatore si compila fino al codice assembly e l'assembly viene quindi assemblato in binario. A volte, tuttavia, è necessario il controllo di basso livello che solo l'assembly può fornire e quindi è possibile scrivere assembly inline direttamente all'interno di un file sorgente C o C ++. Assembly è il linguaggio di "livello inferiore" e può essere scritto proprio all'interno di C e C ++.
Così è con markdown. Markdown è il linguaggio di alto livello interpretato in HTML e CSS. Tuttavia, laddove abbiamo bisogno di ulteriore controllo, possiamo semplicemente "incorporare" l'HTML e il CSS di livello inferiore direttamente all'interno del nostro file di markdown e sarà comunque interpretato correttamente. In un certo senso, quindi, HTML e CSS sono sintassi di "markdown" valide.
Quindi, per centrare un'immagine nel markdown, utilizzare HTML e CSS.
Come aggiungere un'immagine di base nel markdown con la formattazione HTML e CSS predefinita "dietro le quinte":
Questo markdown:
![](https://i.stack.imgur.com/RJj4x.png)
Produrrà questo output:
Questo è il mio esacottero da fuoco che ho realizzato .
Puoi anche aggiungere una descrizione tra parentesi quadre di apertura. Onestamente non sono nemmeno sicuro di quello che fa, ma forse viene convertito in un attributo di elemento HTML<img>
alt
, che viene visualizzato nel caso in cui l'immagine non possa essere caricata e potrebbe essere letta dai lettori di schermo per non vedenti. Quindi, questo markdown:
![this is my hexacopter I built](https://i.stack.imgur.com/RJj4x.png)
produrrà anche questo output:
Centrare l'immagine nel markdown richiede l'uso del controllo extra che HTML e CSS possono darci direttamente. Puoi inserire e centrare una singola immagine in questo modo:
<img src="https://i.stack.imgur.com/RJj4x.png"
alt="this is my hexacopter I built"
style="display:block;
float:none;
margin-left:auto;
margin-right:auto;
">
Ecco maggiori informazioni. su cosa sta succedendo qui:
<img
parte del codice sopra è il " tag di inizio " HTML , mentre >
alla fine è il " tag di fine " HTML .img
" elemento " HTML .img
"tag" / "elementi" vengono utilizzati per inserire immagini in HTML.style=""
è una property:value
" dichiarazione " di valore-chiave CSS .
;
), mentre ogni "attributo" HTML in questo "elemento" è separato da uno spazio (
).src
e style
.alt
uno è opzionale.style
dell'attributo, che accetta lo stile CSS, le dichiarazioni chiave sono tutti e 4 che vi mostro: display:block
, float:none
, margin-left:auto
, e margin-right:auto
.
float
proprietà in precedenza, puoi lasciare questa dichiarazione, ma è una buona idea averla comunque nel caso./* my comment */
).Un approccio di markdown "puro" in grado di gestirlo consiste nell'aggiungere l'immagine a una tabella e quindi centrare la cella:
| ![Image](img.png) |
| :--: |
Dovrebbe produrre HTML simile a questo:
<table>
<thead>
<tr>
<th style="text-align:center;"><img src="img.png" alt="Image"></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Questo è abbastanza semplice davvero.
-> This is centered Text <-
Quindi, tenendo a mente ciò, puoi applicarlo alla sintassi img.
->![alt text](/link/to/img)<-