[{"data":1,"prerenderedAt":3154},["ShallowReactive",2],{"blog-posts-items":3},[4,250,1260,1382,1649,3034],{"id":5,"title":6,"body":7,"date":231,"description":232,"extension":233,"headerImage":234,"isActive":235,"keywords":236,"meta":242,"navigation":235,"path":243,"seo":244,"stem":245,"subject":246,"summary":247,"tags":248,"__hash__":249},"blog\u002Fblog\u002Fia-analiza-logo-thebyteland.md","Lo que la IA entiende del logo de The Byteland",{"type":8,"value":9,"toc":220},"minimark",[10,15,19,22,25,38,42,57,63,66,73,76,117,120,127,131,134,149,152,155,159,162,165,171,174,182,185,189,199,205,209],[11,12,14],"h2",{"id":13},"sobre-el-logo-de-the-byteland","Sobre el logo de The Byteland",[16,17,18],"p",{},"Cuando me propuse empezar este proyecto, una de las cosas que más me preocupaban era el diseño del logo, porque tenía claro de lo que quería hablar en este blog pero lo difícil era conseguir un logo relativamente sencillo, que me gustara y que tuviera significado, no sólo que fuera un diseño bonito y llamativo sin sentido alguno.",[16,20,21],{},"A esto se le suma que no tengo muchos conocimientos de diseño, por lo que al principio busqué ayuda en diseñadores profesionales, opiniones de amigos sobre los bocetos que se iban creando y sobre la idea principal que quería transmitir.",[16,23,24],{},"La verdad es que nada me convencía y lo dejé aparcado un tiempo pero al final me puse yo mismo a dibujar, escribir conceptos y en definitiva a trastear en busca de inspiración hasta que conseguí el logo actual.",[26,27,33],"div",{"className":28},[29,30,31,32],"w-fit","mx-auto","rounded-lg","dark:bg-white",[34,35],"byte-image",{"src":36,"alt":37},"app\u002Flogo","Logo de The Byteland",[11,39,41],{"id":40},"qué-interpretó-chatgpt-sobre-el-logo","¿Qué interpretó ChatGPT sobre el logo?",[16,43,44,45,49,50,56],{},"Se dice que lo más importante de la interacción con una ",[46,47,48],"strong",{},"IA"," es el contexto que le damos para que nos pueda ofrecer una respuesta lo más correcta posible, aquello de pensar minuciosamente el ",[51,52,55],"span",{"className":53},[54],"inline-coding","prompt"," que le vamos a pasar como entrada.",[16,58,59,60,62],{},"Pero quería probar algo distinto: Con un contexto mínimo y pasándole el fichero de la imagen del logo me preguntaba si la ",[46,61,48],{}," sería capaz de aproximarse a los conceptos que yo pensé para crear el logo y lo que quería transmitir.",[16,64,65],{},"Así que me puse manos a la obra. Subí la imagen y le pregunté lo siguiente:",[67,68,69],"byte-blockquote",{},[70,71,72],"template",{},"\nEste es el logo del sitio web The Byteland, el cual es un blog. ¿Qué te sugiere este logo?\n",[16,74,75],{},"En menos de dos segundos ya estaba sacando por pantalla una respuesta elaborada que me dejó muy asombrado, porque sin tener el contexto prácticamente había acertado en todos los conceptos, estilos del logo y en parte de la esencia que quería transmitir. Su respuesta exacta fue:",[67,77,78],{},[70,79,80,81,116],{},"\nEl logo del sitio web \"The Byteland\" que has proporcionado sugiere varios aspectos:\n",[82,83,84,92,98,104,110],"ol",{},[85,86,87,91],"li",{},[88,89,90],"b",{},"Tecnología y Modernidad",": La forma geométrica y el diseño abstracto del logo transmiten una sensación de tecnología y modernidad, lo cual es apropiado para un blog centrado en temas tecnológicos.",[85,93,94,97],{},[88,95,96],{},"Estabilidad y Estructura",": La simetría y las líneas limpias del logo dan una impresión de estabilidad y organización, sugiriendo que el contenido del blog es bien estructurado y fiable.",[85,99,100,103],{},[88,101,102],{},"Innovación",": El diseño del logo, con sus formas angulares y apariencia futurista, puede insinuar que el blog se enfoca en innovación y avances tecnológicos.",[85,105,106,109],{},[88,107,108],{},"Minimalismo",": La simplicidad del diseño sugiere un enfoque minimalista, lo cual puede reflejarse en el estilo de escritura y la presentación del contenido del blog, haciéndolo accesible y fácil de entender.",[85,111,112,115],{},[88,113,114],{},"Unión y Conectividad",": Las líneas convergentes del logo pueden simbolizar la unión de diferentes ideas y conceptos, lo cual es ideal para un blog que podría estar uniendo diferentes áreas del conocimiento tecnológico.","\nEn general, este logo parece bien pensado para un blog tecnológico, transmitiendo profesionalismo, innovación y claridad.",[16,118,119],{},"Esta es una captura de pantalla de la conversación completa:",[26,121,123],{"className":122},[29,30,31,32],[34,124],{"src":125,"alt":126},"blog\u002Fia-logo-captura","Captura de pantalla de conversación con ChatGPT",[11,128,130],{"id":129},"el-significado-del-logo","El significado del logo",[16,132,133],{},"El logo está compuesto por tres barras torcidas del mismo tamaño que se apuntan unas a otras en el origen de su ángulo, como si fuesen tres flechas apuntando hacia un centro común.Encima de las barras se encuentra un rombo centrado en el hueco de la barra superior.",[16,135,136,137,140,141,144,145,148],{},"Cada una de las barras hace referencia a uno de los temas principales del blog: ",[46,138,139],{},"Tecnología",", ",[46,142,143],{},"programación"," y ",[46,146,147],{},"ciencia",". Como son el tema principal su tamaño indica que tienen el mismo peso en el contenido del blog (aunque luego no escriba de forma proporcionada para cada tema).",[16,150,151],{},"Y finalmente el rombo significa mi figura como escritor del blog, controlando lo que debe aparecer en el mismo y en parte también para simbolizar la parte personal o más humana dentro de todo el contenido.",[16,153,154],{},"Por mi forma de programar, organizar las tareas y fijar los objetivos, intento siempre que haya una armonía, equilibrio y busco que sea un diseño claro sobre el que ir mejorando día a día, probar cosas nuevas e ir innovando en las tecnologías que uso.",[11,156,158],{"id":157},"estaba-acertada-la-ia-en-su-respuesta","¿Estaba acertada la IA en su respuesta?",[16,160,161],{},"Mi primera reacción al leer la respuesta fue pensar que la IA estaba haciendo trampa, porque supuestamente no tiene acceso a internet y no puede consultar el contenido de mi web. Además no es un sitio conocido del que tenga conocimiento porque otras personas escriban sobre el mismo.",[16,163,164],{},"Entonces: ¿Cómo era capaz de relacionar el logo con el contenido, acertando sobre el tema principal?",[16,166,167,168,170],{},"El blog podría tratar únicamente sobre cine por ejemplo y no tener una estructura fija que busque orden y fuera más caótico y el hecho de que la  ",[46,169,48],{}," sea capaz de sacar ese análisis de una simple imagen y de forma tan rápida no deja de ser algo sorprendente.",[16,172,173],{},"Es verdad que podría ser cosa del azar, que simplemente haya valorado que hay una gran cantidad de blogs que traten estos temas, que busquen los objetivos que comenta pero la última de las observaciones me dejó realmente impactado:",[67,175,176],{},[70,177,178,181],{},[88,179,180],{},"\nUnión y Conectividad\n","\n: Las líneas convergentes del logo pueden simbolizar la unión de diferentes ideas y conceptos, lo cual es ideal para un blog que podría estar uniendo diferentes áreas del conocimiento tecnológico.\n",[16,183,184],{},"Si bien es verdad que lo que reflejan no son áreas del conocimiento tecnológico sino los tres temas principales, el hecho de que pueda llegar a asociar estos conceptos por unas simples líneas en una imagen y resumirlo en tan poco tiempo es algo que hay que admirar.",[11,186,188],{"id":187},"conclusión","Conclusión",[16,190,191,192,195,196,198],{},"Esa pequeña prueba con ",[46,193,194],{},"ChatGPT"," me ha animado a escribir este artículo porque lo que pienso que realmente es útil actualmente de una herramienta como ",[46,197,194],{}," es esa capacidad de asociar conceptos abstractos y plasmarlos en unas pocas líneas de texto que podemos entender fácilmente.",[16,200,201,202,204],{},"Últimamente, cuando estudio algo complejo o leo documentación sobre alguna herramienta con la que estoy trabajando y no consigo entenderlo bien, suelo recurrir a ",[46,203,194],{}," para que me lo explique de otra forma y creo que los avances que está teniendo respecto a sus primeras versiones van a revolucionar la forma en la que aprendemos y el cómo expresamos conceptos complejos.",[11,206,208],{"id":207},"referencias","Referencias",[16,210,211,216],{},[212,213],"a",{"href":214,"target":215},"https:\u002F\u002Fchatgpt.com\u002F","_blank",[212,217,214],{"href":214,"rel":218},[219],"nofollow",{"title":221,"searchDepth":222,"depth":223,"links":224},"",2,3,[225,226,227,228,229,230],{"id":13,"depth":222,"text":14},{"id":40,"depth":222,"text":41},{"id":129,"depth":222,"text":130},{"id":157,"depth":222,"text":158},{"id":187,"depth":222,"text":188},{"id":207,"depth":222,"text":208},"2024-07-15","Le he preguntado a ChatGPT sobre el logo de The Byteland y su respuesta ha sido muy interesante.","md","blog\u002Fia-analiza-logo",true,[237,238,239,240,241],"ia","ia logo","ia logo thebyteland","ia entiende logo","ia analiza logo",{},"\u002Fblog\u002Fia-analiza-logo-thebyteland",{"title":6,"description":232},"blog\u002Fia-analiza-logo-thebyteland",[237],"El logo de un sitio web es un elemento importante porque debe reflejar de una manera simple algo muy complejo: Su identidad. El cómo lo entendemos los humanos el algo complejo y subjetivo pero... ¿Qué información puede sacar una IA de un logo?",[139],"HplREuUxBlv-AnlKht2an0kEHh0D8a-rRUsDeAiAQm8",{"id":251,"title":252,"body":253,"date":1241,"description":1242,"extension":233,"headerImage":1243,"isActive":235,"keywords":1244,"meta":1249,"navigation":235,"path":1251,"seo":1252,"stem":1253,"subject":1254,"summary":1256,"tags":1257,"__hash__":1259},"blog\u002Fblog\u002Fgestionar-rutas-dinamicas-nuxt.md","Gestionar rutas dinámicas Nuxt",{"type":8,"value":254,"toc":1235},[255,259,262,290,293,311,333,337,350,366,503,506,510,523,549,557,790,801,804,841,858,948,955,959,962,965,980,1111,1121,1128,1231],[11,256,258],{"id":257},"entendiendo-las-rutas-dinámicas","Entendiendo las rutas dinámicas",[16,260,261],{},"Antes de meterse de lleno en la cuestión principal es importante que tengamos claro qué son y cómo funcionan las rutas dinámicas en Nuxt.",[16,263,264,265,269,270,275,276,280,281,284,285,289],{},"Por defecto Nuxt utiliza ",[51,266,268],{"className":267},[54],"vue-router"," para crear su sistema de rutas de forma que el nombre de cada fichero que incluyamos en el directorio ",[51,271,274],{"className":272},[273],"inline-file","\u002Fpages"," tenga una ruta asociada, es decir, si creamos un fichero con el nombre ",[51,277,279],{"className":278},[273],"test.vue"," en el directorio ",[51,282,274],{"className":283},[273]," tendremos la url ",[51,286,288],{"className":287},[54],"https:\u002F\u002FTU_DOMINIO\u002Ftest"," disponible.",[16,291,292],{},"Cuando queremos crear rutas dinámicas el proceso es parecido pero debemos indicar cual es el directorio raíz del que van a partir las rutas dinámicas, de manera que si tenemos una sección de nuestra web que cataloga especies de animales y queremos que para cada especie exista una página diferente, añadir cada una de ellas a mano puede no ser la mejor opción y querremos tener un sistema automatizado ya sea por un gestor de contenidos o una base de datos que se encargue de ello.",[16,294,295,296,300,301,305,306,310],{},"Para este caso, podríamos tener un directorio ",[51,297,299],{"className":298},[273],"\u002Fanimals"," en el que podemos definir un fichero ",[51,302,304],{"className":303},[273],"index.vue"," que será la página principal de ese directorio, y otro fichero ",[51,307,309],{"className":308},[273],"_slug.vue"," que se encargará de gestionar las páginas dinámicas para cada animal. Esto generaría las siguientes rutas:",[312,313,314,321],"ul",{},[85,315,316,317],{},"Ruta principal de animales: ",[51,318,320],{"className":319},[54],"https:\u002F\u002FTU_DOMINIO\u002Fanimals",[85,322,323,324,328,329],{},"Rutas dinámicas: ",[51,325,327],{"className":326},[54],"https:\u002F\u002FTU_DOMINIO\u002Fanimals\u002Flion"," ó ",[51,330,332],{"className":331},[54],"https:\u002F\u002FTU_DOMINIO\u002Fanimals\u002Fdog",[11,334,336],{"id":335},"nomenclatura-de-ficheros","Nomenclatura de ficheros",[16,338,339,340,344,345,349],{},"Al nombrar un fichero empezando con una barra baja (",[51,341,343],{"className":342},[54],"_",") le decimos a Nuxt que esa página va a ser dinámica y el nombre que le damos después de la barra baja indica la variable que recibirá el nombre de la ruta (En el ejemplo anterior ",[51,346,348],{"className":347},[54],"slug",").",[16,351,352,353,357,358,361,362,365],{},"Esto es útil de cara a validar si esa ruta existe o no a la hora de acceder a una de estas páginas dinámicas y poder gestionar redirecciones a páginas de error. Por ejemplo podríamos usar el método ",[51,354,356],{"className":355},[54],"validate"," para asegurarnos que el ",[51,359,348],{"className":360},[54]," es válido o tiene un formato que deseamos, por lo que si el parámetro de ruta ",[51,363,348],{"className":364},[54]," no cumple las validaciones que queramos el método validate ejecutará la redirección automática a la página de error.",[367,368,373],"pre",{"className":369,"code":370,"filename":371,"language":372,"meta":221,"style":221},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default {\n  name: 'AnimalPage',\n\n  validate({ params }) {\n    const { slug } = params\n\n    return slug && typeof slug === 'string'\n  }\n}\n",".pages\u002Fanimals\u002F_slug.vue","js",[374,375,376,391,413,418,436,459,464,491,497],"code",{"__ignoreMap":221},[51,377,380,384,387],{"class":378,"line":379},"line",1,[51,381,383],{"class":382},"s7zQu","export",[51,385,386],{"class":382}," default",[51,388,390],{"class":389},"sMK4o"," {\n",[51,392,393,397,400,403,407,410],{"class":378,"line":222},[51,394,396],{"class":395},"swJcz","  name",[51,398,399],{"class":389},":",[51,401,402],{"class":389}," '",[51,404,406],{"class":405},"sfazB","AnimalPage",[51,408,409],{"class":389},"'",[51,411,412],{"class":389},",\n",[51,414,415],{"class":378,"line":223},[51,416,417],{"emptyLinePlaceholder":235},"\n",[51,419,421,424,427,431,434],{"class":378,"line":420},4,[51,422,423],{"class":395},"  validate",[51,425,426],{"class":389},"({",[51,428,430],{"class":429},"sHdIc"," params",[51,432,433],{"class":389}," })",[51,435,390],{"class":389},[51,437,439,443,446,450,453,456],{"class":378,"line":438},5,[51,440,442],{"class":441},"spNyl","    const",[51,444,445],{"class":389}," {",[51,447,449],{"class":448},"sTEyZ"," slug",[51,451,452],{"class":389}," }",[51,454,455],{"class":389}," =",[51,457,458],{"class":448}," params\n",[51,460,462],{"class":378,"line":461},6,[51,463,417],{"emptyLinePlaceholder":235},[51,465,467,470,472,475,478,480,483,485,488],{"class":378,"line":466},7,[51,468,469],{"class":382},"    return",[51,471,449],{"class":448},[51,473,474],{"class":389}," &&",[51,476,477],{"class":389}," typeof",[51,479,449],{"class":448},[51,481,482],{"class":389}," ===",[51,484,402],{"class":389},[51,486,487],{"class":405},"string",[51,489,490],{"class":389},"'\n",[51,492,494],{"class":378,"line":493},8,[51,495,496],{"class":389},"  }\n",[51,498,500],{"class":378,"line":499},9,[51,501,502],{"class":389},"}\n",[16,504,505],{},"Esta validación inicial puede ser muy útil para evitar llamadas innecesarias a nuestro backend para validar una ruta que ya podemos identificar como no válida.",[11,507,509],{"id":508},"generando-las-rutas-dinámicas","Generando las rutas dinámicas",[16,511,512,513,517,518,522],{},"Es posible que ya tengamos montado nuestro sistema con una gran cantidad de páginas de animales pero si ahora tratamos de desplegar nuestro sitio web en nuestro hosting vamos a observar que todas las rutas dinámicas dan error y nos redirigen a la página de\n",[51,514,516],{"className":515},[54],"404",". Esto ocurre porque si bien hemos construido y definido nuestro sistema de rutas en tiempo de ejecución, no hemos definido cómo van a generarse estas páginas y por lo tanto no se han creado al ejecutar nuestro proceso de ",[51,519,521],{"className":520},[54],"build",".",[16,524,525,526,530,531,535,536,540,541,545,546,522],{},"Si tenemos un sitio web estático podemos ver que al ejecutar el comando ",[51,527,529],{"className":528},[54],"nuxt generate"," se crea la página ",[51,532,534],{"className":533},[273],"animals"," pero no las páginas dinámicas y como cada página debe tener su ",[51,537,539],{"className":538},[54],"bundle"," generado en el directorio (por defecto) ",[51,542,544],{"className":543},[273],"\u002Fdist",", todo lo que no esté aquí dará como resultado una redirección a la página ",[51,547,516],{"className":548},[54],[16,550,551,552,556],{},"Para solucionar este problema vamos a indicar que en el proceso de generación de nuestro sitio se incluyan todas estas rutas, cosa que debemos indicar porque Nuxt no puede saber cuántos animales tenemos en nuestra base de datos o gestor de contenidos, de modo que vamos a editar el fichero ",[51,553,555],{"className":554},[273],"nuxt.config.js"," y a definir nuestras rutas. Lo primero es crear una función que se va a encargar de consultar las rutas disponibles en nuestra base de datos o gestor de contenido, la cual podemos ubicar en el mismo fichero o extraerla a un fichero de utilidades e importarla:",[367,558,561],{"className":369,"code":559,"filename":560,"language":372,"meta":221,"style":221},"async function _getRoutes() {\n  const response = await fetch('https:\u002F\u002Fwww.fakeapi.com\u002Fanimals', {\n    method: 'GET'\n  })\n  \u002F\u002F ['lion', 'dog']\n  const animalsList = await response.json()\n  const animalsPaths = []\n\n  if (Array.isArray(animalsList)) {\n    animalsList.forEach((animalPath) => {\n      animalsPaths.push(`\u002Fanimals\u002F${animalPath}`)\n    })\n  }\n\n  return animalsPaths\n}\n","JS",[374,562,563,580,611,625,633,639,660,672,676,703,729,758,766,771,776,785],{"__ignoreMap":221},[51,564,565,568,571,575,578],{"class":378,"line":379},[51,566,567],{"class":441},"async",[51,569,570],{"class":441}," function",[51,572,574],{"class":573},"s2Zo4"," _getRoutes",[51,576,577],{"class":389},"()",[51,579,390],{"class":389},[51,581,582,585,588,590,593,596,599,601,604,606,609],{"class":378,"line":222},[51,583,584],{"class":441},"  const",[51,586,587],{"class":448}," response",[51,589,455],{"class":389},[51,591,592],{"class":382}," await",[51,594,595],{"class":573}," fetch",[51,597,598],{"class":395},"(",[51,600,409],{"class":389},[51,602,603],{"class":405},"https:\u002F\u002Fwww.fakeapi.com\u002Fanimals",[51,605,409],{"class":389},[51,607,608],{"class":389},",",[51,610,390],{"class":389},[51,612,613,616,618,620,623],{"class":378,"line":223},[51,614,615],{"class":395},"    method",[51,617,399],{"class":389},[51,619,402],{"class":389},[51,621,622],{"class":405},"GET",[51,624,490],{"class":389},[51,626,627,630],{"class":378,"line":420},[51,628,629],{"class":389},"  }",[51,631,632],{"class":395},")\n",[51,634,635],{"class":378,"line":438},[51,636,638],{"class":637},"sHwdD","  \u002F\u002F ['lion', 'dog']\n",[51,640,641,643,646,648,650,652,654,657],{"class":378,"line":461},[51,642,584],{"class":441},[51,644,645],{"class":448}," animalsList",[51,647,455],{"class":389},[51,649,592],{"class":382},[51,651,587],{"class":448},[51,653,522],{"class":389},[51,655,656],{"class":573},"json",[51,658,659],{"class":395},"()\n",[51,661,662,664,667,669],{"class":378,"line":466},[51,663,584],{"class":441},[51,665,666],{"class":448}," animalsPaths",[51,668,455],{"class":389},[51,670,671],{"class":395}," []\n",[51,673,674],{"class":378,"line":493},[51,675,417],{"emptyLinePlaceholder":235},[51,677,678,681,684,687,689,692,694,697,700],{"class":378,"line":499},[51,679,680],{"class":382},"  if",[51,682,683],{"class":395}," (",[51,685,686],{"class":448},"Array",[51,688,522],{"class":389},[51,690,691],{"class":573},"isArray",[51,693,598],{"class":395},[51,695,696],{"class":448},"animalsList",[51,698,699],{"class":395},")) ",[51,701,702],{"class":389},"{\n",[51,704,706,709,711,714,716,718,721,724,727],{"class":378,"line":705},10,[51,707,708],{"class":448},"    animalsList",[51,710,522],{"class":389},[51,712,713],{"class":573},"forEach",[51,715,598],{"class":395},[51,717,598],{"class":389},[51,719,720],{"class":429},"animalPath",[51,722,723],{"class":389},")",[51,725,726],{"class":441}," =>",[51,728,390],{"class":389},[51,730,732,735,737,740,742,745,748,751,753,756],{"class":378,"line":731},11,[51,733,734],{"class":448},"      animalsPaths",[51,736,522],{"class":389},[51,738,739],{"class":573},"push",[51,741,598],{"class":395},[51,743,744],{"class":389},"`",[51,746,747],{"class":405},"\u002Fanimals\u002F",[51,749,750],{"class":389},"${",[51,752,720],{"class":448},[51,754,755],{"class":389},"}`",[51,757,632],{"class":395},[51,759,761,764],{"class":378,"line":760},12,[51,762,763],{"class":389},"    }",[51,765,632],{"class":395},[51,767,769],{"class":378,"line":768},13,[51,770,496],{"class":389},[51,772,774],{"class":378,"line":773},14,[51,775,417],{"emptyLinePlaceholder":235},[51,777,779,782],{"class":378,"line":778},15,[51,780,781],{"class":382},"  return",[51,783,784],{"class":448}," animalsPaths\n",[51,786,788],{"class":378,"line":787},16,[51,789,502],{"class":389},[312,791,792,795],{},[85,793,794],{},"Asumimos que existe una API llamada \"FakeAPI\" que nos va a devolver un listado de rutas de animales. Seguramente nuestro sistema nos devuelva otra estructura pero creo que este ejemplo es sencillo para entender lo que debemos hacer",[85,796,797,798,522],{},"Construimos la estructura de rutas relativas y la devolvemos en un ",[51,799,686],{"className":800},[54],[16,802,803],{},"Lo que nos dará un resultado como este:",[367,805,808],{"className":369,"code":806,"filename":807,"language":372,"meta":221,"style":221},"[\n  '\u002Fanimals\u002Flion',\n  '\u002Fanimals\u002Fdog'\n]\n","JS Array",[374,809,810,815,827,836],{"__ignoreMap":221},[51,811,812],{"class":378,"line":379},[51,813,814],{"class":448},"[\n",[51,816,817,820,823,825],{"class":378,"line":222},[51,818,819],{"class":389},"  '",[51,821,822],{"class":405},"\u002Fanimals\u002Flion",[51,824,409],{"class":389},[51,826,412],{"class":389},[51,828,829,831,834],{"class":378,"line":223},[51,830,819],{"class":389},[51,832,833],{"class":405},"\u002Fanimals\u002Fdog",[51,835,490],{"class":389},[51,837,838],{"class":378,"line":420},[51,839,840],{"class":448},"]\n",[16,842,843,844,848,849,853,854,399],{},"Ahora que tenemos los ",[51,845,847],{"className":846},[54],"paths"," de nuestras rutas dinámicas podemos editar el parámetro ",[51,850,852],{"className":851},[54],"generate"," invocando a la función ",[51,855,857],{"className":856},[54],"_getRoutes()",[367,859,861],{"className":369,"code":860,"filename":555,"language":372,"meta":221,"style":221},"{\n  generate: {\n    fallback: true,\n    async routes() {\n      const routes = await _getRoutes($content)\n\n      return routes\n    }\n  }\n}\n",[374,862,863,867,877,890,903,923,927,935,940,944],{"__ignoreMap":221},[51,864,865],{"class":378,"line":379},[51,866,702],{"class":389},[51,868,869,873,875],{"class":378,"line":222},[51,870,872],{"class":871},"sBMFI","  generate",[51,874,399],{"class":389},[51,876,390],{"class":389},[51,878,879,882,884,888],{"class":378,"line":223},[51,880,881],{"class":871},"    fallback",[51,883,399],{"class":389},[51,885,887],{"class":886},"sfNiH"," true",[51,889,412],{"class":389},[51,891,892,895,898,901],{"class":378,"line":420},[51,893,894],{"class":448},"    async",[51,896,897],{"class":573}," routes",[51,899,900],{"class":395},"() ",[51,902,702],{"class":389},[51,904,905,908,910,912,914,916,918,921],{"class":378,"line":438},[51,906,907],{"class":441},"      const",[51,909,897],{"class":448},[51,911,455],{"class":389},[51,913,592],{"class":382},[51,915,574],{"class":573},[51,917,598],{"class":395},[51,919,920],{"class":448},"$content",[51,922,632],{"class":395},[51,924,925],{"class":378,"line":461},[51,926,417],{"emptyLinePlaceholder":235},[51,928,929,932],{"class":378,"line":466},[51,930,931],{"class":382},"      return",[51,933,934],{"class":448}," routes\n",[51,936,937],{"class":378,"line":493},[51,938,939],{"class":389},"    }\n",[51,941,942],{"class":378,"line":499},[51,943,496],{"class":389},[51,945,946],{"class":378,"line":705},[51,947,502],{"class":389},[16,949,950,951,954],{},"De esta forma cuando ejecutemos de nuevo el comando ",[51,952,529],{"className":953},[54]," se van a generar todas las rutas dinámicas que hemos obtenido de nuestra base de datos o gestor de contenidos.",[11,956,958],{"id":957},"consideraciones","Consideraciones",[16,960,961],{},"Aunque he tratado de poner un ejemplo muy simple, es importante tener en cuenta que este sistema de generación nos puede ayudar a realizar muchos tipos de validaciones. Por ejemplo nuestro sistema de backend podría indicarnos que una ruta está temporalmente inactiva mediante un atributo de cada ruta de animales y podríamos excluirla de la generación.",[16,963,964],{},"Hay muchos casos de uso a los que nos enfrentaremos a la hora de construir el routing de nuestra aplicación pero con estos casos básicos seguro que podrás entender el cómo abordarlos.",[16,966,967,968,972,973,976,977,399],{},"Si estás utilizando el módulo ",[51,969,971],{"className":970},[54],"@nuxt-content"," para crear tus páginas de contenido puedes utilizar su API para configurar la generación de rutas. Sólo tienes que editar la función ",[51,974,857],{"className":975},[54]," para que reciba la referencia al módulo ",[51,978,920],{"className":979},[54],[367,981,983],{"className":369,"code":982,"filename":560,"language":372,"meta":221,"style":221},"async function _getRoutes($content) {\n  const animalsList = await $content('animals')\n    .fetch()\n    .catch(() => {\n      return []\n    })\n  const animalsPaths = animalsList.map((item) => item.path)\n\n  return animalsPaths\n}\n",[374,984,985,1001,1024,1034,1049,1055,1061,1097,1101,1107],{"__ignoreMap":221},[51,986,987,989,991,993,995,997,999],{"class":378,"line":379},[51,988,567],{"class":441},[51,990,570],{"class":441},[51,992,574],{"class":573},[51,994,598],{"class":389},[51,996,920],{"class":429},[51,998,723],{"class":389},[51,1000,390],{"class":389},[51,1002,1003,1005,1007,1009,1011,1014,1016,1018,1020,1022],{"class":378,"line":222},[51,1004,584],{"class":441},[51,1006,645],{"class":448},[51,1008,455],{"class":389},[51,1010,592],{"class":382},[51,1012,1013],{"class":573}," $content",[51,1015,598],{"class":395},[51,1017,409],{"class":389},[51,1019,534],{"class":405},[51,1021,409],{"class":389},[51,1023,632],{"class":395},[51,1025,1026,1029,1032],{"class":378,"line":223},[51,1027,1028],{"class":389},"    .",[51,1030,1031],{"class":573},"fetch",[51,1033,659],{"class":395},[51,1035,1036,1038,1041,1043,1045,1047],{"class":378,"line":420},[51,1037,1028],{"class":389},[51,1039,1040],{"class":573},"catch",[51,1042,598],{"class":395},[51,1044,577],{"class":389},[51,1046,726],{"class":441},[51,1048,390],{"class":389},[51,1050,1051,1053],{"class":378,"line":438},[51,1052,931],{"class":382},[51,1054,671],{"class":395},[51,1056,1057,1059],{"class":378,"line":461},[51,1058,763],{"class":389},[51,1060,632],{"class":395},[51,1062,1063,1065,1067,1069,1071,1073,1076,1078,1080,1083,1085,1087,1090,1092,1095],{"class":378,"line":466},[51,1064,584],{"class":441},[51,1066,666],{"class":448},[51,1068,455],{"class":389},[51,1070,645],{"class":448},[51,1072,522],{"class":389},[51,1074,1075],{"class":573},"map",[51,1077,598],{"class":395},[51,1079,598],{"class":389},[51,1081,1082],{"class":429},"item",[51,1084,723],{"class":389},[51,1086,726],{"class":441},[51,1088,1089],{"class":448}," item",[51,1091,522],{"class":389},[51,1093,1094],{"class":448},"path",[51,1096,632],{"class":395},[51,1098,1099],{"class":378,"line":493},[51,1100,417],{"emptyLinePlaceholder":235},[51,1102,1103,1105],{"class":378,"line":499},[51,1104,781],{"class":382},[51,1106,784],{"class":448},[51,1108,1109],{"class":378,"line":705},[51,1110,502],{"class":389},[16,1112,1113,1116,1117,522],{},[46,1114,1115],{},"NOTA",": Suponiendo que los ficheros están en el directorio ",[51,1118,1120],{"className":1119},[273],".\u002Fcontent\u002Fanimals",[16,1122,1123,1124,1127],{},"Y para terminar modificaríamos el fichero ",[51,1125,555],{"className":1126},[273]," de la siguiente forma:",[367,1129,1131],{"className":369,"code":1130,"filename":555,"language":372,"meta":221,"style":221},"{\n  generate: {\n    fallback: true,\n    async routes() {\n      const { $content } = require('@nuxt\u002Fcontent')\n      const routes = await _getRoutes($content)\n\n      return routes\n    }\n  }\n}\n",[374,1132,1133,1137,1145,1155,1165,1191,1209,1213,1219,1223,1227],{"__ignoreMap":221},[51,1134,1135],{"class":378,"line":379},[51,1136,702],{"class":389},[51,1138,1139,1141,1143],{"class":378,"line":222},[51,1140,872],{"class":871},[51,1142,399],{"class":389},[51,1144,390],{"class":389},[51,1146,1147,1149,1151,1153],{"class":378,"line":223},[51,1148,881],{"class":871},[51,1150,399],{"class":389},[51,1152,887],{"class":886},[51,1154,412],{"class":389},[51,1156,1157,1159,1161,1163],{"class":378,"line":420},[51,1158,894],{"class":448},[51,1160,897],{"class":573},[51,1162,900],{"class":395},[51,1164,702],{"class":389},[51,1166,1167,1169,1171,1173,1175,1177,1180,1182,1184,1187,1189],{"class":378,"line":438},[51,1168,907],{"class":441},[51,1170,445],{"class":389},[51,1172,1013],{"class":448},[51,1174,452],{"class":389},[51,1176,455],{"class":389},[51,1178,1179],{"class":573}," require",[51,1181,598],{"class":395},[51,1183,409],{"class":389},[51,1185,1186],{"class":405},"@nuxt\u002Fcontent",[51,1188,409],{"class":389},[51,1190,632],{"class":395},[51,1192,1193,1195,1197,1199,1201,1203,1205,1207],{"class":378,"line":461},[51,1194,907],{"class":441},[51,1196,897],{"class":448},[51,1198,455],{"class":389},[51,1200,592],{"class":382},[51,1202,574],{"class":573},[51,1204,598],{"class":395},[51,1206,920],{"class":448},[51,1208,632],{"class":395},[51,1210,1211],{"class":378,"line":466},[51,1212,417],{"emptyLinePlaceholder":235},[51,1214,1215,1217],{"class":378,"line":493},[51,1216,931],{"class":382},[51,1218,934],{"class":448},[51,1220,1221],{"class":378,"line":499},[51,1222,939],{"class":389},[51,1224,1225],{"class":378,"line":705},[51,1226,496],{"class":389},[51,1228,1229],{"class":378,"line":731},[51,1230,502],{"class":389},[1232,1233,1234],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":221,"searchDepth":222,"depth":223,"links":1236},[1237,1238,1239,1240],{"id":257,"depth":222,"text":258},{"id":335,"depth":222,"text":336},{"id":508,"depth":222,"text":509},{"id":957,"depth":222,"text":958},"2022-08-22","Aprende a gestionar y generar tus rutas dinámicas con Nuxt mediante una simple configuración.","blog\u002Fcoding-ndr",[1245,1246,1247,1248],"nuxt rutas dinamicas","rutas dinamicas","thebyteland rutas dinamicas","byteland rutas dinamicas",{"postTitle":1250},"Gestiona tus rutas dinámicas con Nuxt","\u002Fblog\u002Fgestionar-rutas-dinamicas-nuxt",{"title":252,"description":1242},"blog\u002Fgestionar-rutas-dinamicas-nuxt",[1255],"Nuxt","Si tienes o quieres montar un sitio web con Nuxt y parte de tus páginas tienen rutas dinámicas puede que hayas encontrado alguna dificultad a la hora de gestionarlas. Te cuento cómo hacerlo de forma sencilla.",[1258],"Programación","L1tDsHGP0bqy_TEqF483ga-sXQKBSJqZHosI3k3PRGw",{"id":1261,"title":1262,"body":1263,"date":1363,"description":1364,"extension":233,"headerImage":1365,"isActive":235,"keywords":1366,"meta":1372,"navigation":235,"path":1373,"seo":1374,"stem":1375,"subject":1376,"summary":1378,"tags":1379,"__hash__":1381},"blog\u002Fblog\u002Fla-casa-del-dragon.md","La casa del dragón",{"type":8,"value":1264,"toc":1357},[1265,1269,1272,1283,1286,1290,1293,1300,1306,1309,1312,1316,1319,1325,1332,1336,1339],[11,1266,1268],{"id":1267},"el-fiasco-de-juego-de-tronos","El fiasco de Juego de tronos",[16,1270,1271],{},"No quiero hacer leña del árbol caído pero todo el mundo sabe que el final de la serie no fue de los mejores, ya no solo por el guion y el cierre de la trama, también por la nefasta calidad visual del episodio más esperado de todos \"La larga noche\" donde sucedía una batalla sin ningún sentido estratégico y para colmo la mitad de las escenas estaban tan oscuras que no se sabía lo que ocurría.",[16,1273,1274,1275,1278,1279,1282],{},"Pero mucho antes del estreno de la última temporada, que ya no estaba basada en los libros del autor ",[46,1276,1277],{},"George R.R. Martin",", tuvo lugar la publicación de otro libro del mismo autor que narraba ",[46,1280,1281],{},"la historia de Poniente 300 años antes"," de los hechos que conocemos.",[16,1284,1285],{},"Esto tiene relevancia en la trama principal porque el autor retrasó la escritura de los últimos libros de la saga original para terminar \"Fuego y sangre\" (la precuela) y como vivimos en una sociedad impaciente que no puede esperar, la serie original debía terminar con o sin el autor de los libros.",[11,1287,1289],{"id":1288},"sobre-fuego-y-sangre","Sobre Fuego y sangre",[16,1291,1292],{},"En el momento de la publicación del libro, cualquier amante de los libros y la serie hubiera querido leer esta nueva entrega, que nos ambienta en un antiguo Poniente donde la dinastía Targaryen, en todo su esplendor, llegaba al continente para conquistarlo de la mano de Aegon I Targaryen.",[16,1294,1295],{},[1296,1297],"img",{"alt":1298,"src":1299},"Portada de Fuego y Sangre","\u002Fimages\u002Ffuegoysangre.webp",[16,1301,1302,1303,522],{},"Así que compré el libro y la verdad es que lo disfruté mucho, pero no quiero hablar de la historia que cuenta si no de la serie adaptada del libro que ",[46,1304,1305],{},"se va a estrenar en HBO Max el 22 de agosto en España",[16,1307,1308],{},"Según tengo entendido no estará ambientada exactamente en la misma línea temporal que el libro pero no debería ser un problema si se ciñen a los eventos que narra. Me preocupa más el cómo van a abordar esta nueva etapa, sabiendo el descontento de la comunidad con el cierre de la serie hermana.",[16,1310,1311],{},"Espero que hayan aprendido de los errores cometidos y traten con más cariño la mina de oro que tienen entre las manos porque creo que otro fiasco al estilo Juego de Tronos podría jugar muy en contra del futuro de la cadena y la saga.",[11,1313,1315],{"id":1314},"la-nueva-serie","La nueva serie",[16,1317,1318],{},"Al ver el tráiler de La casa del dragón (House of dragon en inglés) no puedo evitar sentir interés por volver a sumergirme en el mundo de Poniente aunque si es verdad que ésta vez veré la nueva serie con cierto recelo pero con la esperanza que esta vez hagan las cosas bien.",[16,1320,1321,1322,399],{},"Si no habéis visto aún nada y queréis echarle un vistazo, os dejo el tráiler desde el canal de Youtube de ",[46,1323,1324],{},"HBO Max España",[26,1326,1327],{},[1328,1329],"byte-embed-video",{"link":1330,"title":1331},"https:\u002F\u002Fwww.youtube-nocookie.com\u002Fembed\u002FoBFtJUWuGFI","Trailer en español de la Casa del Dragón",[11,1333,1335],{"id":1334},"dónde-comprar-el-libro-fuego-y-sangre","¿Dónde comprar el libro Fuego y sangre?",[16,1337,1338],{},"En mi caso yo lo compré por Amazon, la edición de tapa dura porque me gusta que los libros sean robustos (Ver imagen de la portada), pero seguramente está disponible ya en muchas librerías. Sí te interesa esta edición o la de tapa blanda puedes comprarlas a través de los siguientes enlaces en Amazon:",[312,1340,1341,1349],{},[85,1342,1343,1344],{},"Tapa dura: ",[212,1345,1346],{"href":1346,"rel":1347,"title":1348},"https:\u002F\u002Famzn.to\u002F3Px6kvO",[219],"Comprar Fuego y sangre (tapa dura) en Amazon",[85,1350,1351,1352],{},"Tapa blanda: ",[212,1353,1354],{"href":1354,"rel":1355,"title":1356},"https:\u002F\u002Famzn.to\u002F3Cen8EI",[219],"Comprar Fuego y sangre (tapa blanda) en Amazon",{"title":221,"searchDepth":222,"depth":223,"links":1358},[1359,1360,1361,1362],{"id":1267,"depth":222,"text":1268},{"id":1288,"depth":222,"text":1289},{"id":1314,"depth":222,"text":1315},{"id":1334,"depth":222,"text":1335},"2022-08-18","Ya falta poco para el estreno del spin-off de Juego de tronos. Hablemos un poco de esta nueva serie.","blog\u002Fhod",[1367,1368,1369,1370,1371],"la casa del dragon","house of dragon","houseofdragon","hbo casa del dragon","juego de tronos",{"postTitle":1262},"\u002Fblog\u002Fla-casa-del-dragon",{"title":1262,"description":1364},"blog\u002Fla-casa-del-dragon",[1377],"Series","Pronto se estrenará la nueva serie ambientada en el universo de Juego de tronos: La casa del dragón. Nos cuenta la historia de Poniente cientos de años antes de los acontecimientos que conocemos pero... ¿Estará a la altura?",[1380],"Ocio","8fgpmCNzl4rD63co5pxUg1TmfckpApCNRswssu2nimc",{"id":1383,"title":1384,"body":1385,"date":1633,"description":1634,"extension":233,"headerImage":1635,"isActive":235,"keywords":1636,"meta":1640,"navigation":235,"path":1642,"seo":1643,"stem":1644,"subject":1645,"summary":1646,"tags":1647,"__hash__":1648},"blog\u002Fblog\u002Fel-reclutamiento-it-en-decadencia.md","El reclutamiento IT en decadencia",{"type":8,"value":1386,"toc":1625},[1387,1391,1394,1401,1408,1411,1418,1422,1425,1475,1479,1486,1500,1504,1511,1517,1524,1527,1540,1543,1567,1574,1581,1585,1588,1591,1594,1597,1600,1603,1605,1615,1622],[11,1388,1390],{"id":1389},"cómo-hemos-cambiado","Cómo hemos cambiado...",[16,1392,1393],{},"Aún recuerdo cómo nos vendían que iba ser el sector laboral: Prácticamente suplicando por un trabajo de dudosa calidad, sueldos mediocres y teniendo que aguantar a los típicos \"jefes\" gritándote y calendando la silla mientras los trabajadores sacan su empresa adelante.",[16,1395,1396,1397,1400],{},"Lo cierto es que mi experiencia laboral no ha sido tan traumática porque he tenido la suerte de trabajar, en la mayoría de los casos, con personas conscientes de su trabajo, puesto, responsabilidades y con una ética laboral decente. Pero eso no quita el hecho que antes de la pandemia que nos ha hecho replantearnos tantas cosas, las empresas \"",[46,1398,1399],{},"dinosaurio","\" estaban ocultas y se mezclaban entre las empresas que realmente están en la ola del avance tecnológico.",[16,1402,1403,1404,1407],{},"Esta pequeña introducción un tanto dramática viene al caso porque ",[46,1405,1406],{},"un gran reflejo de las empresas son sus procesos de selección",". Venimos de una época donde en un proceso de selección parecía que ibas a competir contra miles de personas y tenías que ir con precaución por cada palabra que decías, cada impresión que dabas y rezar para que tras una semanas de reflexión por parte de las personas a cargo del proceso, se dignaran a contestarte. Venimos de una sociedad donde calentar la silla es mejor que trabajar y tener buena productividad, donde la proactividad laboral se mide por el número de horas extra impagadas que realizabas en lugar de los aportes reales que hacías en tu horario laboral.",[16,1409,1410],{},"Y en todos estos aspectos el sector tecnológico ha jugado un gran papel para luchar y cambiar las costumbres, para cambiar la forma de trabajar, haciéndonos valer cada vez más y dando a entender a las empresas que no sólo estamos trabajando por un salario y que hay ciertas reglas laborales que éstas incumplían impunemente que ahora deben cumplirse.",[16,1412,1413,1414,1417],{},"Algo que se ha hecho notar es que hemos conseguido cambiar los procesos de selección. ",[46,1415,1416],{},"Donde antes eran en una sola dirección, ahora son bidireccionales, los candidatos entrevistan a la empresa",". Queremos saber no solo cuánto vamos a ganar, económicamente hablando, sino para quien trabajaremos, quienes serán parte de nuestro equipo, qué productos vamos a sacar adelante, qué valores éticos y sociales tiene la empresa.",[11,1419,1421],{"id":1420},"los-problemas-de-los-procesos-de-selección","Los problemas de los procesos de selección",[16,1423,1424],{},"Aún veo día a día empresas quejándose porque no encuentran personas para cubrir sus puestos tecnológicos. Y cuando miro un poco más en detalle y busco información sobre esas empresas siempre encuentro los mismos patrones:",[312,1426,1427,1433,1439,1445,1451,1457,1463,1469],{},[85,1428,1429,1432],{},[46,1430,1431],{},"Ofertas de empleo sin información relevante",": Todas trabajan para un cliente importante y líder en su sector. ¡Vaya! Qué novedad. Es que lo contrario sería como si yo voy a un proceso de selección y les digo que programar no se me da muy allá, que soy más de ver Netflix. ¿Y en su sector? ¿Qué sector? Toda esa información es de vital importancia porque queremos saber para quién vamos a trabajar.",[85,1434,1435,1438],{},[46,1436,1437],{},"Procesos de selección largos",": Todavía siguen confiando en procesos de selección que se alargan hasta los dos o tres meses. ¡Hay que espabilar! Si tardas dos semanas en revisar las candidaturas, otra en contestar y todo eso para realizar una primera entrevista nadie va a querer esperar tanto tiempo. Y no es excusa lo de que hay un gran número de aplicaciones al puesto en cuestión, porque hay que aprender a filtrar y para filtrar lo primero es que tu oferta sea clara y con toda la información posible.",[85,1440,1441,1444],{},[46,1442,1443],{},"Descripción técnica",": Si una empresa no es capaz de elaborar una descripción técnica del puesto a cubrir, que indique las tecnologías que van a usarse, metodologías de trabajo, lenguajes de programación (Sin confundir Java y Javascript), sin saber si realmente necesitan un puesto de frontend, backend o devops; si realmente no saben eso: Están yendo a ciegas. Debes saber qué necesita tu departamento IT o tu cliente y tu personal de reclutamiento debe conocer los diferentes roles, de verdad que es algo vital para cubrir una vacante.",[85,1446,1447,1450],{},[46,1448,1449],{},"Salario según valía",": Creo que es lo más insultante que veo en una oferta de trabajo. ¿Quién va a decidir nuestra valía? ¿Una persona que ni si quiera distingue entre lenguajes de programación? Es más, en la mayoría de casos ni si quiera saben qué es programar. Estudiad el mercado, y decidid en base a ello y al proyecto para el que vais a contratar a alguien qué perfil buscáis, concretad y sed claros, las bandas salariales según los perfiles no son ningún misterio.",[85,1452,1453,1456],{},[46,1454,1455],{},"Salarios bajos",": A colación de lo anterior, cuando no las empresas no han hecho un buen estudio de perfiles y bandas salariales suelen poner rangos salariales que no concuerdan con el perfil, y sí, aunque parezca mentira, nadie va a bajarse el salario a la mitad para trabajar en \"Una importante empresa líder en su sector\". Si vemos los requisitos de los puestos y es un listado más grande que nuestras pantallas pero el salario no da ni para pagar el alquiler, os descartamos instantáneamente.",[85,1458,1459,1462],{},[46,1460,1461],{},"Falta de profesionalidad",": Normalmente las empresas quieren a los candidatos ideales, pero para encontrarlos los buscan con personal no preparado, sin conocimientos del sector (Sí, ese sector para el que la empresa o cliente es líder), por no hablar del trato humano. Parece que hemos perdido completamente la educación en muchos casos. Y todo esto tiene solución, bien lo saben las empresas que han invertido en formar a su personal de reclutamiento para el sector IT.",[85,1464,1465,1468],{},[46,1466,1467],{},"Localización",": Este es un punto que ha tomado especial relevancia respecto a la época pre pandemia, pues ahora que sabemos que somos perfectamente capaces de desarrollar nuestro trabajo con más calidad y comodidad en un lugar de trabajo que elijamos en lugar de una oficina para todo el mundo... Es un factor importante a tener en cuenta. Lejos ha quedado el presentismo y calentamiento de silla mientras unos trabajan y otros hacen que trabajan. Esto no quiere decir que todos los trabajos tengan que ser presenciales, remotos o híbridos (Presenciales enmascarados) , más bien indica que las empresas deben adaptarse al cambio y entender que hay varias formas de entender el concepto de oficina y al igual que nunca llueve a gusto de todos, ninguna oficina será cómoda para todos sus trabajadores.",[85,1470,1471,1474],{},[46,1472,1473],{},"Otros beneficios",": La red está llena de chistes, memes y demás escenas caricaturescas y no es un tema con el que me quiera explayar pero... Fruta fresca en la oficina por la que tienes que luchar no es un beneficio al igual que buen ambiente laboral no es un beneficio si no algo que si no tienes deberías plantearte qué está pasando. Si la oferta indica beneficios extra... Seamos realistas y honestos porque nadie va a ir a tu empresa por la fruta.",[11,1476,1478],{"id":1477},"connotaciones-negativas-de-los-procesos-anticuados","Connotaciones negativas de los procesos anticuados",[16,1480,1481,1482,1485],{},"Tal vez he sido un poco sarcástico en los puntos anteriores, pero es que es realmente ridículo ver lo mismo en todas las ofertas y oír las mismas quejas. ",[46,1483,1484],{},"Si esperas distintos resultados tendrás que cambiar algo",", las ofertas de hace 20 años no van a ayudarte a encontrar el mejor talento.",[16,1487,1488,1489,140,1492,1495,1496,1499],{},"Cuando veo una oferta de estas realmente me están dando a entender que la empresa que tiene la vacante ",[46,1490,1491],{},"no confía en sus empleados",[46,1493,1494],{},"no se esfuerza en encontrar buenos profesionales"," si no que va a ofrecer un salario mínimo y las condiciones más bajas y básicas, da muy mala primera impresión. Si ni si quiera se ha definido que rol debe tener la persona que debe cubrir el puesto o si el personal de reclutamiento me contacta ofreciendo un puesto para un rol que no es el mío, me están indicando una ",[46,1497,1498],{},"gran falta de profesionalidad",". Por un lado por desconocimiento básico de roles y necesidades del puesto y por otro porque no se han tomado ni dos minutos para estudiar mi perfil.",[11,1501,1503],{"id":1502},"empleo-en-redes-sociales","Empleo en redes sociales",[16,1505,1506,1507,1510],{},"Es muy común utilizar algún tipo de red social de empleo tanto por empresas como por profesionales y seguramente ",[46,1508,1509],{},"Linkedin"," sea la más conocida en la actualidad.",[16,1512,1513,1514,522],{},"Personalmente trato de contestar a todos los mensajes de personal de reclutamiento que llegan, y suelen ser muchos, pero hay una práctica que es muy molesta y que generalmente hace que los profesionales descartemos no solo la oferta si no a la misma empresa que nos contacta, esta práctica es ",[46,1515,1516],{},"hacernos perder el tiempo innecesariamente",[16,1518,1519,1520,1523],{},"Hay algo de lo que creo que muchas personas del sector de reclutamiento no son conscientes y es que mientras que nos contactan porque es su trabajo, ",[46,1521,1522],{},"los profesionales no trabajamos respondiendo mensajes ni tenemos la obligación de hacerlo",", por lo que cuando veo esas quejas de personal de reclutamiento diciendo que somos maleducados por no responder, me hierve un poco la sangre, no voy a mentir, pero insisto, trato de contestar siempre porque creo que es como cuando te saludan por la calle, devuelves el saludo sin más.",[16,1525,1526],{},"Y son estos primeras tomas de contacto las que hacen perder muchos potenciales candidatos a las empresas, usando plantillas como esta:",[67,1528,1529],{},[70,1530,1531,1534,1537],{},[16,1532,1533],{},"Hola Pepito, He visto tu perfil de backend y me parece que encajarías perfectamente en un proyecto para un importante cliente líder en su sector.",[16,1535,1536],{},"Mándame tu CV actualizado y teléfono y te llamo para contarte más detalles.",[16,1538,1539],{},"Un saludo.",[16,1541,1542],{},"¿Qué pasa con esta plantilla?",[312,1544,1545,1548,1551,1554,1557,1560],{},[85,1546,1547],{},"Pues que muchas veces ni cambian el Pepito, y no, no sirve lo de me confundí porque son muchos mensajes",[85,1549,1550],{},"No soy desarrollador de backend (Por favor lee mi perfil y especialízate en reclutamiento IT)",[85,1552,1553],{},"¿Cliente secreto líder en su sector otra vez? ¿Cuántos líderes de sector puede haber?",[85,1555,1556],{},"Perdona, que yo te mande ¿Qué? No tengo que mandarte nada, tú me contactas a mí y mi información está en el perfil de la red social, si algo no te encaja o falta información puedes preguntarme con educación, pero ¿Qué son esas exigencias sin conocernos y sin que sea yo el que aplica al puesto?",[85,1558,1559],{},"¿Mi teléfono? No, claro que no. Imagina que le diéramos el teléfono a cada persona que nos contacta y dedicáramos entre 10 minutos y 1 hora (Lo que suelen durar esas llamadas rápidas). Si la oferta estuviera en condiciones tal vez sería indicado decir que si le interesa al profesional, el reclutador está abierto a tener una llamada para entrar en detalles. Pero es mejor hacerle perder el tiempo a las personas sin indicar de qué se trata la oferta, condiciones ni salario.",[85,1561,1562,1563,1566],{},"¿Falta algo no? ¿Dónde está la descripción técnica del puesto? ",[46,1564,1565],{},"Si no das la información más importante, lo que va a distinguir a tu proyecto del resto, no generas interés"," si no todo lo contrario, un fuerte rechazo.",[16,1568,1569,1570,1573],{},"Hay otros pequeños detalles pero las excusas por parte de las empresas son siempre las mismas, es que no podemos dar esa información, mejor por teléfono. ",[46,1571,1572],{},"¡Abrid los ojos!"," Año 2022 ¿De verdad crees que una llamada telefónica es confidencial?",[16,1575,1576,1577,1580],{},"No cuesta nada redactar una oferta, una buena oferta detallada con todos esos puntos de los que hablaba antes, y ni si quiera hay que personalizarla, ",[46,1578,1579],{},"no necesitamos ver nuestro nombre encima, necesitamos ver que sabéis de lo que habláis",", que vuestro proyecto vale la pena y nos genere interés.",[11,1582,1584],{"id":1583},"acaso-todo-está-mal","¿Acaso todo está mal?",[16,1586,1587],{},"Ni mucho menos, dejemos la parte mala atrás y vamos a hablar de lo bueno porque al igual que he tenido muchas experiencias malas he tenido otras realmente gratificantes y por las que sé que todo esto puede mejorar y se puede llegar a crear ciertos estándares de procesos de selección y ofertas que nos ayuden a optimizar los procesos de selección.",[16,1589,1590],{},"Al principio de mi carrera profesional, las entrevistas y contactos con empresas siempre eran un dolor de cabeza, me sacaban de mi zona de confort y me veía en una posición vulnerable, pero la verdad es que a medida que haces entrevistas, contactas con empresas y vas haciendo todos estos procesos parte de esa zona de confort entiendes los beneficios que pueden tener.",[16,1592,1593],{},"En los últimos dos años he tenido entrevistas con profesionales del sector de reclutamiento IT increíbles, personas preparadas con las que puedes tener charlas amenas (Evidentemente no debemos entrar a hablar de bucles y variables), conversaciones de tú a tú en las que realmente se trata de ver el encaje de ambas partes, ya que la empresa tiene un método de trabajo, un equipo y una cultura. Y es esto lo más importante, ese encaje mutuo es lo que va a hacer que la relación laboral dure y tenga éxito. Da igual si soy el mejor programador del mundo (No lo soy) o si es la mejor empresa del mundo (No existe), se debe buscar ese encaje.",[16,1595,1596],{},"Cuando la persona que te entrevista conoce el sector todo fluye, la entrevista se convierte en una charla formal pero amistosa, sin tensiones, en la que puede haber errores por ambas partes pero en la que hay respeto, un respeto que se puede notar por ambas partes.",[16,1598,1599],{},"Y no quiere decir que porque esto se cumpla te vayan a contratar directamente o has encontrado a tu candidato unicornio, ni mucho menos, pero algo tengo claro: Ambas partes van a crecer con esta entrevista y mejorarán.",[16,1601,1602],{},"Lo más curioso es que de estas personas preparadas suelen venir las mejores ofertas, en el sentido de información clara, relevante y que como una buena película te atrapan y te crean la necesidad de saber más. Son ofertas estudiadas que van dirigidas a tu perfil, en las que se puede notar que hay tiempo invertido y no una plantilla básica.",[11,1604,188],{"id":187},[16,1606,1607,1608,1611,1612],{},"No creo que el sector del reclutamiento IT esté cayendo en picado pero si le ",[46,1609,1610],{},"hace falta una reforma, adaptarse al cambio"," porque al igual que los profesionales del sector IT nos vemos obligados a actualizarnos continuamente y seguir estudiando, ",[46,1613,1614],{},"el reclutamiento debe evolucionar.",[16,1616,1617,1618,1621],{},"He entrado poco en detalle sobre el tema salarial, pero debido a que el sector tecnológico puede llevar a cabo su labor en cualquier parte del mundo, ",[46,1619,1620],{},"los países que mejores ofertas económicas pueden dar se suelen llevar el mejor talento",", por lo que si la empresa no está a la altura económicamente, al menos sería interesante tener unos fuertes valores que la distingan del resto.",[16,1623,1624],{},"Y para cerrar, recomiendo tanto ambas partes salir de la zona de confort y realizar muchas entrevistas, aunque sea para conocer el mercado y acostumbrarse a que una entrevista debe ser algo cómodo: Estamos conociendo a alguien y charlando ¡No se ha muerto nadie!",{"title":221,"searchDepth":222,"depth":223,"links":1626},[1627,1628,1629,1630,1631,1632],{"id":1389,"depth":222,"text":1390},{"id":1420,"depth":222,"text":1421},{"id":1477,"depth":222,"text":1478},{"id":1502,"depth":222,"text":1503},{"id":1583,"depth":222,"text":1584},{"id":187,"depth":222,"text":188},"2022-08-17","Estas son las causas por las que el mundo del reclutamiento está mal y necesita un cambio.","blog\u002Freclutamiento",[1637,1638,1639],"reclutamiento IT","reclutamiento thebyteland","reclutamiento IT thebyteland",{"postTitle":1641},"El reclutamiento IT está roto","\u002Fblog\u002Fel-reclutamiento-it-en-decadencia",{"title":1384,"description":1634},"blog\u002Fel-reclutamiento-it-en-decadencia",[],"En los últimos años el sector tecnológico ha crecido hasta hacerse irreconocible sin embargo el mundo del reclutamiento parece haberse estancado. ¿Por qué ocurre esto?",[139],"0kjG2CwEkeJdWAKg65L6Z4W36XyXtWjGFzBfRoesGwg",{"id":1650,"title":1651,"body":1652,"date":3015,"description":3016,"extension":233,"headerImage":3017,"isActive":235,"keywords":3018,"meta":3025,"navigation":235,"path":3027,"seo":3028,"stem":3029,"subject":3030,"summary":3031,"tags":3032,"__hash__":3033},"blog\u002Fblog\u002Foptimiza-tu-web-con-resultados-enriquecidos.md","Optimiza tu web con resultados enriquecidos",{"type":8,"value":1653,"toc":3001},[1654,1658,1661,1664,1667,1671,1683,1686,1693,1697,1700,1705,1719,1724,1727,1824,1827,1849,1853,1856,1861,1982,1996,2116,2128,2135,2139,2153,2491,2498,2509,2513,2516,2550,2554,2557,2560,2572,2576,2584,2651,2654,2657,2926,2930,2942,2945,2951,2958,2983,2987,2990,2998],[11,1655,1657],{"id":1656},"introducción","Introducción",[16,1659,1660],{},"Seguramente ya has trabajado en la semántica web de tu contenido para evitar errores y que contenga páginas fáciles de leer e indexar para los buscadores. Pero podemos ir más allá y optimizar cómo se muestran los resultados de nuestras páginas en los buscadores.",[16,1662,1663],{},"Ya que no hay una única forma de maquetar una página web y hay una infinidad de posibilidades de hacer un mismo contenido, esto radica en que la semántica de un sitio web puede variar mucho respecto a otra con la misma temática, por cuestiones de maquetación y organización del contenido.",[16,1665,1666],{},"Esto hace necesario el que se busque una manera unificada de indicar qué tipo de contenido mostramos en nuestras páginas y cómo está organizado, así como su jerarquía dentro de nuestro sitio web.",[11,1668,1670],{"id":1669},"esquemas-de-datos","Esquemas de datos",[16,1672,1673,1674,1679,1680,522],{},"A través de los esquemas (",[212,1675,1676],{"href":1676,"rel":1677,"title":1678},"https:\u002F\u002Fschema.org\u002F",[219],"Más información sobre esquemas",") podemos organizar y ",[46,1681,1682],{},"clasificar nuestro contenido y definir para cada una de nuestras páginas cuál es el esquema que más le conviene según su contenido",[16,1684,1685],{},"Esto es importante porque hay diferentes tipos de sitios web: Sitios de venta de productos, blogs, sitios para dar opiniones, foros, etc. Clasificar correctamente nuestras páginas puede ayudarnos a que nuestro sitio web tenga una mayor relevancia en los resultados asociados a su contenido.",[16,1687,1688,1689,1692],{},"Una vez que clasificamos nuestras páginas podemos añadir la información de los atributos del esquema asociado. Hay varios formatos pero en este caso vamos a trabajar con ",[46,1690,1691],{},"json\u002Fld"," porque es un formato fácilmente adaptable y versátil que podemos desacoplar del código HTML de nuestras páginas.",[11,1694,1696],{"id":1695},"jerarquía-del-sitio-web","Jerarquía del sitio web",[16,1698,1699],{},"Es importante que tengamos clara la jerarquía de nuestras páginas, ya que seguramente tengamos una página principal de la que dependan otras muchas páginas. Además es posible que estas páginas secundarias tengan a su vez otras páginas en un nivel inferior y no tienen por qué pertenecer al mismo tipo de esquema.",[1701,1702,1704],"h3",{"id":1703},"página-principal","Página principal",[16,1706,1707,1708,1711,1716,1718],{},"Ya que todas las demás páginas son dependientes de la principal podemos definir que nuestra página principal utilizará el esquema ",[46,1709,1710],{},"WebSite (",[212,1712,1713],{"href":1713,"rel":1714,"title":1715},"https:\u002F\u002Fschema.org\u002FWebSite",[219],"Documentación del esquema WebSite",[46,1717,723],{}," y según su definición la mayoría de páginas principales podrían encajar en este esquema:",[67,1720,1721],{},[70,1722,1723],{},"\nA WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.\n",[16,1725,1726],{},"Para ello vamos a crear un objeto con formato JSON que incluya los atributos de este esquema:",[367,1728,1732],{"className":1729,"code":1730,"filename":1731,"language":656,"meta":221,"style":221},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"WebSite\",\n  \"@id\": \"https:\u002F\u002Fexample.com\",\n  \"name\": \"My Website\"\n}\n","JSON",[374,1733,1734,1738,1761,1781,1801,1820],{"__ignoreMap":221},[51,1735,1736],{"class":378,"line":379},[51,1737,702],{"class":389},[51,1739,1740,1743,1746,1749,1751,1754,1757,1759],{"class":378,"line":222},[51,1741,1742],{"class":389},"  \"",[51,1744,1745],{"class":441},"@context",[51,1747,1748],{"class":389},"\"",[51,1750,399],{"class":389},[51,1752,1753],{"class":389}," \"",[51,1755,1756],{"class":405},"https:\u002F\u002Fschema.org",[51,1758,1748],{"class":389},[51,1760,412],{"class":389},[51,1762,1763,1765,1768,1770,1772,1774,1777,1779],{"class":378,"line":223},[51,1764,1742],{"class":389},[51,1766,1767],{"class":441},"@type",[51,1769,1748],{"class":389},[51,1771,399],{"class":389},[51,1773,1753],{"class":389},[51,1775,1776],{"class":405},"WebSite",[51,1778,1748],{"class":389},[51,1780,412],{"class":389},[51,1782,1783,1785,1788,1790,1792,1794,1797,1799],{"class":378,"line":420},[51,1784,1742],{"class":389},[51,1786,1787],{"class":441},"@id",[51,1789,1748],{"class":389},[51,1791,399],{"class":389},[51,1793,1753],{"class":389},[51,1795,1796],{"class":405},"https:\u002F\u002Fexample.com",[51,1798,1748],{"class":389},[51,1800,412],{"class":389},[51,1802,1803,1805,1808,1810,1812,1814,1817],{"class":378,"line":438},[51,1804,1742],{"class":389},[51,1806,1807],{"class":441},"name",[51,1809,1748],{"class":389},[51,1811,399],{"class":389},[51,1813,1753],{"class":389},[51,1815,1816],{"class":405},"My Website",[51,1818,1819],{"class":389},"\"\n",[51,1821,1822],{"class":378,"line":461},[51,1823,502],{"class":389},[16,1825,1826],{},"Es sencillo pero veamos que son estos atributos:",[312,1828,1829,1834,1839,1844],{},[85,1830,1831,1833],{},[46,1832,1745],{},": Indica el contexto general de los esquemas que vamos a utilizar en toda la estructura de datos, por lo que será una url que apunte a la página web que contiene todos los esquemas.",[85,1835,1836,1838],{},[46,1837,1767],{},": Nos indica la especificación del esquema, la cual podemos representar con el nombre del esquema que vamos a utilizar.",[85,1840,1841,1843],{},[46,1842,1787],{},": Este será el identificador de nuestra estructura de datos, la url principal de nuestro sitio web.",[85,1845,1846,1848],{},[46,1847,1807],{},": El nombre que le damos a nuestro esquema. En este caso puede ser el nombre de nuestro sitio web por ser la página principal, pero cada esquema debe tener el suyo para identificarlo entre otros esquemas del mismo tipo.",[1701,1850,1852],{"id":1851},"páginas-secundarias","Páginas secundarias",[16,1854,1855],{},"Supongamos ahora que tenemos otras páginas secundarias, de las que dependen otras sub páginas, así como una página de contacto, un blog, secciones del blog, una página de productos, etc.",[16,1857,1858,1859,522],{},"Podemos definir un esquema diferente para cada una según se adapte a nuestro contenido. Por ejemplo si tuviéramos una página secundaria que hablara de diferentes tipos de animales y esta a su vez tendría otras páginas para cada tipo de animal, también podríamos utilizar el esquema ",[46,1860,1776],{},[367,1862,1864],{"className":1729,"code":1863,"filename":1731,"language":656,"meta":221,"style":221},"{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"WebSite\",\n  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals\",\n  \"name\": \"My Website - Animals\",\n  \"isPartOf\": {\n    \"@id\": \"https:\u002F\u002Fexample.com\"\n  }\n}\n",[374,1865,1866,1870,1888,1906,1925,1944,1957,1974,1978],{"__ignoreMap":221},[51,1867,1868],{"class":378,"line":379},[51,1869,702],{"class":389},[51,1871,1872,1874,1876,1878,1880,1882,1884,1886],{"class":378,"line":222},[51,1873,1742],{"class":389},[51,1875,1745],{"class":441},[51,1877,1748],{"class":389},[51,1879,399],{"class":389},[51,1881,1753],{"class":389},[51,1883,1756],{"class":405},[51,1885,1748],{"class":389},[51,1887,412],{"class":389},[51,1889,1890,1892,1894,1896,1898,1900,1902,1904],{"class":378,"line":223},[51,1891,1742],{"class":389},[51,1893,1767],{"class":441},[51,1895,1748],{"class":389},[51,1897,399],{"class":389},[51,1899,1753],{"class":389},[51,1901,1776],{"class":405},[51,1903,1748],{"class":389},[51,1905,412],{"class":389},[51,1907,1908,1910,1912,1914,1916,1918,1921,1923],{"class":378,"line":420},[51,1909,1742],{"class":389},[51,1911,1787],{"class":441},[51,1913,1748],{"class":389},[51,1915,399],{"class":389},[51,1917,1753],{"class":389},[51,1919,1920],{"class":405},"https:\u002F\u002Fexample.com\u002Fanimals",[51,1922,1748],{"class":389},[51,1924,412],{"class":389},[51,1926,1927,1929,1931,1933,1935,1937,1940,1942],{"class":378,"line":438},[51,1928,1742],{"class":389},[51,1930,1807],{"class":441},[51,1932,1748],{"class":389},[51,1934,399],{"class":389},[51,1936,1753],{"class":389},[51,1938,1939],{"class":405},"My Website - Animals",[51,1941,1748],{"class":389},[51,1943,412],{"class":389},[51,1945,1946,1948,1951,1953,1955],{"class":378,"line":461},[51,1947,1742],{"class":389},[51,1949,1950],{"class":441},"isPartOf",[51,1952,1748],{"class":389},[51,1954,399],{"class":389},[51,1956,390],{"class":389},[51,1958,1959,1962,1964,1966,1968,1970,1972],{"class":378,"line":466},[51,1960,1961],{"class":389},"    \"",[51,1963,1787],{"class":871},[51,1965,1748],{"class":389},[51,1967,399],{"class":389},[51,1969,1753],{"class":389},[51,1971,1796],{"class":405},[51,1973,1819],{"class":389},[51,1975,1976],{"class":378,"line":493},[51,1977,496],{"class":389},[51,1979,1980],{"class":378,"line":499},[51,1981,502],{"class":389},[16,1983,1984,1985,1988,1993,1995],{},"Pero si por ejemplo esta página fuera un blog sobre animales con diferentes artículos que tratan sobre el mundo animal podríamos elegir el esquema ",[46,1986,1987],{},"Blog(",[212,1989,1990],{"href":1990,"rel":1991,"title":1992},"https:\u002F\u002Fschema.org\u002FBlog",[219],"Documentación del esquema Blog",[46,1994,723],{}," para definir la página principal del blog de la que dependen los artículos.",[367,1997,1999],{"className":1729,"code":1998,"filename":1731,"language":656,"meta":221,"style":221},"{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Blog\",\n  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\",\n  \"name\": \"Amazing Blog about animals\",\n  \"isPartOf\": {\n    \"@id\": \"https:\u002F\u002Fexample.com\"\n  }\n}\n",[374,2000,2001,2005,2023,2042,2061,2080,2092,2108,2112],{"__ignoreMap":221},[51,2002,2003],{"class":378,"line":379},[51,2004,702],{"class":389},[51,2006,2007,2009,2011,2013,2015,2017,2019,2021],{"class":378,"line":222},[51,2008,1742],{"class":389},[51,2010,1745],{"class":441},[51,2012,1748],{"class":389},[51,2014,399],{"class":389},[51,2016,1753],{"class":389},[51,2018,1756],{"class":405},[51,2020,1748],{"class":389},[51,2022,412],{"class":389},[51,2024,2025,2027,2029,2031,2033,2035,2038,2040],{"class":378,"line":223},[51,2026,1742],{"class":389},[51,2028,1767],{"class":441},[51,2030,1748],{"class":389},[51,2032,399],{"class":389},[51,2034,1753],{"class":389},[51,2036,2037],{"class":405},"Blog",[51,2039,1748],{"class":389},[51,2041,412],{"class":389},[51,2043,2044,2046,2048,2050,2052,2054,2057,2059],{"class":378,"line":420},[51,2045,1742],{"class":389},[51,2047,1787],{"class":441},[51,2049,1748],{"class":389},[51,2051,399],{"class":389},[51,2053,1753],{"class":389},[51,2055,2056],{"class":405},"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F",[51,2058,1748],{"class":389},[51,2060,412],{"class":389},[51,2062,2063,2065,2067,2069,2071,2073,2076,2078],{"class":378,"line":438},[51,2064,1742],{"class":389},[51,2066,1807],{"class":441},[51,2068,1748],{"class":389},[51,2070,399],{"class":389},[51,2072,1753],{"class":389},[51,2074,2075],{"class":405},"Amazing Blog about animals",[51,2077,1748],{"class":389},[51,2079,412],{"class":389},[51,2081,2082,2084,2086,2088,2090],{"class":378,"line":461},[51,2083,1742],{"class":389},[51,2085,1950],{"class":441},[51,2087,1748],{"class":389},[51,2089,399],{"class":389},[51,2091,390],{"class":389},[51,2093,2094,2096,2098,2100,2102,2104,2106],{"class":378,"line":466},[51,2095,1961],{"class":389},[51,2097,1787],{"class":871},[51,2099,1748],{"class":389},[51,2101,399],{"class":389},[51,2103,1753],{"class":389},[51,2105,1796],{"class":405},[51,2107,1819],{"class":389},[51,2109,2110],{"class":378,"line":493},[51,2111,496],{"class":389},[51,2113,2114],{"class":378,"line":499},[51,2115,502],{"class":389},[16,2117,2118,2119,2123,2124,2127],{},"En ambos casos tenemos un nuevo atributo ",[51,2120,2122],{"className":2121},[54],"@isPartOf"," que nos indica que pertenecen a la página principal y cuyo valor debe ser el mismo que el atributo ",[51,2125,1787],{"className":2126},[54]," del esquema de la página principal.",[16,2129,2130],{},[51,2131,2134],{"className":2132},[2133],"strong-p","Estos son los atributos básicos pero pueden añadirse todos los indicados en la especificación del esquema.",[1701,2136,2138],{"id":2137},"páginas-de-artículos-de-blog","Páginas de artículos de blog",[16,2140,2141,2142,2145,2150,2152],{},"Si tenemos artículos asociados a nuestro blog, cada una de estas páginas puede utilizar el esquema ",[46,2143,2144],{},"BlogPosting(",[212,2146,2147],{"href":2147,"rel":2148,"title":2149},"https:\u002F\u002Fschema.org\u002FBlogPosting",[219],"Documentación del esquema BlogPosting",[46,2151,723],{},", mediante el que podemos aportar datos útiles del artículo como su fecha de creación. contenido, tema dentro del blog, indicar la autoría, etc.",[367,2154,2156],{"className":1729,"code":2155,"filename":1731,"language":656,"meta":221,"style":221},"{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"BlogPosting\",\n  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002Flions\",\n  \"name\": \"Animal blog - Lions\",\n  \"headline\": \"Lions\",\n  \"isPartOf\": {\n    \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\"\n  },\n  \"articleSection\": \"Science\",\n  \"datePublished\": \"2022-01-01\",\n  \"dateCreated\": \"2022-01-01\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Fimages\u002Fexample.jpg\",\n  \"backstory\": \"Your post summary\",\n  \"creator\": \"Creator name\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fabout\",\n    \"name\": \"Author name\"\n  }\n}\n",[374,2157,2158,2162,2180,2199,2218,2237,2257,2269,2285,2290,2310,2330,2349,2369,2389,2409,2422,2442,2463,2481,2486],{"__ignoreMap":221},[51,2159,2160],{"class":378,"line":379},[51,2161,702],{"class":389},[51,2163,2164,2166,2168,2170,2172,2174,2176,2178],{"class":378,"line":222},[51,2165,1742],{"class":389},[51,2167,1745],{"class":441},[51,2169,1748],{"class":389},[51,2171,399],{"class":389},[51,2173,1753],{"class":389},[51,2175,1756],{"class":405},[51,2177,1748],{"class":389},[51,2179,412],{"class":389},[51,2181,2182,2184,2186,2188,2190,2192,2195,2197],{"class":378,"line":223},[51,2183,1742],{"class":389},[51,2185,1767],{"class":441},[51,2187,1748],{"class":389},[51,2189,399],{"class":389},[51,2191,1753],{"class":389},[51,2193,2194],{"class":405},"BlogPosting",[51,2196,1748],{"class":389},[51,2198,412],{"class":389},[51,2200,2201,2203,2205,2207,2209,2211,2214,2216],{"class":378,"line":420},[51,2202,1742],{"class":389},[51,2204,1787],{"class":441},[51,2206,1748],{"class":389},[51,2208,399],{"class":389},[51,2210,1753],{"class":389},[51,2212,2213],{"class":405},"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002Flions",[51,2215,1748],{"class":389},[51,2217,412],{"class":389},[51,2219,2220,2222,2224,2226,2228,2230,2233,2235],{"class":378,"line":438},[51,2221,1742],{"class":389},[51,2223,1807],{"class":441},[51,2225,1748],{"class":389},[51,2227,399],{"class":389},[51,2229,1753],{"class":389},[51,2231,2232],{"class":405},"Animal blog - Lions",[51,2234,1748],{"class":389},[51,2236,412],{"class":389},[51,2238,2239,2241,2244,2246,2248,2250,2253,2255],{"class":378,"line":461},[51,2240,1742],{"class":389},[51,2242,2243],{"class":441},"headline",[51,2245,1748],{"class":389},[51,2247,399],{"class":389},[51,2249,1753],{"class":389},[51,2251,2252],{"class":405},"Lions",[51,2254,1748],{"class":389},[51,2256,412],{"class":389},[51,2258,2259,2261,2263,2265,2267],{"class":378,"line":466},[51,2260,1742],{"class":389},[51,2262,1950],{"class":441},[51,2264,1748],{"class":389},[51,2266,399],{"class":389},[51,2268,390],{"class":389},[51,2270,2271,2273,2275,2277,2279,2281,2283],{"class":378,"line":493},[51,2272,1961],{"class":389},[51,2274,1787],{"class":871},[51,2276,1748],{"class":389},[51,2278,399],{"class":389},[51,2280,1753],{"class":389},[51,2282,2056],{"class":405},[51,2284,1819],{"class":389},[51,2286,2287],{"class":378,"line":499},[51,2288,2289],{"class":389},"  },\n",[51,2291,2292,2294,2297,2299,2301,2303,2306,2308],{"class":378,"line":705},[51,2293,1742],{"class":389},[51,2295,2296],{"class":441},"articleSection",[51,2298,1748],{"class":389},[51,2300,399],{"class":389},[51,2302,1753],{"class":389},[51,2304,2305],{"class":405},"Science",[51,2307,1748],{"class":389},[51,2309,412],{"class":389},[51,2311,2312,2314,2317,2319,2321,2323,2326,2328],{"class":378,"line":731},[51,2313,1742],{"class":389},[51,2315,2316],{"class":441},"datePublished",[51,2318,1748],{"class":389},[51,2320,399],{"class":389},[51,2322,1753],{"class":389},[51,2324,2325],{"class":405},"2022-01-01",[51,2327,1748],{"class":389},[51,2329,412],{"class":389},[51,2331,2332,2334,2337,2339,2341,2343,2345,2347],{"class":378,"line":760},[51,2333,1742],{"class":389},[51,2335,2336],{"class":441},"dateCreated",[51,2338,1748],{"class":389},[51,2340,399],{"class":389},[51,2342,1753],{"class":389},[51,2344,2325],{"class":405},[51,2346,1748],{"class":389},[51,2348,412],{"class":389},[51,2350,2351,2353,2356,2358,2360,2362,2365,2367],{"class":378,"line":768},[51,2352,1742],{"class":389},[51,2354,2355],{"class":441},"image",[51,2357,1748],{"class":389},[51,2359,399],{"class":389},[51,2361,1753],{"class":389},[51,2363,2364],{"class":405},"https:\u002F\u002Fexample.com\u002Fimages\u002Fexample.jpg",[51,2366,1748],{"class":389},[51,2368,412],{"class":389},[51,2370,2371,2373,2376,2378,2380,2382,2385,2387],{"class":378,"line":773},[51,2372,1742],{"class":389},[51,2374,2375],{"class":441},"backstory",[51,2377,1748],{"class":389},[51,2379,399],{"class":389},[51,2381,1753],{"class":389},[51,2383,2384],{"class":405},"Your post summary",[51,2386,1748],{"class":389},[51,2388,412],{"class":389},[51,2390,2391,2393,2396,2398,2400,2402,2405,2407],{"class":378,"line":778},[51,2392,1742],{"class":389},[51,2394,2395],{"class":441},"creator",[51,2397,1748],{"class":389},[51,2399,399],{"class":389},[51,2401,1753],{"class":389},[51,2403,2404],{"class":405},"Creator name",[51,2406,1748],{"class":389},[51,2408,412],{"class":389},[51,2410,2411,2413,2416,2418,2420],{"class":378,"line":787},[51,2412,1742],{"class":389},[51,2414,2415],{"class":441},"author",[51,2417,1748],{"class":389},[51,2419,399],{"class":389},[51,2421,390],{"class":389},[51,2423,2425,2427,2429,2431,2433,2435,2438,2440],{"class":378,"line":2424},17,[51,2426,1961],{"class":389},[51,2428,1767],{"class":871},[51,2430,1748],{"class":389},[51,2432,399],{"class":389},[51,2434,1753],{"class":389},[51,2436,2437],{"class":405},"Person",[51,2439,1748],{"class":389},[51,2441,412],{"class":389},[51,2443,2445,2447,2450,2452,2454,2456,2459,2461],{"class":378,"line":2444},18,[51,2446,1961],{"class":389},[51,2448,2449],{"class":871},"url",[51,2451,1748],{"class":389},[51,2453,399],{"class":389},[51,2455,1753],{"class":389},[51,2457,2458],{"class":405},"https:\u002F\u002Fexample.com\u002Fabout",[51,2460,1748],{"class":389},[51,2462,412],{"class":389},[51,2464,2466,2468,2470,2472,2474,2476,2479],{"class":378,"line":2465},19,[51,2467,1961],{"class":389},[51,2469,1807],{"class":871},[51,2471,1748],{"class":389},[51,2473,399],{"class":389},[51,2475,1753],{"class":389},[51,2477,2478],{"class":405},"Author name",[51,2480,1819],{"class":389},[51,2482,2484],{"class":378,"line":2483},20,[51,2485,496],{"class":389},[51,2487,2489],{"class":378,"line":2488},21,[51,2490,502],{"class":389},[16,2492,2493,2494,2497],{},"En este caso el atributo ",[51,2495,2122],{"className":2496},[54]," haría referencia a la página padre, el blog, por lo que la url debe referenciar a la ubicación de la página principal del Blog. Esto se aplica a cualquier subpágina, de forma que poco a poco se va creando la jerarquía de todo el sitio web.",[16,2499,2500,2501,2504,2505,2508],{},"El atributo ",[51,2502,2415],{"className":2503},[54]," puede identificar a la persona que escribió el artículo. Puede ser también un listado de objetos en caso que existan varias personas que hayan creado el artículo, mientras que el atributo ",[51,2506,2449],{"className":2507},[54]," de cada autor puede ser un link a una página que trate del autor, una red social u otro sitio web.",[1701,2510,2512],{"id":2511},"otros-tipos-de-páginas","Otros tipos de páginas",[16,2514,2515],{},"Existe una gran variedad de esquemas por lo que siempre deberías buscar el que más se adapte a al contenido de tu página, pero aquí tienes algunos de los más comunes y útiles:",[312,2517,2518,2526,2534,2542],{},[85,2519,2520,2521],{},"Página de contacto: ",[212,2522,2523],{"href":2523,"rel":2524,"title":2525},"https:\u002F\u002Fschema.org\u002FContactPage",[219],"Documentación del esquema ContactPage",[85,2527,2528,2529],{},"Página de preguntas frecuentes: ",[212,2530,2531],{"href":2531,"rel":2532,"title":2533},"https:\u002F\u002Fschema.org\u002FFAQPage",[219],"Documentación del esquema FAQPage",[85,2535,2536,2537],{},"Página de un producto: ",[212,2538,2539],{"href":2539,"rel":2540,"title":2541},"https:\u002F\u002Fschema.org\u002FProduct",[219],"Documentación del esquema Product",[85,2543,2544,2545],{},"Página de tu organización: ",[212,2546,2547],{"href":2547,"rel":2548,"title":2549},"https:\u002F\u002Fschema.org\u002FOrganization",[219],"Documentación del esquema Organization",[11,2551,2553],{"id":2552},"breadcrumbs","Breadcrumbs",[16,2555,2556],{},"También es posible que quieras tener en tus páginas una guía sobre esta jerarquía que has definido, lo que puede ayudar a usuarios y buscadores a entender en qué punto de tu sitio web se encuentran al acceder a una página con varios niveles de profundidad.",[16,2558,2559],{},"Tengo otro artículo sobre cómo crear un componente y su esquema de datos con Vue que puede interesarte:",[26,2561,2566],{"className":2562},[2563,2564,2565],"flex","justify-center","not-byte-content",[2567,2568],"byte-button",{"label":2569,"to":2570,":flat":2571},"Crea tu componente Breadcrumb con Vue","\u002Fblog\u002Fcrea-un-componente-breadcrumb-optimizado-para-seo-con-vue","true",[11,2573,2575],{"id":2574},"integrando-los-esquemas-en-la-web","Integrando los esquemas en la web",[16,2577,2578,2579,2583],{},"Ahora que ya sabemos cómo crear nuestros esquemas sólo falta añadirlos a nuestras páginas. Para ello simplemente vamos a añadir un ",[51,2580,2582],{"className":2581},[54],"script"," con cada uno de los esquemas que tenga nuestra página. Por ejemplo para la página principal añadiríamos el siguiente script:",[367,2585,2589],{"className":2586,"code":2587,"filename":1731,"language":2588,"meta":221,"style":221},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"WebSite\",\n  \"@id\": \"https:\u002F\u002Fexample.com\",\n  \"name\": \"My Website\"\n}\n\u003C\u002Fscript>\n","html",[374,2590,2591,2614,2618,2623,2628,2633,2638,2642],{"__ignoreMap":221},[51,2592,2593,2596,2598,2601,2604,2606,2609,2611],{"class":378,"line":379},[51,2594,2595],{"class":389},"\u003C",[51,2597,2582],{"class":395},[51,2599,2600],{"class":441}," type",[51,2602,2603],{"class":389},"=",[51,2605,1748],{"class":389},[51,2607,2608],{"class":405},"application\u002Fld+json",[51,2610,1748],{"class":389},[51,2612,2613],{"class":389},">\n",[51,2615,2616],{"class":378,"line":222},[51,2617,702],{"class":448},[51,2619,2620],{"class":378,"line":223},[51,2621,2622],{"class":448},"  \"@context\": \"https:\u002F\u002Fschema.org\",\n",[51,2624,2625],{"class":378,"line":420},[51,2626,2627],{"class":448},"  \"@type\": \"WebSite\",\n",[51,2629,2630],{"class":378,"line":438},[51,2631,2632],{"class":448},"  \"@id\": \"https:\u002F\u002Fexample.com\",\n",[51,2634,2635],{"class":378,"line":461},[51,2636,2637],{"class":448},"  \"name\": \"My Website\"\n",[51,2639,2640],{"class":378,"line":466},[51,2641,502],{"class":448},[51,2643,2644,2647,2649],{"class":378,"line":493},[51,2645,2646],{"class":389},"\u003C\u002F",[51,2648,2582],{"class":395},[51,2650,2613],{"class":389},[16,2652,2653],{},"De esta forma los buscadores y validadores de esquema sabrán que hemos definido nuestro esquema y podrán verificar que los datos son correctos.",[16,2655,2656],{},"Si sumamos los tres ejemplos nos quedaría una importación de scripts de la siguiente forma para la página de un artículo:",[367,2658,2661],{"className":2586,"code":2659,"filename":2660,"language":2588,"meta":221,"style":221},"\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"WebSite\",\n  \"@id\": \"https:\u002F\u002Fexample.com\",\n  \"name\": \"My Website\"\n}\n\u003C\u002Fscript>\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"Blog\",\n  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\",\n  \"name\": \"Amazing Blog about animals\",\n  \"isPartOf\": {\n    \"@id\": \"https:\u002F\u002Fexample.com\"\n  }\n}\n\u003C\u002Fscript>\n\u003Cscript type=\"application\u002Fld+json\">\n{\n  \"@context\": \"https:\u002F\u002Fschema.org\",\n  \"@type\": \"BlogPosting\",\n  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002Flions\",\n  \"name\": \"Animal blog - Lions\",\n  \"headline\": \"Lions\",\n  \"isPartOf\": {\n    \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\"\n  },\n  \"articleSection\": \"Science\",\n  \"datePublished\": \"2022-01-01\",\n  \"dateCreated\": \"2022-01-01\",\n  \"image\": \"https:\u002F\u002Fexample.com\u002Fimages\u002Fexample.jpg\",\n  \"backstory\": \"Your post summary\",\n  \"creator\": \"Creator name\",\n  \"author\": {\n    \"@type\": \"Person\",\n    \"url\": \"https:\u002F\u002Fexample.com\u002Fabout\",\n    \"name\": \"Author name\"\n  }\n}\n\u003C\u002Fscript>\n","HTML",[374,2662,2663,2681,2685,2689,2693,2697,2701,2705,2713,2731,2735,2739,2744,2749,2754,2759,2764,2768,2772,2780,2798,2802,2807,2813,2819,2825,2831,2836,2842,2847,2853,2859,2865,2871,2877,2883,2889,2895,2901,2907,2912,2917],{"__ignoreMap":221},[51,2664,2665,2667,2669,2671,2673,2675,2677,2679],{"class":378,"line":379},[51,2666,2595],{"class":389},[51,2668,2582],{"class":395},[51,2670,2600],{"class":441},[51,2672,2603],{"class":389},[51,2674,1748],{"class":389},[51,2676,2608],{"class":405},[51,2678,1748],{"class":389},[51,2680,2613],{"class":389},[51,2682,2683],{"class":378,"line":222},[51,2684,702],{"class":448},[51,2686,2687],{"class":378,"line":223},[51,2688,2622],{"class":448},[51,2690,2691],{"class":378,"line":420},[51,2692,2627],{"class":448},[51,2694,2695],{"class":378,"line":438},[51,2696,2632],{"class":448},[51,2698,2699],{"class":378,"line":461},[51,2700,2637],{"class":448},[51,2702,2703],{"class":378,"line":466},[51,2704,502],{"class":448},[51,2706,2707,2709,2711],{"class":378,"line":493},[51,2708,2646],{"class":389},[51,2710,2582],{"class":395},[51,2712,2613],{"class":389},[51,2714,2715,2717,2719,2721,2723,2725,2727,2729],{"class":378,"line":499},[51,2716,2595],{"class":389},[51,2718,2582],{"class":395},[51,2720,2600],{"class":441},[51,2722,2603],{"class":389},[51,2724,1748],{"class":389},[51,2726,2608],{"class":405},[51,2728,1748],{"class":389},[51,2730,2613],{"class":389},[51,2732,2733],{"class":378,"line":705},[51,2734,702],{"class":448},[51,2736,2737],{"class":378,"line":731},[51,2738,2622],{"class":448},[51,2740,2741],{"class":378,"line":760},[51,2742,2743],{"class":448},"  \"@type\": \"Blog\",\n",[51,2745,2746],{"class":378,"line":768},[51,2747,2748],{"class":448},"  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\",\n",[51,2750,2751],{"class":378,"line":773},[51,2752,2753],{"class":448},"  \"name\": \"Amazing Blog about animals\",\n",[51,2755,2756],{"class":378,"line":778},[51,2757,2758],{"class":448},"  \"isPartOf\": {\n",[51,2760,2761],{"class":378,"line":787},[51,2762,2763],{"class":448},"    \"@id\": \"https:\u002F\u002Fexample.com\"\n",[51,2765,2766],{"class":378,"line":2424},[51,2767,496],{"class":448},[51,2769,2770],{"class":378,"line":2444},[51,2771,502],{"class":448},[51,2773,2774,2776,2778],{"class":378,"line":2465},[51,2775,2646],{"class":389},[51,2777,2582],{"class":395},[51,2779,2613],{"class":389},[51,2781,2782,2784,2786,2788,2790,2792,2794,2796],{"class":378,"line":2483},[51,2783,2595],{"class":389},[51,2785,2582],{"class":395},[51,2787,2600],{"class":441},[51,2789,2603],{"class":389},[51,2791,1748],{"class":389},[51,2793,2608],{"class":405},[51,2795,1748],{"class":389},[51,2797,2613],{"class":389},[51,2799,2800],{"class":378,"line":2488},[51,2801,702],{"class":448},[51,2803,2805],{"class":378,"line":2804},22,[51,2806,2622],{"class":448},[51,2808,2810],{"class":378,"line":2809},23,[51,2811,2812],{"class":448},"  \"@type\": \"BlogPosting\",\n",[51,2814,2816],{"class":378,"line":2815},24,[51,2817,2818],{"class":448},"  \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002Flions\",\n",[51,2820,2822],{"class":378,"line":2821},25,[51,2823,2824],{"class":448},"  \"name\": \"Animal blog - Lions\",\n",[51,2826,2828],{"class":378,"line":2827},26,[51,2829,2830],{"class":448},"  \"headline\": \"Lions\",\n",[51,2832,2834],{"class":378,"line":2833},27,[51,2835,2758],{"class":448},[51,2837,2839],{"class":378,"line":2838},28,[51,2840,2841],{"class":448},"    \"@id\": \"https:\u002F\u002Fexample.com\u002Fanimals-blog\u002F\"\n",[51,2843,2845],{"class":378,"line":2844},29,[51,2846,2289],{"class":448},[51,2848,2850],{"class":378,"line":2849},30,[51,2851,2852],{"class":448},"  \"articleSection\": \"Science\",\n",[51,2854,2856],{"class":378,"line":2855},31,[51,2857,2858],{"class":448},"  \"datePublished\": \"2022-01-01\",\n",[51,2860,2862],{"class":378,"line":2861},32,[51,2863,2864],{"class":448},"  \"dateCreated\": \"2022-01-01\",\n",[51,2866,2868],{"class":378,"line":2867},33,[51,2869,2870],{"class":448},"  \"image\": \"https:\u002F\u002Fexample.com\u002Fimages\u002Fexample.jpg\",\n",[51,2872,2874],{"class":378,"line":2873},34,[51,2875,2876],{"class":448},"  \"backstory\": \"Your post summary\",\n",[51,2878,2880],{"class":378,"line":2879},35,[51,2881,2882],{"class":448},"  \"creator\": \"Creator name\",\n",[51,2884,2886],{"class":378,"line":2885},36,[51,2887,2888],{"class":448},"  \"author\": {\n",[51,2890,2892],{"class":378,"line":2891},37,[51,2893,2894],{"class":448},"    \"@type\": \"Person\",\n",[51,2896,2898],{"class":378,"line":2897},38,[51,2899,2900],{"class":448},"    \"url\": \"https:\u002F\u002Fexample.com\u002Fabout\",\n",[51,2902,2904],{"class":378,"line":2903},39,[51,2905,2906],{"class":448},"    \"name\": \"Author name\"\n",[51,2908,2910],{"class":378,"line":2909},40,[51,2911,496],{"class":448},[51,2913,2915],{"class":378,"line":2914},41,[51,2916,502],{"class":448},[51,2918,2920,2922,2924],{"class":378,"line":2919},42,[51,2921,2646],{"class":389},[51,2923,2582],{"class":395},[51,2925,2613],{"class":389},[11,2927,2929],{"id":2928},"validando-los-esquemas","Validando los esquemas",[16,2931,2932,2933,2936,2937],{},"Existe una extensión para el navegador Google Chrome que me gusta por su sencillez y permite validar en tiempo real los esquemas añadidos a tus páginas, esta se llama ",[46,2934,2935],{},"JSON LD Tester"," y podemos encontrarla en el catálogo de extensiones o a través de este enlace: ",[212,2938,2939],{"href":2939,"rel":2940,"title":2941},"https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Fjson-ld-tester\u002Faohmciehgjboidolkmoaofcbnejmokan",[219],"Extensión JSON LD tester",[16,2943,2944],{},"Una vez instalada aparecerá un icono en la parte superior derecha del navegador que al pulsarlo mostrará un pop-up con los datos de los esquemas que hemos añadido. Por ejemplo para este artículo muestra los siguientes datos:",[16,2946,2947],{},[1296,2948],{"alt":2949,"src":2950},"Resultados de los esquemas a través de la extensión JSON LD Tester","\u002Fimages\u002Fjsonlstester.webp",[16,2952,2953,2954,2957],{},"Si queremos ver en detalle cada uno de los esquemas podemos pulsa en el botón \"",[46,2955,2956],{},"Test this","\", lo que nos llevará a las herramientas online de validación de esquemas:",[312,2959,2960,2972],{},[85,2961,2962,2965,2966,2971],{},[46,2963,2964],{},"Validador de Google para resultados enriquecidos",": (",[212,2967,2968],{"href":2968,"rel":2969,"title":2970},"https:\u002F\u002Fsearch.google.com\u002Ftest\u002Frich-results",[219],"Validador de resultados enriquecidos",") Que nos permite validar una página a través de su url o un fragmento de código que podemos insertar manualmente.",[85,2973,2974,2965,2977,2982],{},[46,2975,2976],{},"Validador de Schema.org",[212,2978,2979],{"href":2979,"rel":2980,"title":2981},"https:\u002F\u002Fvalidator.schema.org\u002F",[219],"Validador de marcado de Schema.org",") Que también nos permite validar por url o fragmento de código.",[11,2984,2986],{"id":2985},"para-terminar","Para terminar",[16,2988,2989],{},"Con toda esta información ya puedes añadir toda la información a tus páginas para ayudar a mejorar los resultados enriquecidos en los buscadores.",[16,2991,2992,2993,2997],{},"No obstante hay muchos tipos de páginas y esquemas por lo que te recomiendo que le eches un ojo a la documentación de esquemas de ",[212,2994,1676],{"href":1676,"rel":2995,"title":2996},[219],"Documentación de esquemas"," para encontrar los que mejor se adapten a tu contenido.",[1232,2999,3000],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":221,"searchDepth":222,"depth":223,"links":3002},[3003,3004,3005,3011,3012,3013,3014],{"id":1656,"depth":222,"text":1657},{"id":1669,"depth":222,"text":1670},{"id":1695,"depth":222,"text":1696,"children":3006},[3007,3008,3009,3010],{"id":1703,"depth":223,"text":1704},{"id":1851,"depth":223,"text":1852},{"id":2137,"depth":223,"text":2138},{"id":2511,"depth":223,"text":2512},{"id":2552,"depth":222,"text":2553},{"id":2574,"depth":222,"text":2575},{"id":2928,"depth":222,"text":2929},{"id":2985,"depth":222,"text":2986},"2022-08-15","Aprende cómo optimizar el SEO de tu sitio web con una estructura de datos organizada.","blog\u002Fschema",[3019,3020,3021,3022,3023,3024],"SEO","SEO jsonld","jsonld","resultados enriquecidos","SEO thebyteland","resultados enriquecidos google",{"postTitle":3026},"Cómo optimizar tu web con resultados enriquecidos","\u002Fblog\u002Foptimiza-tu-web-con-resultados-enriquecidos",{"title":1651,"description":3016},"blog\u002Foptimiza-tu-web-con-resultados-enriquecidos",[3019],"Si quieres exprimir todo el potencial del contenido de tu sitio web y ayudar a los buscadores a mostrar mejores resultados para tu contenido, te enseño cómo crear una buena estructura de datos con json+ld.",[1258],"I9ndX0uxqaobWfPMyXjR68mvrn3Av1zz_wklZ4-zHoM",{"id":3035,"title":3036,"body":3037,"date":3135,"description":3136,"extension":233,"headerImage":3137,"isActive":235,"keywords":3138,"meta":3144,"navigation":235,"path":3145,"seo":3146,"stem":3147,"subject":3148,"summary":3150,"tags":3151,"__hash__":3153},"blog\u002Fblog\u002Fla-escala-de-kardashov.md","La escala de Kardashov",{"type":8,"value":3038,"toc":3129},[3039,3043,3046,3049,3052,3059,3063,3066,3069,3072,3078,3102,3105,3107,3110,3112],[11,3040,3042],{"id":3041},"el-dominio-de-la-energía-para-clasificar-civilizaciones","El dominio de la energía para clasificar civilizaciones",[16,3044,3045],{},"¿Quién no se ha preguntado alguna vez cómo serían otras civilizaciones? Es fácil imaginar civilizaciones primitivas porque venimos de eso y a través de nuestra historia podemos ver los avances tecnológicos a los que hemos llegado, pero si hubiera por ahí fuera civilizaciones mucho más avanzadas es difícil de imaginar el nivel tecnológico que podrían alcanzar.",[16,3047,3048],{},"Pero hay una pista que nos ayudaría a imaginar hasta qué punto una civilización puede estar avanzada tecnológicamente aunque no lleguemos a entender estos avances. Y no hay más que mirarnos al espejo porque a medida que hemos ido controlando la energía, desde una pequeña hoguera, al uso y distribución de energía eléctrica y tratando de buscar fuentes de energía renovables que no se agoten fácilmente estamos consiguiendo dominar los recursos de nuestro planeta (Si no lo destruimos en el intento).",[16,3050,3051],{},"Este control de la energía nos ha permitido avanzar mucho tecnológicamente, hasta el punto que si alguien que vivió hace 200 años pudiera echarle un ojo a nuestro mundo le parecería brujería, sería algo inimaginable para esa persona, lo que seguramente nos pasaría a cualquiera si pudiéramos ver la civilización dentro de 200 años,",[16,3053,3054,3055,3058],{},"El caso es que a medida que controlamos un lugar tendemos a expandirnos y buscar nuevas fuentes de energía con las que seguir avanzando. Es en base a esta premisa en lo que se basó ",[46,3056,3057],{},"Niolài Kardashov"," para crear una escala de civilizaciones.",[11,3060,3062],{"id":3061},"la-escala-kardashev","La escala Kardashev",[16,3064,3065],{},"Aunque pueda parecernos que estamos muy avanzados tecnológicamente hablando, aún no somos capaces de controlar de forma eficiente toda la energía que podríamos de nuestro planeta y si miramos un poco más allá hay otras fuentes aún mayores, como nuestro Sol.",[16,3067,3068],{},"Es por ello que teniendo en cuenta todas las fuentes de energía que podemos observar en el universo, nuestro escaso aprovechamiento de las mismas nos deja en un nivel de civilización muy bajo por el momento.",[16,3070,3071],{},"Si bien es poco preciso hablar en términos de energía, ya que este término es algo muy global y hay muchos tipos de energías, lo que realmente indica que aprovechamos la energía disponible de un sistema es si hacemos uso de su potencia, ya que la potencia determina la cantidad de energía que se transfiere a lo largo de un tiempo.",[16,3073,3074,3075,399],{},"Y es que principalmente ",[46,3076,3077],{},"la escala Kardashev clasifica las civilizaciones en 3 grandes tipos",[312,3079,3080,3086,3096],{},[85,3081,3082,3085],{},[46,3083,3084],{},"Tipo I",": Este tipo de civilización sería capaz de controlar toda la potencia de su planeta de forma eficiente. Por lo que según esta definición, aún no hemos llegado ni al tipo I, aunque se piensa que podríamos estar relativamente cerca de alcanzarlo.",[85,3087,3088,3091,3092,3095],{},[46,3089,3090],{},"Tipo II",": Aquí la cosa se pone más seria porque este tipo de civilización sería capaz de controlar toda la potencia de su estrella. En nuestro caso, tendríamos que controlar la potencia del Sol para alcanzar este nivel. Aunque pueda parecer algo imposible, se plantea que una civilización muy avanzada podría crear una estructura alrededor de su estrella con la que capturar gran parte de la radiación que emite, a estas estructuras se las conoce como ",[46,3093,3094],{},"esferas de Dyson",", que para hacernos una pequeña idea sería como una infinidad de placas solares rodeando el sol: Una barbaridad de energía.",[85,3097,3098,3101],{},[46,3099,3100],{},"Tipo III",": Si el tipo II ya te ha parecido algo imposible, para alcanzar el tipo III se requeriría algo inimaginable, porque si ya dominas tu plantea, planetas vecinos y prácticamente todo tu sistema solar, lo siguiente es expandirse al resto de sistemas de tu galaxia. Con el dominio energético y tecnológico que podría tener una civilización de tipo II, en algún momento tendría la capacidad de viajar a otros sistemas, y podría utilizar esas mismas técnicas en otros planetas y estrellas. Incluso se planteaba que pudieran llegar a utilizar la potencia de los agujeros negros super masivos que se encuentran en el centro de las galaxias.",[16,3103,3104],{},"También se planteaba la posibilidad de civilizaciones aún más avanzadas que pudieran llegar a dominar el universo pero creo que para empezar con estos tres primeros tipos os podéis hacer una idea de lo que se podría conseguir dominando la potencia energética de un sistema.",[11,3106,188],{"id":187},[16,3108,3109],{},"Si bien es verdad que es bonito imaginar el cómo serían otras civilizaciones muy avanzadas,  no podemos tomar esta escala como una referencia real porque al igual que no podríamos entender ni si quiera como pensaría ni razonaría nuestra civilización dentro de unos miles de años ni su tecnología, tampoco podemos entender cómo otras civilizaciones entenderían su existencia y el universo que las rodea. Tal vez ni si quiera sea posible expandirse tanto o una civilización muy avanzada no tenga interés en hacerlo, pero todo eso no quita que sigamos dando rienda suelta a nuestra imaginación y estudiando el universo para que tal vez un día podamos entender con mayor profundidad parte de los secretos que esconde.",[11,3111,208],{"id":207},[312,3113,3114,3122],{},[85,3115,3116,3117],{},"Wikipedia: ",[212,3118,3119],{"href":3119,"rel":3120,"title":3121},"https:\u002F\u002Fes.wikipedia.org\u002Fwiki\u002FEscala_de_Kardashov",[219],"La escala de Kardashov en Wikipedia",[85,3123,3116,3124],{},[212,3125,3128],{"href":3126,"rel":3127},"https:\u002F\u002Fes.wikipedia.org\u002Fwiki\u002FEsfera_de_Dyson",[219],"La esfera de Dyson",{"title":221,"searchDepth":222,"depth":223,"links":3130},[3131,3132,3133,3134],{"id":3041,"depth":222,"text":3042},{"id":3061,"depth":222,"text":3062},{"id":187,"depth":222,"text":188},{"id":207,"depth":222,"text":208},"2022-08-10","¿Sabías que existe una escala que clasifica tecnológicamente todas las civilizaciones según su dominio de la energía?","blog\u002Fdysonsphere",[3139,3140,3141,3142,3143],"escala kardashov","kardashov","escala civilizaciones","esfera de dyson","dyson",{},"\u002Fblog\u002Fla-escala-de-kardashov",{"title":3036,"description":3136},"blog\u002Fla-escala-de-kardashov",[3149],"Cosmología","Hace poco hablaba de la paradoja de Fermi y cómo la ciencia estudia la posibilidad que existe de que estemos solos en el universo. Si te gustó ese artículo seguramente este no te deje indiferente porque en el supuesto que no estuviéramos solos y hubiera civilizaciones por todo el universo ¿Cómo clasificaríamos su nivel tecnológico? ¿Nuestra civilización sería avanzada o aún estaríamos en pañales?",[3152],"Ciencia","-4LS8OsL48RQdtUrTv_xvs8vQ1y638pLnT_v2D0sQuc",1784408628784]