Más información sobre por qué desaprobamos este proyecto está aquí.
fastpages
Una plataforma de blogs fácil de usar, compatible con cuadernos Jupyter, documentos de Word y Markdown.
fastpages
utiliza GitHub Actions para simplificar el proceso de creación de publicaciones de blog de Jekyll en páginas de GitHub a partir de una variedad de formatos de entrada.
fastpages
proporciona las siguientes características:Consulte a continuación para obtener una lista más detallada de funciones.
Ver el sitio de demostración
fastpages
fastpages
proporciona las siguientes características:Genere una copia de este repositorio haciendo clic en este enlace. Asegúrese de iniciar sesión en su cuenta o verá un error 404. Nombra tu repositorio como quieras excepto {tu-nombre de usuario}.github.io.
GitHub Actions abrirá automáticamente un PR en su nuevo repositorio ~ 30 segundos después de que se cree la copia. Siga las instrucciones en ese PR para continuar.
Si no ve un PR, asegúrese de tener habilitadas las acciones de terceros en su organización: Configuración -> Acciones -> Permisos de acciones -> Habilitar acciones locales y de terceros para este repositorio
Para ver un recorrido en vivo de los pasos de configuración (con algunos consejos adicionales), consulte este video tutorial sobre cómo configurar un blog de fastpages de Abdul Majed.
Read and Write
y marque Allow GitHub Actions to create and approve pull requests
. Una vez que haya otorgado permisos, vaya a la pestaña Actions
en la parte superior de la página de inicio de su repositorio, donde se le presentará una lista de acciones ejecutadas. Primero haga clic en la ejecución fallida (el elemento con la X roja):
Accederá a una pantalla donde habrá un botón en la parte superior derecha que le permitirá volver a ejecutar los trabajos.
Después de hacer esto, debería aparecer una solicitud de extracción.
_posts
, _notebooks
o _word
. Puede seguir ejemplos de contenido en esas carpetas en este repositorio sobre cómo estructurar el contenido. Lo más importante a lo que hay que prestar atención es el tema inicial, que se analiza con más detalle a continuación. Además, puede agregar páginas adicionales que aparecerán en la barra de navegación de su blog en el directorio _pages
. Tenga en cuenta que el contenido del directorio _word
no admite texto preliminar. Front Matter le permite activar/desactivar varias opciones para cada publicación de blog, así como pasar metadatos a varias funciones de fastpages.
En un cuaderno, la materia preliminar se define como una celda de rebajas al comienzo del cuaderno con el siguiente contenido:
# "Title"
> "Awesome summary"
- toc: false
- branch: master
- badges: true
- comments: true
- categories: [ fastpages, jupyter ]
- image: images/some_folder/your_image.png
- hide: false
- search_exclude: true
- metadata_key1: metadata_value1
- metadata_key2: metadata_value2
De manera similar, en un documento de rebajas, el mismo principio se definiría así al principio del documento:
---
title : " My Title "
description : " Awesome description "
layout : post
toc : false
comments : true
image : images/some_folder/your_image.png
hide : false
search_exclude : true
categories : [fastpages, jupyter]
metadata_key1 : metadata_value1
metadata_key2 : metadata_value2
---
Los metadatos adicionales son opcionales y le permiten configurar un texto frontal personalizado.
Tenga en cuenta que todo lo definido al principio debe ser YAML válido. Si no proporciona YAML válido, su página podría no mostrarse en su blog. Por ejemplo, si desea dos puntos en su título, debe utilizar comillas dobles como escape como esta:
- title: "Deep learning: A tutorial"
Consulte este tutorial sobre YAML para obtener más información.
Title
con el título que desee y Awesome summary
con el resumen que desee.Nota: Se recomienda encerrar estos valores entre comillas dobles, para que pueda evitar los dos puntos y otros caracteres que puedan dañar el analizador YAML.
fast_template
generará automáticamente una tabla de contenido basada en los encabezados de rebajas. Puede activar o desactivar esta función configurando toc:
en true
o false
.Esta opción solo funciona para portátiles.
branch
se utiliza para representar opcionalmente un enlace de su cuaderno a Colab y GitHub en su publicación de blog. Por defecto será master
si no lo especificas en el cuaderno.badges
en false
. Esto por defecto es true
badges: true
, las cuatro insignias (GitHub, Binder, Deepnote, Colab) aparecerán de forma predeterminada. Puede ajustar estos valores predeterminados con el parámetro default_badges
en Opciones de configuración de todo el sitio. Si solo desea ocultar una insignia en una publicación individual, puede configurar el texto frontal hide_{github,colab,binder,deepnote}_badge: true
. Por ejemplo, si desea ocultar la insignia de Carpeta para un cuaderno individual pero desea que se muestren las otras insignias, puede configurar esto en su portada:
- badges : true
- hide_binder_badge : true
requirements.txt
con paquetes comunes que usa para todos sus cuadernos en la raíz de su repositorio; puede obtener más información en los documentos oficiales de Binder.Puede tener una lista separada por comas entre corchetes de categorías para una publicación de blog, lo que hará que la publicación sea visible en la página de etiquetas del sitio de su blog. Por ejemplo:
En un cuaderno:
# "My Title"
- categories: [fastpages, jupyter]
En un documento de rebajas:
---
title: "My Title"
categories: [fastpages, jupyter]
---
Puedes ver una vista previa de cómo se ve esto aquí.
show_tags
en true
o false
en _config.yml
: # Set this to true to display tags on each post
show_tags : true
Los comentarios en publicaciones de blogs están impulsados por Utterances, una forma de código abierto y sin publicidad de implementar comentarios. Todos los comentarios se almacenan en ediciones del repositorio de GitHub de su blog. Puedes activar esto configurando comments
como true
. El valor predeterminado es false
.
Para habilitar comentarios con expresiones, deberá hacer lo siguiente:
En sitios de redes sociales como Twitter, se puede mostrar automáticamente una vista previa de la imagen con su URL. Al especificar la image
frontal se proporcionan estos metadatos a los sitios de redes sociales para que representen esta imagen. Puede establecer este valor de la siguiente manera:
- image: images/diagram.png
Nota: para esta configuración solo puede hacer referencia a archivos y carpetas de imágenes en la carpeta /images
de su repositorio.
Es posible que quieras evitar que una publicación de blog aparezca en la página de inicio, pero aun así tener una URL pública que puedas obtener una vista previa o compartir discretamente. Puede ocultar una publicación de blog desde la página de inicio configurando la opción hide
la portada en true
. Esto está configurado en false
de forma predeterminada.
Se recomienda utilizar enlaces permanentes para generar una URL predecible para publicaciones de blog ocultas. También puedes establecer la parte frontal search_exclude
en true
si no quieres que los usuarios encuentren tu publicación oculta en una búsqueda.
De forma predeterminada, las publicaciones están ordenadas por fecha en su página de inicio. Sin embargo, es posible que desees que una o más publicaciones de blog aparezcan siempre en la parte superior de tu página de inicio. En otras palabras, es posible que desees que determinadas publicaciones estén "fijadas" o "fijadas". Para lograr esto, especifique la portada de sticky_rank
en el orden en que desea que aparezcan sus publicaciones fijas. Las publicaciones de blog que no establecen este parámetro se ordenan de forma predeterminada por fecha después de las publicaciones fijas.
Por ejemplo, considere estas tres publicaciones de rebajas (también funcionan para cuadernos).
2020-01-01-Post-One.md
---
title : Post One
sticky_rank : 1
---
2020-02-01-Post-Two.md
---
title : Post Two
sticky_rank : 2
---
2020-04-01-Post-Three.md
---
title : Post Three
---
Sin embargo, dado que se especifica sticky_rank
, las publicaciones del blog se ordenarán primero por sticky_rank en orden ascendente y luego por fecha en orden descendente , por lo que el orden de estas publicaciones aparecerá así:
Sin sticky_rank
las publicaciones anteriores se ordenarían en orden inverso debido a las fechas asociadas con cada publicación.
Nota: la fijación también funciona para portátiles:
# "My cool blog post"
> "Description of blog post"
- sticky_rank: 2
fastpages viene con búsqueda de palabras clave integrada impulsada por lunr.js. Puede evitar que una publicación de blog o una página aparezca en los resultados de búsqueda configurando el encabezado search_exclude
en false
. Esto está configurado como true
de forma predeterminada.
Se recomienda que todos personalicen su sitio de blogs estableciendo opciones de configuración para todo el sitio . Estas opciones se pueden encontrar en /_config.yml
. A continuación se muestra una descripción de varias opciones disponibles.
title
: este es el título que aparece en la esquina superior izquierda del encabezado de todas sus páginas.
description
: esta descripción aparecerá en varios lugares cuando se genere una vista previa de su sitio (por ejemplo, en las redes sociales).
github_username
: esto permite que su sitio muestre un enlace a su página de GitHub en el pie de página.
github_repo
: esto permite que su sitio muestre enlaces a su repositorio para diversas funciones, como enlaces a GitHub, Colab y Deepnote para portátiles.
url
: no es necesario cambiar esto a menos que tenga un dominio personalizado. Nota: omita el final / de este valor.
baseurl
: consulte los comentarios en /_config.yml
para obtener instrucciones ("Instrucciones especiales para baseurl" sobre cómo configurar este valor correctamente. Si no tiene un dominio personalizado, probablemente pueda ignorar esta opción.
email
: actualmente no se utiliza. Ignorar.
twitter_username
: crea un enlace en el pie de página a su página de Twitter.
use_math
: establezca esto en true
para obtener compatibilidad con ecuaciones matemáticas de LaTeX. Esto está desactivado de forma predeterminada ya que, de lo contrario, carga JavaScript en cada página que no se puede utilizar.
show_description
: muestra una descripción debajo del título de las publicaciones de su blog en su página de inicio que contiene una lista de las publicaciones de su blog. Establecido en true
de forma predeterminada.
google_analytics
: Opcionalmente, utilice un ID de Google Analytics para realizar el seguimiento si lo desea.
show_image
: si se establece en verdadero, utiliza el parámetro image
en la portada de las publicaciones de su blog para mostrar una vista previa de sus blogs como se muestra a continuación. Esto está configurado en false
de forma predeterminada. Cuando show_image se establece en true
su página de inicio se verá así:
show_tags
: Puede activar o desactivar la visualización de etiquetas en las publicaciones de su blog estableciendo este valor en false
. Esto está configurado en true
de forma predeterminada, lo que muestra los siguientes enlaces para etiquetas en publicaciones de su blog como esta:
pagination
: este es el número máximo de publicaciones que se mostrarán en cada página de su página de inicio. Cualquier publicación que supere esta cantidad se paginará en otra página. Esto está configurado en 15
de forma predeterminada. Cuando esto se active, verá que la paginación en la parte inferior de su página de inicio aparece así:
Nota: si está utilizando una versión anterior de fastpages, no puede utilizar el proceso de actualización automatizado para obtener la paginación. En su lugar debes seguir estos pasos:
mv index.md index.html
Gemfile
y Gemfile.lock
en la raíz de su repositorio con los archivos de este repositorio._config.yml
de la siguiente manera (consulte _config.yml para ver un ejemplo): gems :
- jekyll-paginate
paginate : 10
paginate_path : /page:num/
Alternativamente, puede copiar todas sus publicaciones a un repositorio recién creado a partir de la plantilla de fastpages.
default_badges
: De forma predeterminada, las insignias de GitHub, Binder, Deepnote y Colab aparecerán en las publicaciones del blog del cuaderno. Puede ajustar estos valores predeterminados estableciendo el valor apropiado en default_badges
en falso. Por ejemplo, si quisiera desactivar las insignias de Binder de forma predeterminada, cambiaría default_badges
a esto:
default_badges :
github : true
binder : false
deepnote : false
colab : true
html_escape
: esto le permite activar o desactivar el escape de HTML en varios componentes de las publicaciones del blog. En este momento, solo puedes alternar esto para el campo description
en tus publicaciones.
Esto está configurado en false
de forma predeterminada.
Puede ajustar el ancho de página de fastpages en varios dispositivos editando /_sass/minima/custom-variables.scss.
Estos son los valores predeterminados, que pueden ajustarse según sus preferencias:
// width of the content area
// can be set as "px" or "%"
$content-width : 1000 px ;
$on-palm : 800 px ;
$on-laptop : 1000 px ;
$on-medium : 1000 px ;
$on-large : 1200 px ;
hipothes.is es una plataforma abierta que proporciona una forma de anotar y resaltar páginas, que pueden ser públicas o privadas. Cuando esta función está habilitada, los lectores de su blog verán la siguiente información sobre herramientas al resaltar texto:
Esto está deshabilitado de forma predeterminada en fastpages. Puede habilitar o deshabilitar esto en su archivo _config.yml configurando annotations
en true
o false
:
# Set this to true to turn on annotations with hypothes.is
annotations : false
Puede personalizar hipothes.is leyendo estas opciones de configuración. También es una buena idea leer estos documentos si desea hacer más con hipothes.is. Sin embargo, antes de intentar personalizar esta función, debe leer la sección de personalización de páginas rápidas para conocer advertencias importantes.
Puede indicar a sus lectores que se suscriban con canales RSS. Hay muchos servicios de suscripción RSS disponibles en Internet. Algunos ejemplos incluyen:
fastpages
anula el resaltado de sintaxis predeterminado de mínimos con el tema Drácula.
El resaltado predeterminado en fastpages se ve así:
Sin embargo, puedes hacer que el resaltado de sintaxis tenga este aspecto, si así lo deseas:
Si desea volver al tema claro anterior, puede eliminar la línea siguiente en _sass/minima/custom-styles.scss
@import " minima/fastpages-dracula-highlight " ;
Si no le gusta ninguno de estos temas, puede agregar su propio CSS en _sass/minima/custom-styles.scss
. Consulte personalización de fastpages para obtener más detalles.
Esta publicación de blog describe cómo habilitar el modo oscuro para páginas rápidas.
Los usuarios que prefieran utilizar el sistema de citas BibTeX podrán hacerlo; requiere habilitar el complemento jekyll-scholar. Consulte Citas en Fastpages a través de BibTeX y jekyll-scholar para obtener instrucciones sobre cómo implementar esto.
Coloque el comentario #hide
al principio de una celda de código y ocultará tanto la entrada como la salida de esa celda.
Un comentario #hide_input
en la parte superior de cualquier celda solo ocultará la entrada .
Además, la extensión Jupyter hide input
se puede utilizar para ocultar entradas o salidas de celdas, que serán respetadas por fastpages.
Es posible que desee ocultar parte del código en un elemento contraído que el usuario pueda expandir, en lugar de ocultar completamente el código al lector.
#collapse
en la parte superior de la celda de código.#collapse_show
o #collapse-show
en la parte superior de la celda de código.#collapse_output
o #collapse-output
en la parte superior de la celda de código.En una celda de rebajas de su cuaderno, utilice los siguientes atajos de rebajas para insertar tarjetas de Twitter y vídeos de YouTube.
> youtube: https://youtu.be/your-link
> twitter: https://twitter.com/some-link
Agregar notas a pie de página en los cuadernos es un poco diferente a las rebajas. Consulte la Guía detallada de notas al pie en Notebooks.
Guarde su cuaderno con la convención de nomenclatura YYYY-MM-DD-*.
en la carpeta /_notebooks
o /_word
de este repositorio, respectivamente. Por ejemplo 2020-01-28-My-First-Post.ipynb
. Jekyll requiere esta convención de nomenclatura para representar la publicación de su blog.
¡Tenga cuidado de nombrar su archivo correctamente! Es fácil olvidar el último guión en YYYY-MM-DD-
. Además, el carácter que sigue inmediatamente al guión debe ser sólo una letra alfabética. Ejemplos de nombres de archivos válidos son:
2020-01-28-My-First-Post.ipynb
2012-09-12-how-to-write-a-blog.ipynb
Si no nombra su archivo correctamente, fastpages
intentará solucionar el problema automáticamente anteponiendo la fecha de la última modificación de su archivo a la publicación de blog generada; sin embargo, se recomienda que usted mismo nombre sus archivos correctamente para mayor transparencia.
Confirme y envíe su(s) archivo(s) a GitHub en la rama maestra de su repositorio.
GitHub convertirá automáticamente tus archivos en publicaciones de blog. El proceso de conversión tardará aproximadamente 5 minutos en realizarse . Puede hacer clic en la pestaña Acciones de su repositorio para ver los registros de este proceso. Habrá dos flujos de trabajo que se activarán con cada inserción que realice en su rama maestra: (1) "CI" y (2) "Estado de las páginas GH". Ambos flujos de trabajo deben completarse con una marca de verificación verde para su última confirmación antes de que se actualice su sitio.
Si lo desea, puede obtener una vista previa de cómo se verá su blog localmente antes de comprometerse con GitHub. Consulte esta sección para obtener una guía detallada sobre cómo ejecutar la vista previa localmente.
Si está escribiendo la publicación de su blog en Markdown, guarde su archivo .md
en la carpeta /_posts
con la misma convención de nomenclatura ( YYYY-MM-DD-*.md
) especificada para los cuadernos.
Guarde sus documentos de Microsoft Word en la carpeta /_word
con la misma convención de nomenclatura ( YYYY-MM-DD-*.docx
) especificada para los cuadernos.
Nota: el texto alternativo en documentos de Word aún no es compatible con fastpages y romperá los enlaces a las imágenes.
fastpages
no tiene una forma sólida de especificar el texto inicial de los documentos de Word. Por el momento, solo puede especificar el texto inicial globalmente para todos los documentos de Word editando _action_files/word_front_matter.txt.
Para especificar una portada única por documento de Word, deberá convertir Word a archivos de rebajas manualmente. Puede seguir los pasos de esta publicación de blog, que le explican cómo utilizar pandoc para realizar la conversión. Nota: Si desea personalizar su publicación de blog generada en Word en Markdown, asegúrese de eliminar su documento de Word del directorio _word para que su archivo de Markdown no se sobrescriba.
Si su método principal para escribir publicaciones de blog son documentos de Word y planea editar siempre manualmente los archivos de rebajas convertidos desde Word, probablemente sea mejor que use fast_template en lugar de fastpages.
Consulte la guía de desarrollo.
La acción fastpages
le permite convertir cuadernos de /_notebooks
y documentos de Word de directorios /_word
en su repositorio en archivos de rebajas de publicaciones de blog compatibles con Jekyll ubicados en /_posts
. Nota: Esta estructura de directorios actualmente no es flexible para esta Acción, ya que está diseñada para usarse con Jekyll.
Si ya está suficientemente familiarizado con Jekyll y desea utilizar esta automatización en su propio tema, puede utilizar esta acción de GitHub haciendo referencia fastai/fastpages@master
de la siguiente manera:
...
uses : fastai/fastpages@master
...
Un ejemplo ilustrativo de cómo podría verse un flujo de trabajo completo:
jobs :
build-site :
runs-on : ubuntu-latest
...
- name : convert notebooks and word docs to posts
uses : fastai/fastpages@master
...
- name : Jekyll build
uses : docker://jekyll/jekyll
with :
args : jekyll build
- name : Deploy
uses : peaceiris/actions-gh-pages@v3
if : github.event_name == 'push'
with :
deploy_key : ${{ secrets.SSH_DEPLOY_KEY }}
publish_branch : gh-pages
publish_dir : ./_site
Tenga en cuenta que esta acción no tiene entradas requeridas y no tiene variables de salida .
BOOL_SAVE_MARKDOWN
: Ya sea 'verdadero' o 'falso'. Si se deben enviar o no archivos de rebajas convertidos de cuadernos y documentos de Word al directorio _posts de su repositorio. Esto es útil para la depuración. predeterminado: falsoSSH_DEPLOY_KEY
: se requiere una clave de implementación ssh si BOOL_SAVE_MARKDOWN = 'true'Consulte la especificación API para esta acción en action.yml
Las instrucciones detalladas sobre cómo personalizar este blog están fuera del alcance de este README. (¡Invitamos a alguien de la comunidad a contribuir con una publicación de blog sobre cómo hacer esto en este repositorio!)
Consulte la guía de contribución.
Consulte la guía de actualización.
_posts/
que se generan a partir de mis cuadernos de Jupyter o documentos de Word? R: El flujo de trabajo de GitHub Actions en este repositorio convierte su cuaderno y documentos de Word en rebajas sobre la marcha antes de crear su sitio, pero nunca envía estos archivos de rebajas intermedios a este repositorio. Esto es para evitarle la molestia de que su entorno local no esté constantemente sincronizado con su repositorio. Opcionalmente, puedes ver estos archivos de rebajas intermedios configurando las entradas BOOL_SAVE_MARKDOWN
y SSH_DEPLOY_KEY
en la acción fastpages en tu archivo .github/workflows/ci.yaml
de la siguiente manera: ...
- name : convert notebooks and word docs to posts
uses : fastai/fastpages@master
with :
BOOL_SAVE_MARKDOWN : true
SSH_DEPLOY_KEY : ${{ secrets.SSH_DEPLOY_KEY }}
...
P: ¿Puedo usar fastpages
para sitios de documentos de Jekyll o para cosas que no sean publicaciones de blog de Jekyll? R: Por el momento, fastpages
es una solución muy obstinada que funciona sólo para las publicaciones del blog de Jekyll. Si desea escribir documentación para su módulo o biblioteca con cuadernos Jupyter, le sugerimos que utilice fastai/nbdev, que está creado expresamente para este propósito.
P: ¿Cuál es la diferencia entre fast_template y fastpages? ¿Cuál debería usar? R: Debido a que fastpages
es más flexible y extensible, recomendamos usarlo siempre que sea posible. fast_template
puede ser una mejor opción para que personas que no tienen ningún conocimiento técnico y que solo crearán publicaciones utilicen el editor en línea integrado de Github.
fastpages se basa en el tema mínimo. Si desea personalizar el estilo o el diseño de fastpages, puede encontrar instrucciones en el archivo README de minima. Es una buena idea leer el contenido completo del archivo README para comprender la estructura del directorio. Además, es una buena idea tener un conocimiento básico de Jekyll antes de personalizar su tema. Para aquellos nuevos en Jekyll, los documentos oficiales son un buen lugar para comenzar. Concretamente, puede anular css en fastpages en _sass/minima/custom-styles.scss
. TENGA EN CUENTA que la función "máscaras" de minima actualmente es incompatible con la configuración CSS de fastpages.
Si elige realizar personalizaciones en fastpages, es posible que las personalizaciones que realice colisionen con versiones actuales o futuras de fastpages y le recomendamos hacerlo solo si se siente lo suficientemente cómodo con HTML y CSS.
Consulte la guía de solución de problemas.